Before contributing, open an issue and discuss about it with community (is it a bug or a feature ? What is the best way to achieve my goal ?)
KISS & DRY as much as possible
Elegant and generic is good, simple is better
Separate bug fixes and new features in several pull requests.
Open a new Pull Request in “Draft” status until tests passed. Use at least ‘bug’, ‘improvement’ or ‘feature’ label.
Commits messages are explicit and mention issue number (
Features are developed in a branch and merged from Github pull-requests.
Definition of done
An explicit unit-test covers the bugfix or the new feature.
A frontend test (:path:jstests/nav-*.js) covers the navigation bug fix or feature
Unit-tests total coverage is above or at least equal with previous commits. Patch coverage is 100% on new lines.
Settings have default value in
Installation instructions and documentation are up-to-date
Check TODO in the source tree:
find geotrek | xargs egrep -n -i '(TODO|XXX|temporary|FIXME)'
On master branch:
If need be, merge
translationsbranch managed with https://weblate.makina-corpus.net
Update files VERSION, docs/conf.py and docs/changelog.rst to remove
+devsuffix and increment version (please use semver rules)
dch -r -D RELEASED, update version in the same way and save
Commit with message ‘Release x.y.z’ to merge in
masterbranch before release
Add git tag X.Y.Z
Update files VERSION, docs/conf.py and docs/changelog.rst to add
dch -v <version>+dev --no-force-save-on-releaseand save
Commit with message ‘Back to development’
Push branch and tag
Add release on Github (copy-paste
When creating a new release ‘x.y.z’ on github, Github actions will generate the .deb package file, and publish it on https://packages.geotrek.fr (see
.circleci/config.ymlfile for details)