Hacking:How to contribute to the project

After you have set up your environment, you are ready to contribute to the project. In this section we will discuss how to get started, how to choose an issue to work on and how to communicate with the core team while doing so.

Get acquainted with the communication tools
First of all, read through this wiki, through the forum and have a look at the issues in the bitbucket account of Seamly2D.

Get acquainted with the Seamly2D and SeamlyMe
Before starting to contribute with some coding, it is important to get acquainted with the applications and the functions that have been developed so far. The best way is probably by making a pattern yourself with Seamly2D and test the functions of the application.

Select an issue
You have probably lots of ideas for new functionalities or how to do things differently / better. That's a good thing. The core team has also put lots of thoughts on how things were implemented and what functionalites should be implemented next. A full list of functionalites and bugs (called issues) that need to be treated is defined in the bitbucket account.

First things first, you should go through the issues, have a look at the titles to have an idea of what need work. You can read the content of the issues that seem feasible and interesting to you.

Choosing one can be difficult. When you are just starting, it is better to choose issues that are small bugs or small feature wishes like changing some string in the GUI. It helps you getting familiar with the code and its structure and it is harder to go in the wrong direction.

If you have difficulty to choose an issue, or have already chosen one, the next step is to discuss it in the forum. There is a special thread for developers : For developers - Where to help next?.

Here you can discuss with the core team whether the issue you chose is ok to work on, or they will help you find an issue suited for you.

Discuss your plan before implementing
In the thread of your chosen issue on bitbucket, communicate your intention to work on the task. This way, nobody will start unintentionally to work on the same issue.

You should also try to write something for each of the following point:


 * What we have
 * What we want to do
 * What is your plan / your idea
 * Your questions / suggestions

This way, the core team will be able to see if you understood the problem correctly and if you need more informations or help to get started. When writing, don't hesitate to give examples or upload schemas, keep your sentences short and try to go straight to the point. It's easier for everybody to have an efficient communication.

It's better to ask twice when you are unsure of something than implement it anyway and do unnecessary work.