In order to create a new release, a few tasks need to be fulfilled. We have a script automating this (see below), but here's a high-level description of what has to be done.
Compile the changelog
We use Towncrier to manage our changelog. Each closed issue should have a corresponding entry in the
changes/changelog.d folder. Before releaseing the application, the changelog needs to be compiled:
towncrier build --version <version>
After building the changelog, the release date needs to be updated in the resulting CHANGELOG file.
Update static version definition for F-Droid
F-Droid needs a static version code and version name that can be parsed in order to detect updates of the app. This version number is managed in the file
fdroidversion.txt in the project root folder.
The format of the version code should follow this pattern:
- A version format is supposed to look like this MAJOR.MINOR.PATCH, e.g. 1.2.3
- Tokenize the version at the dot
- Add trailing zeros for every token
- Concat the tokens in the same order to a string and add 3 trailing zeroes
- Strip leading zeros
The version name is simple: Just use the original version number.
Tag the application
Create an (annotated) tag named after the original version number and push the tag. A release build will automatically be triggered for a new tag.
There's a script
create-release.sh in the
dist/ folder. This script implements the process described above. Please use it instead of manually releasing the application.