You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: RELEASE_PROCESS.md
+18-18Lines changed: 18 additions & 18 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -100,11 +100,11 @@ Depending on the type of release you are working on, you should use one branch o
100
100
Once you know which branch you should use, there are some initial changes that need to be made.
101
101
102
102
The process for doing this is the same for each of these:
103
-
- the [release coordinator](#%22release-coordinator%22) should create a fork, if not created yet, of the relevant repository for these changes.
104
-
- the [release coordinator](#%22release-coordinator%22) should ensure the chosen **release branch** is up-to-date with the **default branch** (normally `master`) before adding any changes.
103
+
- the [release coordinator](#release-coordinator) should create a fork, if not created yet, of the relevant repository for these changes.
104
+
- the [release coordinator](#release-coordinator) should ensure the chosen **release branch** is up-to-date with the **default branch** (normally `master`) before adding any changes.
105
105
- the commit message for the change should start with `chore:`
106
106
- the change should be contributed in a pull request targeting the chosen **release branch**.
107
-
- the [release coordinator](#%22release-coordinator%22) will need to ask the [code owners](#code-owners) for the relevant repository to approve and merge this pull request
107
+
- the [release coordinator](#release-coordinator) will need to ask the [code owners](#code-owners) for the relevant repository to approve and merge this pull request
108
108
109
109
#### Step 3.1 - Update version numbers in official examples
Each new release is announced by a blog post. You can see all of these at https://www.asyncapi.com/blog?tags=Release+Notes
158
158
159
-
The [release coordinator](#%22release-coordinator%22) should create an empty placeholder blog post that can be added to by different contributors to the release throughout the release process.
159
+
The [release coordinator](#release-coordinator) should create an empty placeholder blog post that can be added to by different contributors to the release throughout the release process.
160
160
161
161
The steps to follow for this are:
162
162
- Create a fork of the [website](https://github.com/asyncapi/website) repository
@@ -177,7 +177,7 @@ Pull requests should be opened for all [repositories covered by this process](#r
177
177
178
178
These should be full, not draft, pull requests to allow automated tests to run.
179
179
180
-
They should point from the [release branches](#step-3---create-release-branches) to the default/master branches for each repository.
180
+
They should point from the [release branches](#step-3---update-release-branches) to the default/master branches for each repository.
181
181
182
182
Add a **do-not-merge** label to the pull request by making a comment in the PR saying `/dnm`.
183
183
Add a **autoupdate** label to the pull request by making a comment in the PR saying `/au`.
@@ -187,15 +187,15 @@ _Note: The automation bot will keep the release branch up to date with the lates
187
187
188
188
### Step 6 - bring updates into release branch
189
189
190
-
The [release coordinator](#%22release-coordinator%22) should help to seek out possible updates that are good candidates for including in the release.
190
+
The [release coordinator](#release-coordinator) should help to seek out possible updates that are good candidates for including in the release.
191
191
192
192
There are lots of ways to do this:
193
193
- ask for contributions in [Slack](https://www.asyncapi.com/slack-invite)
194
194
- ask for suggestions at a [community meeting](https://github.com/asyncapi/community/issues?q=is%3Aissue+is%3Aopen+label%3Ameeting)
195
195
- look for open accepted issues (see the [contribution guide](CONTRIBUTING.md) for a description of the requirements for a proposal to reach `Stage 3: Accepted`)
196
196
- look for open pull requests in the [repositories covered by this process](#repositories)
197
197
198
-
For each feature that is being brought into the release, a pull request should be created from the feature branch (the branch with the accepted changes in) to the [release branch](#step-3---create-release-branches).
198
+
For each feature that is being brought into the release, a pull request should be created from the feature branch (the branch with the accepted changes in) to the [release branch](#step-3---update-release-branches).
199
199
200
200
Pull requests must be:
201
201
- labeled as an accepted proposal,
@@ -205,16 +205,16 @@ Pull requests must be:
205
205
206
206
### Step 7 - update announcement blog post
207
207
208
-
As features are identified for inclusion in the release, the [draft announcement blog post](#step-6---prepare-announcement-blog-post) should be updated with descriptions of them. The [release cooordinator](#%22release-coordinator%22) should coordinate with the feature contributors to write a description of each change. They should be able to provide input and also be allowed to work as co-authors for the release notes post.
208
+
As features are identified for inclusion in the release, the [draft announcement blog post](#step-4---prepare-announcement-blog-post) should be updated with descriptions of them. The [release cooordinator](#release-coordinator) should coordinate with the feature contributors to write a description of each change. They should be able to provide input and also be allowed to work as co-authors for the release notes post.
209
209
210
210
Changes in the specification need to be well described. We need clear information on what has changed, why, and who contributed to the change. The purpose of the announcement blog post is to be a more user-friendly alternative to a regular changelog.
211
211
212
-
Every feature added to the [release branch](#step-3---create-release-branches) needs to be properly described in the release notes post.
212
+
Every feature added to the [release branch](#step-3---update-release-branches) needs to be properly described in the release notes post.
213
213
214
214
215
215
### Step 8 - prepare release notes
216
216
217
-
In addition to the [announcement blog post](#step-9---update-announcement-blog-post), the [release coordinator](#%22release-coordinator%22) should prepare release notes for each of the [repositories covered by this process](#repositories).
217
+
In addition to the [announcement blog post](#step-7---update-announcement-blog-post), the [release coordinator](#release-coordinator) should prepare release notes for each of the [repositories covered by this process](#repositories).
218
218
219
219
These should:
220
220
- be written in markdown
@@ -241,13 +241,13 @@ Including a link to the [release issue](#step-2---create-a-release-issue) is a g
241
241
242
242
### Step 10 - reviews
243
243
244
-
At least one [code owner](#code-owners) must approve the [release pull requests](#step-7---create-pull-requests) in all related [repositories](#repositories).
244
+
At least one [code owner](#code-owners) must approve the [release pull requests](#step-5---create-pull-requests) in all related [repositories](#repositories).
245
245
246
246
247
247
### Step 11 - release candidates
248
248
249
249
Pre-release release candidates are generated automatically by the automation bot when:
250
-
- a pull request with a **fix** or **feat** prefix in the title is merged into the [release branch](#step-3---create-release-branches)
250
+
- a pull request with a **fix** or **feat** prefix in the title is merged into the [release branch](#step-3---update-release-branches)
251
251
252
252
An example of a pull request created by the automation bot is: https://github.com/asyncapi/spec-json-schemas/pull/151
253
253
@@ -262,7 +262,7 @@ An example release candidate is: https://github.com/asyncapi/spec/releases/tag/v
262
262
263
263
### Step 12 - Notify code owners of critical repositories about the pre-releases
264
264
265
-
In order to let code owners of critical repositories have enough time to work on the changes needed on tooling, the [release coordinator](#%22release-coordinator%22) should notify code owners about the pre-releases.
265
+
In order to let code owners of critical repositories have enough time to work on the changes needed on tooling, the [release coordinator](#release-coordinator) should notify code owners about the pre-releases.
266
266
As per today, the following repositories are considered critical:
@@ -272,7 +272,7 @@ As per today, the following repositories are considered critical:
272
272
273
273
### Step 13 - merge the release branches
274
274
275
-
Once everything is ready, it is time to merge the [release branches](#step-3---create-release-branches) using the [draft pull requests prepared earlier](#step-7---create-pull-requests).
275
+
Once everything is ready, it is time to merge the [release branches](#step-3---update-release-branches) using the [draft pull requests prepared earlier](#step-5---create-pull-requests).
276
276
277
277
Merging can only be done by [code owners](#code-owners).
278
278
@@ -287,13 +287,13 @@ Release means merge of pull requests created from a release branch against the m
287
287
288
288
### Step 14 - publish releases
289
289
290
-
The [release coordinator](#%22release-coordinator%22) should ask the [code owners](#code-owners) for each repository to update the release in Github created by the automation bot, by adding the [release notes they have prepared](#step-10---prepare-release-notes).
290
+
The [release coordinator](#release-coordinator) should ask the [code owners](#code-owners) for each repository to update the release in Github created by the automation bot, by adding the [release notes they have prepared](#step-8---prepare-release-notes).
291
291
292
292
293
293
### Step 15 - notify tool maintainers
294
294
295
295
Our current CI/CD automation will fill PR's updating the dependencies **automatically** on all repositories after the release.
296
-
However, the [release coordinator](#%22release-coordinator%22) should notify maintainers of the dependant repositories that a new release happened, as those might want to adopt the new features.
296
+
However, the [release coordinator](#release-coordinator) should notify maintainers of the dependant repositories that a new release happened, as those might want to adopt the new features.
@@ -327,14 +327,14 @@ Alternatively, you can use the following GH search queries:
327
327
328
328
You can check the following [example of notification to maintainers](https://github.com/asyncapi/spec/issues/735#issuecomment-1109801674).
329
329
330
-
The [release coordinator](#%22release-coordinator%22) should also make sure other maintainers from other projects under the AsyncAPI GitHub organization released their packages.
330
+
The [release coordinator](#release-coordinator) should also make sure other maintainers from other projects under the AsyncAPI GitHub organization released their packages.
331
331
332
332
333
333
### Step 16 - notify the community
334
334
335
335
Every release of the release candidate is automatically published on the AsyncAPI Twitter account and in the releases-dedicated Slack channel.
336
336
337
-
If the [release coordinator](#%22release-coordinator%22) uses social networks like Twitter or LinkedIn, it is a great idea for them to promote the work that they've done to prepare the release by announcing it on their own private accounts. These can then be promoted and shared from the official AsyncAPI social accounts, to highlight and demonstrate the community-driven nature of releases.
337
+
If the [release coordinator](#release-coordinator) uses social networks like Twitter or LinkedIn, it is a great idea for them to promote the work that they've done to prepare the release by announcing it on their own private accounts. These can then be promoted and shared from the official AsyncAPI social accounts, to highlight and demonstrate the community-driven nature of releases.
338
338
339
339
Feel free to use other communication channels. Make sure that as many people as possible know about the change. Feel free to contact vendors upfront or other people that are interested in changes in the specification.
0 commit comments