- 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 ?)
- Use flake8
- 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 (
(ref #12)
or(fixes #23)
) - Features are developed in a branch and merged from Github pull-requests.
docs/changelog.rst
is up-to-date- 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
- A JS Mocha test (:path:jstests/tests.*.js) covers the JavaScript 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
settings/base.py
- 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
translations
branch managed with https://weblate.makina-corpus.net - Update files VERSION, docs/conf.py and docs/changelog.rst to remove
+dev
suffix and increment version (please use semver rules) - Run
dch -r -D RELEASED
, update version in the same way and save - Commit with message 'Release x.y.z' to merge in
master
branch before release - Add git tag X.Y.Z
- Update files VERSION, docs/conf.py and docs/changelog.rst to add
+dev
suffix - Run
dch -v <version>+dev --no-force-save-on-release
and save - Commit with message 'Back to development'
- Push branch and tag
- Add release on Github (copy-paste
doc/changelog.rst
paragraph) - 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.yml
file for details)