============ 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-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)' Release ------- 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 +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)