Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs(release): update list of tools and maintainers to notify when releasing #770

Merged
merged 8 commits into from
Jun 10, 2022
54 changes: 46 additions & 8 deletions RELEASE_PROCESS.md
Original file line number Diff line number Diff line change
Expand Up @@ -293,8 +293,17 @@ An example release candidate is: https://github.com/asyncapi/spec/releases/tag/v

**Important:** When release candidates are created for the [spec](https://github.com/asyncapi/spec) repository, the [parser-js](https://github.com/asyncapi/parser-js) repository will need to be updated to use that release candidate.

### Step 14 - Notify code owners of critical repositories about the pre-releases

### Step 14 - merge the release branches
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.
As per today, the following repositories are considered critical:

- [HTML Template](https://github.com/asyncapi/html-template)
- [JavaScript Converter](https://github.com/asyncapi/converter-js/)
- [React component](https://github.com/asyncapi/asyncapi-react/)
- [Studio](https://github.com/asyncapi/studio)

### Step 15 - merge the release branches

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).

Expand All @@ -309,23 +318,52 @@ First, changes are merged into the `spec` repository, then `spec-json-schemas` a
Release means merge of pull requests created from a release branch against the master branch. First, changes are merged into the `spec` repository, then `spec-json-schemas` and at the end in `parser-js`. Like in the case of the merge of release candidates, a pull request in `parser-js` can be merged only if it uses the final release of the new `@asyncapi/specs` package.


### Step 15 - publish releases
### Step 16 - publish releases

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).


### Step 16 - notify tool maintainers
### Step 17 - notify tool maintainers

The [release coordinator](#%22release-coordinator%22) should notify maintainers of the following repositories that the first feature is merged and that release will be produced and therefore they need to start preparing for it:
Our current CI/CD automation will fill PR's updating the dependencies **automatically** on all repositories after the release.
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.

Some of the dependant repositories are:
- [Avro Schema parser](https://github.com/asyncapi/avro-schema-parser)
- [Bundler](https://github.com/asyncapi/bundler)
- [CLI](https://github.com/asyncapi/cli)
- [Cupid](https://github.com/asyncapi/cupid)
- [Dot Net NATS template](https://github.com/asyncapi/dotnet-nats-template)
- [Generator](https://github.com/asyncapi/generator)
- [Generator React SDK](https://github.com/asyncapi/generator-react-sdk)
- [Glee](https://github.com/asyncapi/glee)
- [HTML Template](https://github.com/asyncapi/html-template)
- [Java Template](https://github.com/asyncapi/java-template)
- [JavaScript Converter](https://github.com/asyncapi/converter-js/)
- [Playground](https://github.com/asyncapi/playground/)
- [React component](https://github.com/asyncapi/asyncapi-react/)
- [Markdown template](https://github.com/asyncapi/markdown-template)
- [Modelina](https://github.com/asyncapi/modelina)
- [NodeJS WS Template](https://github.com/asyncapi/nodejs-ws-template)
- [Optimizer](https://github.com/asyncapi/optimizer)
- [Parser Go](https://github.com/asyncapi/parser-go)
- [React component](https://github.com/asyncapi/asyncapi-react/)
- [Server API](https://github.com/asyncapi/server-api/)
- [Simulator](https://github.com/asyncapi/simulator)
- [Studio](https://github.com/asyncapi/studio)
- [TS NATS Template](https://github.com/asyncapi/ts-nats-template)

You can use Github Code Search to find the [list of repositories depending on parser-js or the specs](https://cs.github.com/?scopeName=All+repos&scope=&q=org%3Aasyncapi+%28path%3Apackage.json+OR+go.mod%29+%22%40asyncapi%2Fparser%22+OR+%22%40asyncapi%2Fspecs%22+OR+%22github.com%2Fasyncapi%2Fspec-json-schemas%22+OR+%22github.com%2Fasyncapi%2Fparser-go%22#).
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm still on the waiting list for code search so I can't try this, but it's a neat idea

Alternatively, you can use the following GH search queries:
- [NodeJS @asyncapi/specs dependants](https://github.com/search?q=org%3Aasyncapi+in%3Afile+filename%3Apackage.json+%22%40asyncapi%2Fspecs%22)
- [NodeJS @asyncapi/parser dependants](https://github.com/search?q=org%3Aasyncapi+in%3Afile+filename%3Apackage.json+%22%40asyncapi%2Fparser%22)
- [Go github.com/asyncapi/spec-json-schema dependants](https://github.com/search?q=org%3Aasyncapi+in%3Afile+filename%3Ago.mod+%22%40github.com%2Fasyncapi%2Fspec-json-schemas%22)
- [Go github.com/asyncapi/parser-go dependants](https://github.com/search?q=org%3Aasyncapi+in%3Afile+filename%3Ago.mod+%22%40github.com%2Fasyncapi%2Fparser-go%22)

You can check the following [example of notification to maintainers](https://github.com/asyncapi/spec/issues/735#issuecomment-1109801674).

The [release coordinator](#%22release-coordinator%22) should also make sure other maintainers from other projects under the AsyncAPI GitHub organization released their packages.


### Step 17 - notify the community
### Step 18 - notify the community

Every release of the release candidate is automatically published on the AsyncAPI Twitter account and in the releases-dedicated Slack channel.

Expand All @@ -334,7 +372,7 @@ If the [release coordinator](#%22release-coordinator%22) uses social networks li
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.


### Step 18 - improve the release process
### Step 19 - improve the release process

Every release identifies new issues and ways that the process can be improved.

Expand Down