Release Engineering
Minor Version Bumps
Address Pinned Dependencies
Check requirements.txt for any dependencies pinned to a specific version,
upgrade them to their most stable release (where possible).
Update Static Libraries
Update the following static libraries to their most recent stable release:
- Bootstrap 4
- Font Awesome Icons
- Select2
- jQuery
All Releases
Update Requirements
Every release should refresh requirements.txt so that it lists the most
recent stable release of each package. To do this:
- Create a new virtual environment
- Install the latest version of all required packages
pip install -U -r requirements.txt - Run all tests and check that the UI and API function as expected
- Review each requirement's release notes for any breaking or otherwise noteworthy changes
- Update the package versions in
requirements.txtas appropriate.
In cases where upgrading a dependency to its most recent release is breaking,
it should be pinned to its current minor version in requirements.txt (with
an explanatory comment) and revisited for the next major release.
Verify CI Build Status
Ensure that continuous integration testing on the main branch is completing
successfully.
Update Version and Changelog
- Update the
VERSIONconstant insettings.pyto the new release version. - List all changes of the version inside
CHANGELOG.mdmaking sections for important features and changes.
Commit these changes to the main branch.
Create a New Release
Draft a new release with the following parameters.
- Tag: Current version (e.g.
v2.4.4) - Target:
main - Title: Version and nickname (e.g.
Version 1.4.4 | MARK I)
Copy the description from the pull request to the release.
Update the Development Version
On the main branch, update VERSION in settings.py to point to the next
release. For example, if you just released v1.4.4, set:
VERSION = "v1.4.5-dev"