Development
From MyPaint
So you want to help with MyPaint development? This is the place to start.
Contents |
[edit] Coding
Interested in hacking and/or contributing to MyPaint?
MyPaint is mainly written in Python (using the GTK toolkit), with a brush engine in C++. More information about the code can be found in the developer documentation. In general, the codebase is quite simple and easy to get into. We use git for code maintenance and the main repository is located here at gitorious.org.
[edit] Finding tasks
If you don't know exactly what you want to do, here are some ideas:
- Have a look at the list of tasks especially suited for new developers: Development/JuniorJobs
- Check our release planning page for what needs to be done for next release: Development/Releases
- Check the bugtracker for bugs or features that needs to be fixed [1]
- Find inspiration and ideas here in the wiki: Brainstorming
[edit] Getting in touch
If you have any questions, don't hesitate to ask! You can subscribe to our mailinglist or join our IRC channel #mypaint @ irc.freenode.org. And feel free to comment on wiki pages and on bug items when appropriate.
There is also a list of MyPaint developers, but try the communication channels mentioned above first.
[edit] Getting contributions into MyPaint
Please follow these best practices when writing code. It will make it easier for maintainers to review your code, increasing the chance that it will be included into mainline MyPaint significantly.
- Follow the code conventions of the files you are editing.
- Document your code
- Write docstrings describing what a function or class does
- When it is not obvious, add comments to explain why you are doing something
- Keep commits/patches atomic, containing only one logical change
- Keep commit history clean, use a separate branch which contains only the relevant commits
- Let your commits or patches apply cleanly to the latest git version
- Tell us about your work and bug us to look at it. The bugtracker or mailinglist is the most reliable way.
[edit] Non-coding tasks
[edit] Packaging
Want to help making easy-to-install packages for your favorite platform/distribution. Check out this page.
[edit] Translating
Want to translate MyPaint into your language?
MyPaint uses GNU gettext to allow translation. The translations can be found in the po/ directory in the source code (online browser). This directory also contains a README which has some info on how to contribute fixes or new translations.
[edit] Brushes and backgrounds
Have you created some cool brushes or backgrounds for MyPaint? Share them with others!
[edit] Documentation
Know how to use MyPaint? Perhaps you have some nice painting tricks to show? Help teach others by contributing to our documentation: Documentation
[edit] Brainstorming
Got good ideas? Every user can help with the brainstorming process and have an influence on future development of MyPaint!

