Development#
Notes for developers. If you want to get involved, please do! We welcome all kinds of contributions, for example:
docs fixes/clarifications
bug reports
bug fixes
feature requests
pull requests
tutorials
Workflows#
We don’t mind whether you use a branching or forking workflow. However, please only push to your own branches, pushing to other people’s branches is often a recipe for disaster, is never required in our experience so is best avoided.
Try and keep your merge requests as small as possible (focus on one thing if you can). This makes life much easier for reviewers which allows contributions to be accepted at a faster rate.
Language#
We use British English for our development. We do this for consistency with the broader work context of our lead developers.
Versioning#
This package follows the version format described in PEP440 and Semantic Versioning to describe how the version should change depending on the updates to the code base. Our commit messages are written using written to follow the conventional commits standard which makes it easy to find the commits that matter when traversing through the commit history.
Releasing#
Releasing is semi-automated via a CI job. The CI job requires the type of version bump that will be performed to be manually specified. See the poetry docs for the list of available bump rules.
Standard process#
The steps required are the following:
Bump the version: manually trigger the “bump” stage from the latest commit in main (pipelines are here). A valid “bump_rule” (see poetry’s docs) will need to be specified via the “BUMP_RULE” CI variable (see GitLab’s docs). This will then trigger a release, including publication to PyPI.
Download the artefacts from the release job. The
release_notes.md
artefact will be pre-filled with the list of changes included in this release. You find it in the release-bundle zip file at the artefacts section. The announcements section should be completed manually to highlight any particularly notable changes or other announcements (or deleted if not relevant for this release).Once the release notes are filled out, use them to make a release.
That’s it, release done, make noise on social media of choice, do whatever else
Enjoy the newly available version
Read the Docs#
Our documentation is hosted by
Read the Docs (RtD), a service for which we are
very grateful. The RtD configuration can be found in the .readthedocs.yaml
file in the root of this repository. The docs are automatically
deployed at
fgen.readthedocs.io.