Skip to content

Commit 155d08d

Browse files
felixfonteinoraNodgotmax23
authored
Document the automated release process (#381)
* Document announcement automation. * Add basic docs for automated release process. * Update formulation. * Make link clickable. * Add warning on PR / approval order. * Make sure the indent is right. * Address Alicia's comments. * Address Don's comments. Co-authored-by: Don Naro <[email protected]> * Split sentence. * Implement gotmax's suggestions. Co-authored-by: Maxwell G <[email protected]> * Line length breaks. * Use right directory. * Simplify input. * Update who is notified. --------- Co-authored-by: Don Naro <[email protected]> Co-authored-by: Maxwell G <[email protected]>
1 parent 74736c0 commit 155d08d

File tree

3 files changed

+75
-15
lines changed

3 files changed

+75
-15
lines changed

docs/automated-process.md

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
# How to release a new version of the Ansible Community Package — Automated Release Process
2+
3+
## Preamble
4+
5+
This document describes the (mostly) automated ansible community package
6+
release process. The automated processes uses GitHub Actions to automate the
7+
[manual release process](release-process.md).
8+
9+
!!! note
10+
Throughout this page, placeholder values in code blocks are formatted as
11+
`${PLACEHOLDER_VALUE}` where `PLACEHOLDER_VALUE` describes the value to
12+
specify.
13+
14+
15+
## Trigger the workflow
16+
17+
1. Trigger [the automated
18+
workflow](https://github.com/ansible-community/ansible-build-data/actions/workflows/ansible-release.yml)
19+
on the **Actions** tab of the repository and specify the release version,
20+
such as `11.2.0` or `12.0.0rc1`. The process will create a PR in the
21+
[`ansible-build-data` repository](https://github.com/ansible-community/ansible-build-data/).
22+
Afterwards, it will wait for approval before continuing with uploading the
23+
package to PyPI. All users in the [ansible-community/release-management-wg
24+
group](https://github.com/orgs/ansible-community/teams/release-management-wg)[^1]
25+
will be informed with a notification once the approval is needed.
26+
The notification includes a link to the page where the upload step can be
27+
approved.
28+
29+
2. Check out the PR in your `ansible-build-data` clone and copy the updated
30+
porting guide from its `${MAJOR_VERSION}` directory into the
31+
[`docs/docsite/rst/porting_guides/`](https://github.com/ansible/ansible-documentation/tree/devel/docs/docsite/rst/porting_guides/)
32+
directory of the [`ansible-documentation`
33+
repository](https://github.com/ansible/ansible-documentation/). Create a
34+
PR for updating the porting guide for the `devel` branch of
35+
`ansible-documentation`.
36+
37+
3. After both PRs (in `ansible-build-data` and `ansible-documentation`) are
38+
approved, merge the `ansible-build-data` PR and approve the next workflow
39+
step (**in this order!** the next steps of the workflow require the PR to be
40+
merged!). This will upload the package to PyPI and tag the release in
41+
`ansible-build-data`.
42+
43+
4. Merge the porting guide PR, and backport it to the latest `stable-x`
44+
branches down to the ansible-core version that is included in the Ansible
45+
release.
46+
47+
5. Announce the release on the Forum, Matrix, and the mailing list by running
48+
the following command in the `${MAJOR_VERSION}` directory of the
49+
`ansible-build-data` checkout:
50+
```
51+
antsibull-build announcements --send --data-dir . ${VERSION}
52+
```
53+
54+
[^1]: This group is configured as "Required reviewers" for the "Configure pypi"
55+
build environment in GitHub Actions of the `ansible-build-data` repository.

docs/release-process.md

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
1-
# Ansible Release Process
1+
# How to release a new version of the Ansible Community Package — Manual Release Process
22

33
## Preamble
44

5-
This document describes the ansible community package release process.
5+
This document describes the "manual" ansible community package release process.
6+
There exists an [automated version of this process](automated-process.md) using
7+
GitHub Actions.
68

79
!!! note
810
Throughout this page, placeholder values in code blocks are formatted as
@@ -92,9 +94,10 @@ This only needs to be done once.
9294
9395
!!! note
9496
When building ansible versions greater than 9.0.0a1,
95-
`Validate tags file` task failures will fail the release playbook instead
96-
of warning and moving on.
97-
See [policies.md][tagging-enforcement] for how to proceed if this step fails.
97+
`Validate tags file` task failures will fail the release playbook
98+
instead of warning and moving on.
99+
See [policies.md][tagging-enforcement] for how to proceed if this step
100+
fails.
98101
99102
4. Commit the changes and push them to your fork.
100103
@@ -110,9 +113,9 @@ This only needs to be done once.
110113
111114
Then, submit a pull request against ansible-build-data upstream.
112115
113-
5. Submit a PR to ansible/ansible-documentation to add the new porting guide to the docsite.
114-
Copy the porting guide to the ansible docsite directory
115-
in your ansible checkout with the following command
116+
5. Submit a PR to ansible/ansible-documentation to add the new porting guide to
117+
the docsite. Copy the porting guide to the ansible docsite directory in your
118+
ansible checkout with the following command
116119
117120
```
118121
cp ${MAJOR_VERSION}/porting_guide_${MAJOR_VERSION}.rst ../ansible-documentation/docs/docsite/rst/porting_guides/
@@ -141,12 +144,12 @@ This only needs to be done once.
141144
git push --follow-tags
142145
```
143146
144-
8. Announce the release on Matrix and the mailing list.
145-
TODO: Move announcement templates into this repository.
146-
Release managers can copy and paste the previous release's announcement for
147-
now.
148-
Make sure to change the version numbers and sha256sum in the announcement
149-
text.
147+
8. Announce the release on the Forum, Matrix, and the mailing list by running
148+
the following command in the `${MAJOR_VERSION}` directory of the
149+
`ansible-build-data` checkout:
150+
```
151+
antsibull-build announcements --send --data-dir . ${VERSION}
152+
```
150153
151154
[container]: https://hub.docker.com/_/python
152155
[abd-fork]: https://github.com/ansible-community/ansible-build-data/fork

mkdocs.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ copyright: >
1818
markdown_extensions:
1919
# Builtin
2020
- admonition
21+
- footnotes
2122
- toc:
2223
permalink: true
2324
# pymdownx
@@ -26,6 +27,7 @@ markdown_extensions:
2627
- pymdownx.superfences
2728
nav:
2829
- Ansible Build Data: README.md
29-
- release-process.md
30+
- Automated Ansible Release Process: automated-process.md
31+
- Manual Ansible Release Process: release-process.md
3032
- policies.md
3133
- new-ansible-and-freezes.md

0 commit comments

Comments
 (0)