Contributing
Conventions
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.
Definition of done
docs/changelog.rst
is up-to-dateAn 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)'
Release
On master branch:
If need be, merge
translations
branch managed with https://weblate.makina-corpus.netUpdate 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 saveCommit with message “Release x.y.z” to merge in
master
branch before releaseAdd git tag X.Y.Z
Update files VERSION, docs/conf.py and docs/changelog.rst to add
+dev
suffixRun
dch -v <version>+dev --no-force-save-on-release
and saveCommit 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)