Code contributions to Natron are always welcome. That's a big part of why it's an open source project. Please review this document to get a briefing on our process.
We use GitHub's issue tracking system for bugs and enhancements: https://github.com/MrKepzie/Natron/issues
If you are merely asking a question ("how do I..."), please do not file an issue, but instead ask the question on the forum.
If you are submitting a bug report, please be sure to note which version of Natron you are using, and on what platform (OS/version).
Please give an account of
- what you tried
- what happened
- what you expected to happen instead
with enough detail that others can reproduce the problem.
To protect the project -- and the contributors! -- we do require a Contributor License Agreement (CLA) for anybody submitting substantial changes. Trivial changes (such as an alteration to the Makefiles, a one-line bug fix, etc.) may be accepted without a CLA, at the sole discretion of the project leader, but anything complex needs a CLA. This is for your own safety.
Read more on our website
The best way to submit changes is via GitHub Pull Request.
All code must be formally reviewed before being merged into the official repository. The protocol is like this:
-
Get a GitHub account, fork MrKepzie/Natron to create your own repository on GitHub, and then clone it to get a repository on your local machine.
-
Edit, compile, and test your changes.
-
Push your changes to your fork (each unrelated pull request to a separate "topic branch", please).
-
Make a "pull request" on GitHub for your patch, use the "master" branch.
-
If your patch will induce a major compatibility break, or has a design component that deserves extended discussion or debate among the wider Natron community, then it may be prudent to make a post on our forum pointing everybody to the pull request URL and discussing any issues you think are important.
-
The reviewer will look over the code and critique on the "comments" area, or discuss in email/forum. Reviewers may ask for changes, explain problems they found, congratulate the author on a clever solution, etc. Please don't take it hard if your first try is not accepted. It happens to all of us.
-
After approval, one of the senior developers (with commit approval to the official main repository) will merge your fixes into the "master" branch.
There are two overarching rules:
-
When making changes, conform to the style and conventions of the surrounding code.
-
Strive for clarity, even if that means occasionally breaking the guidelines. Use your head and ask for advice if your common sense seems to disagree with the conventions.