Skip to content

Commit d9a506a

Browse files
committed
docs: draft release process document
1 parent d09fa65 commit d9a506a

1 file changed

Lines changed: 61 additions & 0 deletions

File tree

docs/release_process.md

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
# Torrust Tracker Release Process (draft)
2+
3+
The purpose of this document is to describe the release process.
4+
5+
## Overview
6+
7+
Torrust Tracker is published in this order:
8+
9+
1. `develop` branch is ready for publishing.
10+
2. create `release: version (semantic version)` commit.
11+
3. push release commit to `main` branch.
12+
4. check all status checks succeed for `main` branch.
13+
5. push `main` branch to `releases\v(semantic version)` branch.
14+
6. check all status checks success for `releases\v(semantic version)` branch.
15+
7. create signed `v(semantic version)` tag.
16+
8. create github release from `v(semantic version)` tag.
17+
9. merge `main` branch into `develop` branch.
18+
19+
- At step `1.`, `develop` is automatically published to `dockerhub`.
20+
- At step `3.`, `main` is automatically published to `dockerhub`.
21+
- At step `5.`, `releases\v(semantic version)` is automatically published to `dockerhub` and `crate.io`.
22+
23+
## Development Branch
24+
25+
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.
26+
27+
## Main Branch
28+
29+
The `main` branch is the staging branch for releases.
30+
31+
A release commit needs to be made that prepares the repository for the release, this commit should include:
32+
33+
- Changing the semantic version.
34+
- Finalizing the release notes and changelog.
35+
36+
The title of the commit should be: `release: version (semantic version)`.
37+
38+
This commit should be committed upon the head of the development branch, and pushed to the `main` branch.
39+
40+
Once the release has succeeded, the `main` branch should be merged back into the `develop` branch.
41+
42+
## Releases Branch
43+
44+
According to the patten `releases/v(semantic version)`, the `main` branch head is published to here to trigger the deployment workflows.
45+
46+
The repository deployment environment for crates.io is only available for the `releases/**/*` patten of branches.
47+
48+
Once the publishing workflows have succeeded; we can make the git-tag.
49+
50+
## Release Tag
51+
52+
Create a Signed Tag with a short message in the form `v(semantic version)` and push it to the repository.
53+
54+
## Github Release
55+
56+
From the newly published tag, create a Github Release using the web-interface.
57+
58+
59+
## Merge back into development branch
60+
61+
After this is all successful, the `main` branch should be merged into the `develop` branch.

0 commit comments

Comments
 (0)