This is the basic template for how releases are done. Many of the standard tasks are handled using our Makefile and some scripts. Each step must be completed successfully before moving on to the next one.
- Update Changelog
- We use this changelog format
- add new version
- add needed subheadings: Added, Changed, Deprecated, Removed, Fixed, Security
- format changelog using .editorconfig
- Update App Metadata
- Update
metadata/org.coolero.Coolero.metainfo.xml
- with new Release version and date
- plus any changes to screenshots and/or description
- Update
- Appimage Testing
- run
make
in root dir (see AppImage Release step below if running for the first time) - run
./Coolero-x86_64.AppImage
and make sure everything works as expected
- run
- Flatpak Testing
- Make sure the Flatpak repo and Coolero repo share the same parent directory!
- If there ARE dependency changes:
- in coolero repo:
make flatpak-export-deps
- in flatpak repo:
- edit requirements.txt to exclude: nuitka, pyamdgpuinfo, pyside6, shiboken6
- make sure the only changes to dependencies are expected
make deps
- verify py-dependencies.yaml by hand
- put changes in the correct places, matplotlib always at the end with special handling
- undo removal of special handling for some packages (patches for flatpak building)
- continue with No Dependency changes steps:
- in coolero repo:
- Else if there are NO dependency changes:
- goto the Flatpak Repo
- comment out tag and commit id for the coolero repo in
org.coolero.Coolero.yaml
- add
branch: main
- so that we can test the current state of the main branch - comment out
tag:
andcommit:
make
- take a break while it runs and builds (subsequent builds are much faster)
- run the installed flatpak
flatpak run org.coolero.Coolero
to make sure everything works as expected
- Create Release Tag and Commit
- Verify Milestone exists for the to-be-released version in GitLab
- All commits and tags are to be signed. Make sure your PGP keys are setup.
- In Coolero Repo run
make release
- without argument for a quick patch update 1.0.0 -> 1.0.1
- with 'v' argument to specifiy a version
v=minor
,v=major
,v=patch
- for ex:
make release v=minor
1.0.0 -> 1.1.0
- check the diff that the changes are correct
make push-release
- make sure build & release pipelines complete successfully
- check that the release notes look correct (gitlab -> Deployment -> Releases)
- close the current Milestone
- create the next release milestone (can easily change the milestone name/version later)
- AppImage Release
- docker is required (in future will have pipeline to do this)
- make sure correct PGP keys are installed (images are signed)
- make sure your GitLab access token is set in the env variable:
COOLERO_TOKEN
- cd to the Coolero Repo
- if this is the first time on this machine:
make docker-build-images
make
- compiles and builds the AppImage- for convenience the build will pause before asking for the pgp key password for signing
make push-appimage
- pushes the build image and sync file to the GitLab package repository- can test a successful upload by using the 'check for updates' AppImage setting
- Flatpak Release
- goto Flatpak Repo
- in
org.coolero.Coolero.yaml
- remove branch entry and update with new tag and commit hash
- commit changes to dev branch and push to Flathub repo on GitHub
- open a PR in GitHub to merge master <- dev
- wait for the Flathub test build to successfully finish (~30 min)
- remove any locally installed flatpak
flatpak remove org.coolero.Coolero
- test the Flathub build by using the link provided in the PR (without
--user
) - if everything works as expected, merge the PR into master
- The official release build will be published in about 3 hours after changes to master.
- AUR Release
- Currently, this is done mostly by hand (need to create friendly script at some point)
- Make sure SSH keys are setup correctly.
- cd to AUR Repo
- Adjust version number, source hashes, and tarball filename of
PKGBUILD
and.SRCINFO
- get release tarball
wget https://gitlab.com/coolero/coolero/-/archive/0.10.2/coolero-0.10.2.tar.gz
- get hash
sha256sum ./coolero-0.10.2.tar.gz
- repeat above at least 2x to make sure sha is correct (GitLab does not currently generate these)
- get release tarball
- Arch Local Testing
- important if there are dependency changes or larger updates - small changes not so much
- run
makepkg -sfi
from AUR Repo folder- will create a lot of files and first time is a bit tricky
- needs dependencies already installed
- run
makepkg --printsrcinfo > .SRCINFO
- push changes to AUR Repo with commit as release version
- test changes work live from Arch machine
yay -S coolero
- Post link to GitLab release notes in discord #release channel