Skip to content

Commit 37cb272

Browse files
author
Lukas Puehringer
committed
doc: describe auto release workflow in RELEASE.md
Change RELEASE.md to include instructions to trigger and review auto release workflow (CI/CD). Signed-off-by: Lukas Puehringer <lukas.puehringer@nyu.edu>
1 parent 4f275ad commit 37cb272

1 file changed

Lines changed: 25 additions & 35 deletions

File tree

docs/RELEASE.md

Lines changed: 25 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,29 @@
11
# Release process
22

3-
* Ensure you have a backup of all working files and then remove files not tracked by git
4-
`git clean -xdf`. **NOTE**: this will delete all files in the tuf tree that aren't
5-
tracked by git
6-
* Ensure `docs/CHANGELOG.md` contains a one-line summary of each [notable
3+
1. Ensure `docs/CHANGELOG.md` contains a one-line summary of each [notable
74
change](https://keepachangelog.com/) since the prior release
8-
* Update `tuf/__init__.py` to the new version number "A.B.C"
9-
* Test packaging, uploading to Test PyPI and installing from a virtual environment
10-
(ensure commands invoking `python` below are using Python 3)
11-
* Remove existing dist build dirs
12-
* Create source dist and wheel `python3 -m build`
13-
* Sign source dist `gpg --detach-sign -a dist/tuf-A.B.C.tar.gz`
14-
* Sign wheel `gpg --detach-sign -a dist/tuf-A.B.C-py3-none-any.whl`
15-
* Upload to test PyPI `twine upload --repository testpypi dist/*`
16-
* Verify the uploaded package at https://test.pypi.org/project/tuf/:
17-
Note that installing packages with pip using test.pypi.org is potentially
18-
dangerous (as dependencies may be squatted): download the file and install
19-
the local file instead.
20-
* Create a PR with updated `CHANGELOG.md` and version bumps
21-
* Once the PR is merged, pull the updated `develop` branch locally
22-
* Create a signed tag matching the updated version number on the merge commit
5+
2. Update `tuf/__init__.py` to the new version number `A.B.C`
6+
3. Create a PR with updated `CHANGELOG.md` and version bumps
7+
8+
&#10132; Review PR on GitHub
9+
10+
4. Once the PR is merged, pull the updated `develop` branch locally
11+
5. Create a signed tag for the version number on the merge commit
2312
`git tag --sign vA.B.C -m "vA.B.C"`
24-
* Push the tag to GitHub `git push origin vA.B.C`
25-
* Create a new release on GitHub, copying the `CHANGELOG.md` entries for the
26-
release
27-
* Create a package for the formal release
28-
(ensure commands invoking `python` below are using Python 3)
29-
* Remove existing dist build dirs
30-
* Create source dist and wheel `python3 -m build`
31-
* Sign source dist `gpg --detach-sign -a dist/tuf-A.B.C.tar.gz`
32-
* Sign wheel `gpg --detach-sign -a dist/tuf-A.B.C-py3-none-any.whl`
33-
* Upload to PyPI `twine upload dist/*`
34-
* Verify the package at https://pypi.org/project/tuf/ and by installing with pip
35-
* Attach both signed dists and their detached signatures to the release on GitHub
36-
* `verify_release` should be used to make sure the release artifacts match the
37-
git sources, preferably by another developer on a different machine.
38-
* Announce the release on [#tuf on CNCF Slack](https://cloud-native.slack.com/archives/C8NMD3QJ3)
39-
* Ensure [POUF 1](https://github.com/theupdateframework/taps/blob/master/POUFs/reference-POUF/pouf1.md), for the reference implementation, is up-to-date
13+
6. Push the tag to GitHub `git push origin vA.B.C`
14+
15+
*A push triggers the [CI workflow](.github/workfows/ci.yml), which, on success, triggers
16+
the [CD worfklow](.github/workfows/cd.yml), which builds source dist and wheel,
17+
creates a preliminary GitHub release under `vA.B.C-rc`, and pauses for review.*
18+
19+
7. Run `verify_release --skip-pypi` locally to make sure a build on your machine matches
20+
the preliminary release artifacts published on GitHub.
21+
22+
&#10132; [Review *deployemnt*](https://docs.github.com/en/actions/managing-workflow-runs/reviewing-deployments) on GitHub
23+
24+
*An approval resumes the CD workflow to publish the release on PyPI, and to finalize the
25+
GitHub release (removse `-rc` suffix and updates release notes).*
26+
27+
8. `verify_release` may be used again to make sure the release artifacts PyPI.
28+
9. Announce the release on [#tuf on CNCF Slack](https://cloud-native.slack.com/archives/C8NMD3QJ3)
29+
10. Ensure [POUF 1](https://github.com/theupdateframework/taps/blob/master/POUFs/reference-POUF/pouf1.md), for the reference implementation, is up-to-date

0 commit comments

Comments
 (0)