Contributor guidelines
The OpenFisca project follows the GitHub Flow.
Each Python package uses Semantic Versioning.
Opening issues
Each OpenFisca repository has its own issues. See OpenFisca repositories.
When an issue does not concern a repository in particular, it must be opened in OpenFisca-Core. In this case the issue should have the "all-packages" label.
When opening a new issue, please take the following steps:
- try to be as explicit as possible when describing the problem
- try to include a minimal reproducible test case
Contributing to the code
Writing code
- If you modify/create/delete a simulation variable, please follow the commit message rules.
- When adding new variables, please consider the naming guidelines.
- Your code should be tested, if feasible:
- bugfixes should include regression tests
- new behavior should at least get minimal exercise
- Use atomic commits, in particular try to isolate "code-cleanup" commits
Opening a Pull Request
- All code contributions are submitted via a Pull Request towards
master
. Themaster
branches are thus protected. - Pull Requests can be submitted as soon as there is code worth discussing.
- If your work is in progress, add "WIP: " in front of the name of the Pull Request. In this case the maintainers will wait for a "good to merge" message.
- Pull Requests track the branch, so you can continue to work after the PR is submitted. Review and discussion can begin well before the work is complete, and the more discussion the better. In the worst case, the PR will be closed.
- If the Pull Request depends on another opened Pull Request on another repository (like OpenFisca-Core/OpenFisca-France), the requirements should be updated in the dependent project via its
setup.py
.
Merging a Pull Request
Before allowing you to merge a PR, the continuous integration server (Travis) will ensure that:
- The automated tests are passing (they are triggered automatically and result is visible from the Pull Request page).
- The semantic version number has been updated. Check the semantic versionning guidelines to know more about how to increment the version number.
- The
CHANGELOG.md
has been updated. Make sure to briefly summarize your work, and to mention any non backward-compatible changes.