Skip to content

Commit 0e7e0dd

Browse files
committed
docs: Update release process docs with checklist
Copy over the Release doc from opencontainers/runtime-spec/blob/main/RELEASES.md Signed-off-by: Sajay Antony <[email protected]>
1 parent a7ac485 commit 0e7e0dd

File tree

1 file changed

+50
-5
lines changed

1 file changed

+50
-5
lines changed

RELEASES.md

+50-5
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ However, specification releases have special restrictions in the [OCI charter][c
2323
* They are the target of backwards compatibility (§7.g), and
2424
* They are subject to the OFWa patent grant (§8.d and e).
2525

26-
To avoid unfortunate side effects (onerous backwards compatibity requirements or Member resignations), the following additional procedures apply to specification releases:
26+
To avoid unfortunate side effects (onerous backwards compatibility requirements or Member resignations), the following additional procedures apply to specification releases:
2727

2828
### Planning a release
2929

@@ -43,9 +43,54 @@ Specifications have a variety of different timelines in their lifecycle.
4343

4444
* Pre-v1.0.0 specifications SHOULD release on a monthly cadence to garner feedback.
4545
* Major specification releases MUST release at least three release candidates spaced a minimum of one week apart.
46-
This means a major release like a v1.0.0 or v2.0.0 release will take 1 month at minimum: one week for rc1, one week for rc2, one week for rc3, and one week for the major release itself.
47-
Maintainers SHOULD strive to make zero breaking changes during this cycle of release candidates and SHOULD restart the three-candidate count when a breaking change is introduced.
48-
For example if a breaking change is introduced in v1.0.0-rc2 then the series would end with v1.0.0-rc4 and v1.0.0.
49-
- Minor and patch releases SHOULD be made on an as-needed basis.
46+
This means a major release like a v1.0.0 or v2.0.0 release will take 1 month at minimum: one week for rc1, one week for rc2, one week for rc3, and one week for the major release itself.
47+
Maintainers SHOULD strive to make zero breaking changes during this cycle of release candidates and SHOULD restart the three-candidate count when a breaking change is introduced.
48+
For example if a breaking change is introduced in v1.0.0-rc2 then the series would end with v1.0.0-rc4 and v1.0.0.
49+
* Minor and patch releases SHOULD be made on an as-needed basis.
5050

5151
[charter]: https://github.com/opencontainers/tob/blob/main/CHARTER.md
52+
53+
## Checklist
54+
55+
Releases usually follow a few steps:
56+
57+
* [ ] prepare a pull-request for the release
58+
* [ ] a commit updating `./ChangeLog`
59+
* [ ] `git log --oneline --no-merges --decorate --name-status v1.0.1..HEAD | vim -`
60+
* [ ] `:% s/(pr\/\(\d*\))\(.*\)/\2 (#\1)/` to move the PR to the end of line and match previous formatting
61+
* [ ] review `(^M|^A|^D)` for impact of the commit
62+
* [ ] group commits to `Additions:`, `Minor fixes and documentation:`, `Breaking changes:`
63+
* [ ] delete the `(^M|^A|^D)` lines, `:%!grep -vE '(^M|^A|^D)'`
64+
* [ ] merge multi-commit PRs (so each line has a `(#num)` suffix)
65+
* [ ] drop hash and indent, `:'<,'> s/^\w* /^I* /`
66+
* [ ] a commit bumping `./specs-go/version.go` to next version and empty the `VersionDev` variable
67+
* [ ] a commit adding back the "-dev" to `VersionDev`
68+
* [ ] send email to [email protected]
69+
* [ ] copy the exact commit hash for bumping the version from the pull-request (since master always stays as "-dev")
70+
* [ ] count the PRs since last release (that this version is tracking, in the cases of multiple branching), like `git log --pretty=oneline --no-merges --decorate $priorTag..$versionBumpCommit | grep \(pr\/ | wc -l`
71+
* [ ] get the date for a week from now, like `TZ=UTC date --date='next week'`
72+
* [ ] OPTIONAL find a cute animal gif to attach to the email, and subsequently the release description
73+
* [ ] subject line like `[runtime-spec VOTE] tag $versionBumpCommit as $version (closes $dateWeekFromNowUTC)`
74+
* [ ] email body like
75+
```
76+
Hey everyone,
77+
78+
There have been $numPRs PRs merged since $priorTag release (https://github.com/opencontainers/runtime-spec/compare/$priorTag...$versionBumpCommit).
79+
80+
$linkToPullRequest
81+
82+
Please respond LGTM or REJECT (with reasoning).
83+
84+
$sig
85+
```
86+
* [ ] edit/update the pull-request to link to the VOTE thread, from https://groups.google.com/a/opencontainers.org/forum/#!forum/dev
87+
* [ ] a week later, if the vote passes, merge the PR
88+
* [ ] `git tag -s $version $versionBumpCommit`
89+
* [ ] `git push --tags`
90+
* [ ] produce release documents
91+
* [ ] git checkout the release tag, like `git checkout $version`
92+
* [ ] `make docs`
93+
* [ ] rename the output PDF and HTML file to include version, like `mv output/oci-runtime-spec.pdf output/oci-runtime-spec-$version.pdf``
94+
* [ ] attach these docs to the release on https://github.com/opencontainers/runtime-spec/releases
95+
* [ ] link to the the VOTE thread and include the passing vote count
96+
* [ ] link to the pull request that merged the release

0 commit comments

Comments
 (0)