The purpose of this document is to describe the release process.
Torrust Tracker is published in this order:
developbranch is ready for publishing.- create
release: version (semantic version)commit. - push release commit to
mainbranch. - check all status checks succeed for
mainbranch. - push
mainbranch toreleases\v(semantic version)branch. - check all status checks success for
releases\v(semantic version)branch. - create signed
v(semantic version)tag. - create github release from
v(semantic version)tag. - merge
mainbranch intodevelopbranch.
- At step
1.,developis automatically published todockerhub. - At step
3.,mainis automatically published todockerhub. - At step
5.,releases\v(semantic version)is automatically published todockerhubandcrate.io.
The develop branch, the default branch for the repository is automatically published to dockerhub with the develop label. This process happens automatically when a pull request is merged in, and the container.yaml workflow is triggered.
The main branch is the staging branch for releases.
A release commit needs to be made that prepares the repository for the release, this commit should include:
- Changing the semantic version.
- Finalizing the release notes and changelog.
The title of the commit should be: release: version (semantic version).
This commit should be committed upon the head of the development branch, and pushed to the main branch.
Once the release has succeeded, the main branch should be merged back into the develop branch.
According to the patten releases/v(semantic version), the main branch head is published to here to trigger the deployment workflows.
The repository deployment environment for crates.io is only available for the releases/**/* patten of branches.
Once the publishing workflows have succeeded; we can make the git-tag.
Create a Signed Tag with a short message in the form v(semantic version) and push it to the repository.
From the newly published tag, create a Github Release using the web-interface.
After this is all successful, the main branch should be merged into the develop branch.