Skip to content

Commit 25522e1

Browse files
albanDongsu Park
authored andcommitted
docs: how to do a release
Signed-off-by: Alban Crequy <[email protected]>
1 parent 32857b5 commit 25522e1

File tree

1 file changed

+64
-0
lines changed

1 file changed

+64
-0
lines changed

docs/devel/release.md

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
# runtime-tools release guide
2+
3+
## Release process
4+
5+
This section shows how to perform a release of runtime-tools.
6+
The following example assumes we're going from version 0.5.0 (`v0.5.0`) to 0.6.0 (`v0.6.0`).
7+
8+
Let's get started:
9+
10+
- Start at the relevant milestone on GitHub (e.g. https://github.com/opencontainers/runtime-tools/milestones/v0.6.0): ensure all referenced issues are closed (or moved elsewhere, if they're not done). Close the milestone.
11+
- runtime-tools does not use a [roadmap file](https://github.com/opencontainers/runtime-tools/issues/465) but GitHub milestones. Update the [other milestones](https://github.com/opencontainers/runtime-tools/milestones), if necessary
12+
- Branch from the latest master, make sure your git status is clean
13+
- Update the [VERSION](https://github.com/opencontainers/runtime-tools/blob/master/VERSION)
14+
- Update the [release notes][changelog].
15+
Try to capture most of the salient changes since the last release, but don't go into unnecessary detail (better to link/reference the documentation wherever possible).
16+
17+
Ensure the branch is correct:
18+
19+
- Ensure the build is clean!
20+
- `git clean -ffdx && make && make test` should work
21+
- Integration tests on CI should be green
22+
- Check the version of the binaries:
23+
- Check `./oci-runtime-tool --version`
24+
- Check `./runtimetest --version`
25+
26+
Once everything is fine:
27+
28+
- File a PR
29+
- Ensure the CI on the release PR is green
30+
- Send an email to the [mailing list][mailinglist] ([example for v0.5.0](https://groups.google.com/a/opencontainers.org/forum/#!topic/dev/iuWpWUai4_I)) and get reviews from other [maintainers][maintainers].
31+
- Once the maintainers agree, merge the PR
32+
33+
Sign a tagged release and push it to GitHub:
34+
35+
- Add a signed tag: `git tag -s v0.6.0 -m "release v0.6.0"`
36+
- Push the tag to GitHub: `git push origin v0.6.0`
37+
38+
Now we switch to the GitHub web UI to conduct the release:
39+
40+
- Start a [new release][gh-new-release] on Github
41+
- Tag "v0.6.0", release title "v0.6.0"
42+
- Copy-paste the release notes you added earlier in [CHANGELOG.md][changelog]
43+
- Attach the release.
44+
This is a simple tarball:
45+
46+
```
47+
export VER="1.2.0"
48+
export NAME="runtime-tools-v$VER"
49+
mkdir -p $NAME/validation
50+
cp oci-runtime-tool $NAME/
51+
cp validation/*.t $NAME/validation/
52+
sudo chown -R root:root $NAME/
53+
tar czvf $NAME.tar.gz --numeric-owner $NAME/
54+
```
55+
56+
- Publish the release!
57+
58+
- Clean your git tree: `sudo git clean -ffdx`.
59+
60+
[changelog]: https://github.com/opencontainers/runtime-tools/blob/master/CHANGELOG.md
61+
[maintainers]: https://github.com/opencontainers/runtime-tools/blob/master/MAINTAINERS
62+
[mailinglist]: https://groups.google.com/a/opencontainers.org/forum/#!forum/dev
63+
[gh-new-release]: https://github.com/opencontainers/runtime-tools/releases/new
64+

0 commit comments

Comments
 (0)