Hacking:Developer FAQ

How can I support Valentina development?
By using Valentina and reporting any bugs you find to Issue Tracker you're helping a great deal. But there are other non-technical ways of supporting the development of The Valentina as well.

Valentina has an user manual that you can help us improve and translate. Also we need your help with localization.

You can also have a look at bug reports filed for Valentina and pick something. You can use the issue tracker to find bug reports you could take care of, but we encourage you contacting us beforehand to find out if the task you picked is still valid. It's best to discuss working on something in either mailing list or IRC channel before beginning to fix things and implement features. This is because requests have to be checked against bigger design decisions. We'd hate if you wasted your time on something that shouldn't have been done.

Major planned changes are listed at the feature roadmap page.

Contacting the team is essential when starting to solve bugs or realizing enhancements/features.

What should I know when starting with open source development?
If you're new to open source development, the article '10 golden rules for starting with open source' from Tobias Schlitt offers useful and worth knowing hints.

Who is planning Valentina's development?
Valentina team does not have time-based schedules, instead we rely on a feature roadmap.

We use Mercurial named branches for developing major new features. Each new feature lives in own feature branch. If a feature is ready for inclusion into the main develop branch, it is merged. The decision, whether it's ready, is made by the core team (currently: Roman).

How can I become a Valentina developer?
If you are a developer who wants to start contributing code to the Valentina, the best way to get to know its structure is by fixing bugs reported in Issue tracker. Pick a bug, perhaps ask the advice of another developer as to whether he/she thinks it will be an easy bug or not, and then fix it. Sounds easy, doesn't it?

After helping with a couple of bugs, people will start to recognize your immense talent, and you will be on your way to becoming a Valentina developer. Any time you feel able, you can pick a smaller enhancement request and have a go at implementing it. It's that easy.

Where should I go for help when I need it?
There are several channels of communication:
 * Main mail list (recommended way).
 * IRC channel #valentina. Abandoned right now.
 * You can ask question on Facebook.

Where can I find documentation for the Valentina API?
There are several ways, see Hacking:API documentation.

What is the best way to submit my changes?
The best way to submit your changes is to make a fork, push your changes to your fork and than make a pull request. See Hacking:Making pull requests.

You can also send it to the mailing list, but this way will works well only for small patches. For big one you will mostly asked to make a pull request.

What is the preferred coding style used in Valentina?
See our Hacking:Code style conventions.

How can I configure my editor for this coding style?
Your editor will not be able to do everything for you, but you can configure most editors so that they use two spaces for indentation, use spaces instead of tabs, etc.

If you are using Qt Creator go to Tools -> Options... -> C++ -> Code Style. Then import code style file from /share/valentina_code_style.xml.

If you are using another editor and you know how to configure it correctly, please tell us about it or update this page yourself.