To release a new version of the ades
project follow the description in this file.
Run go run tasks.go release
and follow the instructions it gives.
The following is a full step-by-step walkthrough of how to create a release for ades
(using v23.12
as an example):
-
Make sure that your local copy of the repository is up-to-date, sync:
git checkout main git pull origin main
Or clone:
git clone [email protected]:ericcornelissen/ades.git
-
Update the version number following to the current year-month pair in the
version
function inmain.go
(and update the tests correspondingly):func version() { - versionString := "v23.11" + versionString := "v23.12" fmt.Println(versionString) }
Single-digit months should be prefixed with a
0
(for example for January24.01
). -
Commit the changes to a new branch and push using:
git checkout -b version-bump git add 'main.go' 'test/flags-info.txtar' git commit --signoff --message 'version bump' git push origin version-bump
-
Create a Pull Request to merge the new branch into
main
. -
Merge the Pull Request if the changes look OK and all continuous integration checks are passing.
-
Immediately after the Pull Request is merged, sync the
main
branch:git checkout main git pull origin main
-
Create a git tag for the new version and push it:
git tag v23.12 git push origin v23.12
Note At this point, the continuous delivery automation may pick up and complete the release process. If not, or only partially, continue following the remaining steps.
-
Create a GitHub Release for the git tag of the new release. The release title should be "Release {version}" (e.g. "Release v23.12"). The release text should be "{version}" (e.g. "v23.12"). The release artifacts should be the contents of the
_compiled/
directory (including checksums) after running:go run tasks.go build-all
-
Publish to Docker Hub, first with a version tag:
env CONTAINER_TAG=v23.12 go run tasks.go container docker push ericornelissen/ades:v23.12
then the
latest
tag:env CONTAINER_TAG=latest go run tasks.go container docker push ericornelissen/ades:latest