@@ -16,15 +16,31 @@ release process. The automated processes uses GitHub Actions to automate the
16
16
17
17
1 . Trigger [ the automated
18
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.
19
+ on the ** Actions** tab of the repository. This workflow has multiple inputs.
20
+ The most important is the release version, such as ` 11.2.0 ` or ` 12.0.0rc1 ` .
21
+ This always has to be specified.
22
+
23
+ The following additional inputs are required for special releases. Generally
24
+ you do not need to pass them and can rely on their defaults. Cases where you
25
+ need these inputs are described in the [ Special builds] ( #special-builds )
26
+ section below.
27
+
28
+ * You can optionally decide whether to preserve existing ` .deps ` files.
29
+ The default is to regenerate them.
30
+ * You can optionally decide whether the ` .build ` file should be regenerated
31
+ during alpha and beta-1 releases.
32
+ * You can also specify an existing branch in the [ ` ansible-build-data `
33
+ repository] ( https://github.com/ansible-community/ansible-build-data/ ) to
34
+ create the PR on.
35
+
36
+ The process will create a PR in the [ ` ansible-build-data `
37
+ repository] ( https://github.com/ansible-community/ansible-build-data/ ) .
38
+ Afterwards, it will wait for approval before continuing with uploading the
39
+ package to PyPI. All users in the [ ansible-community/release-management-wg
40
+ group] ( https://github.com/orgs/ansible-community/teams/release-management-wg ) [ ^ 1 ]
41
+ will be informed with a notification once the approval is needed.
42
+ The notification includes a link to the page where the upload step can be
43
+ approved.
28
44
29
45
2 . Check out the PR in your ` ansible-build-data ` clone and copy the updated
30
46
porting guide from its ` ${MAJOR_VERSION} ` directory into the
@@ -53,3 +69,69 @@ release process. The automated processes uses GitHub Actions to automate the
53
69
54
70
[^1]: This group is configured as "Required reviewers" for the "Configure pypi"
55
71
build environment in GitHub Actions of the `ansible-build-data` repository.
72
+
73
+ ## Special builds
74
+
75
+ ### Builds with a specific release summary other than the default one
76
+
77
+ Sometimes you want to use a different release summary than the default one.
78
+ For example for the Ansible 9.5.1 release, we included some text that explained
79
+ why the release has version 9.5.1 and not 9.5.0.
80
+
81
+ For this, create a new branch in `ansible-build-data`. Add a `release_summary`
82
+ changelog entry for the new release to the `changelog.yaml` file in the major
83
+ version's directory. Make sure to follow the same basic structure of the version's
84
+ record in `changelog.yaml`. This can look as follows:
85
+ ```yaml
86
+ releases:
87
+ ...
88
+ 12.3.4:
89
+ changes:
90
+ release_summary: |
91
+ Release Date: 2024-05-14
92
+
93
+ Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`_
94
+
95
+ This is a special release because of ...
96
+ ```
97
+
98
+ After that, you can start the automated workflow. You need to set the following option
99
+ next to the release version:
100
+
101
+ 1 . Set ` existing-branch ` to the branch you pushed to the ` ansible-build-data `
102
+ repository.
103
+
104
+ ### Additional release candidates (rc2 etc.)
105
+
106
+ For these release candidates, you only want to bump very specific collection
107
+ versions, and not use new bugfix releases of potentially all included collections.
108
+
109
+ For this, create a new branch in ` ansible-build-data ` where you copy the ` .deps `
110
+ file of the previous release candidate to the location of the ` .deps ` file of the
111
+ planned release. Then you modify the new ` .deps ` file with the version updates
112
+ you plan to make.
113
+
114
+ After that, you can start the automated workflow. You need to set the following options
115
+ next to the release version:
116
+
117
+ 1 . Set ` preserve-deps ` to ` true ` ;
118
+
119
+ 2 . Set ` existing-branch ` to the branch you pushed to the ` ansible-build-data `
120
+ repository.
121
+
122
+ ### New major release (x.0.0)
123
+
124
+ The new major release should include exactly the same dependencies as the last
125
+ release candidate.
126
+
127
+ For this, create a new branch in ` ansible-build-data ` where you copy the ` .deps `
128
+ file of the last release candidate to the location of the ` .deps ` file of the
129
+ planned major release. Do not modify the new ` .deps ` file with any version updates.
130
+
131
+ After that, you can start the automated workflow. You need to set the following options
132
+ next to the release version:
133
+
134
+ 1 . Set ` preserve-deps ` to ` true ` ;
135
+
136
+ 2 . Set ` existing-branch ` to the branch you pushed to the ` ansible-build-data `
137
+ repository.
0 commit comments