2
2
3
3
- When releasing, create signed commits and tags;
4
4
- You will need to use the CLI, but then just access and use the GitHub GUI as usual.
5
- - To sign the source code tarball:
5
+ - We do create OpenPGP-signed releases on GitHub [ 1 ] . To sign the source code tarball:
6
6
7
7
``` bash
8
8
# Create a release
@@ -45,35 +45,39 @@ The "pin upstream commit" is ready.
45
45
46
46
The "release commit" is almost ready.
47
47
48
- - [ ] Run all CI (standard, macOS, GitLab, Solaris and Android); [1 ]
48
+ - [ ] Run all CI (standard, macOS, GitLab, Solaris and Android); [2 ]
49
49
- Confirm that all builds are OK.
50
- - [ ] Build the snap (use Launchpad); [2 ]
50
+ - [ ] Build the snap (use Launchpad); [3 ]
51
51
- Confirm that all builds are OK.
52
- - [ ] Build the Docker image (bleeding or latest); [3]
53
- - Run the workflow from the `release` branch (`main` doesn't know the proper commit hash yet).
54
- See note [*];
52
+
53
+ If you are creating a "real release", perform a cherry-pick, merge, and push the "pin upstream commit"
54
+ into the main branch. See note [*].
55
+
56
+ - [ ] Build the Docker image (bleeding or latest); [4]
57
+ - If you are creating a bleeding version, run the workflow from the `release` branch
58
+ (`main` doesn't know the proper commit hash). See note [*];
55
59
- Confirm that all builds are OK.
56
60
- [ ] Release to snap store and flathub;
57
61
58
62
All binaries are ready.
59
63
60
- - [ ] Update versions of the software used for packaging (in deploy/readme and CI/readme); [4 ]
64
+ - [ ] Update versions of the software used for packaging (in deploy/readme and CI/readme); [5 ]
61
65
- Amend and push the "release commit";
62
66
- This is also a valid point for performing the merge. See note [*].
63
67
64
68
The "release commit" is ready.
65
69
66
70
- [ ] Add a new commit to the `release` branch;
67
71
- This is the "logs commit".
68
- - [ ] Update all logs in /Releases/[RELEASE]; [5 ]
72
+ - [ ] Update all logs in /Releases/[RELEASE]; [6 ]
69
73
- Amend and push the "logs commit".
70
74
71
75
The "logs commit" is ready.
72
76
73
- - [ ] Merge the PR; [6 ]
77
+ - [ ] Merge the PR; [7 ]
74
78
- Go to the `main` branch and use a fast forward merge;
75
79
- `git checkout main; git merge --ff-only release`.
76
- - [ ] Create the release tag; [7 ]
80
+ - [ ] Create the release tag; [8 ]
77
81
- `git tag <tag> -m "release: <tag> $(date +%Y%m%d)"`.
78
82
- [ ] Update the repository;
79
83
- `git push -u origin main`;
@@ -83,19 +87,24 @@ The "logs commit" is ready.
83
87
84
88
Footnotes:
85
89
86
- 1. all files that will be in the GitHub release are ready to go. Still need to be released;
87
- 2. all snap packages are ready to go. Still need to be released;
88
- 3. the Docker image has been released;
89
- 4. manual task of accessing logs and copying information;
90
- 5. update and run get-files.sh;
91
- 6. the release itself is based on the last commit and its git tag;
92
- 7. e.g., for a rolling release in Oct 2023, the `<tag>` value should be rolling-2310.
90
+ 1. this way users can verify whether what they received matches the same tarball we have released;
91
+ 2. all files that will be in the GitHub release are ready to go. Still need to be released;
92
+ 3. all snap packages are ready to go. Still need to be released;
93
+ 4. the Docker image will be automatically deployed;
94
+ 5. manual task of accessing logs and copying information;
95
+ 6. update and run get-files.sh;
96
+ 7. the release itself is based on the last commit and its Git tag;
97
+ naturally, you will only merge if you are working in a "real release".
98
+ 8. e.g., for a rolling release in Oct 2023, the `<tag>` value should be rolling-2310.
93
99
94
100
> [!NOTE]
95
101
>
96
- > Note [*]:
102
+ > [*]:
97
103
> we use the `release` branch as a staging area, so that we can build development packages
98
- > without polluting the `main` branch. However, if you merge at the point where the "release
99
- > commit" is ready, you can release an official version without relying on a working branch
100
- > like the `release` branch. Of course, the lack of a `release` branch would make it
101
- > impossible to create a development and test package version.
104
+ > without polluting the `main` branch. In case of real releases, the maintainer is free to
105
+ > merge the changes as soon as they are ready, on the other hand, incomplete and staging
106
+ > release changes cannot be added to the main branch.
107
+ >
108
+ > Of course, you can release an official version without relying on a working branch
109
+ > like the `release` branch. Note, however, that the lack of a `release` branch would make it
110
+ > impossible to create a development and test version of the package (the bleeding release).
0 commit comments