Our code contriubtion guidelines closely follows the model of GitHub pull-requests. This repository follows the git flow workflow, which dictates a /master branch where releases are cut, and a /develop branch which serves as an integration branch for new code.
- A git extention has been developed to ease the use of the 'git flow' methodology, but requires manual installation by the user. Refer to the projects wiki.
- target the develop branch for integration
- ensure code builds successfully
- do not break existing test cases
- new functionality will only be merged with new unit tests
- new unit tests should integrate within the existing googletest framework
- tests must have good code coverage
- code must also have benchmark tests, and performance must be acceptable to maintainers