General preparation and merging the release branch
Make sure all closed pull requests have a target version.
Postpone all remaining open issues and pull requests targeted at this version and create a new version milestone for the next release.
If not already done, create a new release branch release/x.y.z on which you
- Bump the version number in
CMakeLists.txt
- Update the
CHANGELOG
Merge the release branch into master using release-tool merge. Make sure you sign the release tag using either our GPG release key (CFB4C2166397D0D2) or your own trusted GPG key.
When done, merge master back into develop and push all changes as well as the new release tag.
Building the binaries
Linux
If not already done, build a Docker image from the provided Dockerfile. Then build and package KeePassXC with release-tool build using the created Docker image.
When finished, build and submit the Snap Package using the provided snapcraft.yaml file.
Windows
Build and package KeePassXC using release-tool build.
OS X
Build and package KeePassXC using release-tool build.
Signing release packages
Sign all generated release packages with release-tool sign and our KeePassXC GPG release key CFB4C2166397D0D2 (DO NOT use your own GPG key!).
Distribution
Before distributing any binaries, check them against virus scanners with VirusTotal.
Then draft a new release on GitHub and copy the new CHANGELOG entry into the release description. Upload all binary packages together with their *.sig and *.DIGEST files as attachments to this release.
Once the release is published, update download paths and version numbers on the downloads page on keepassxc.org.