From 0fc35d632cb575a535c8ff91074d5aabb5f028b9 Mon Sep 17 00:00:00 2001 From: Sergio Moya <1083296+smoya@users.noreply.github.com> Date: Tue, 26 Apr 2022 14:12:04 +0200 Subject: [PATCH 1/5] docs(release): update list of tools and maintainers to notify when releasing --- RELEASE_PROCESS.md | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/RELEASE_PROCESS.md b/RELEASE_PROCESS.md index 07547270c..97a9ca45d 100644 --- a/RELEASE_PROCESS.md +++ b/RELEASE_PROCESS.md @@ -316,11 +316,29 @@ The [release coordinator](#%22release-coordinator%22) should ask the [code owner ### Step 16 - 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: +The [release coordinator](#%22release-coordinator%22) should notify maintainers of the dependant repositories that first feature is merged and that release will be produced and therefore they need to start preparing for it. Here is the [full list of repositories depending on parser-js or 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#). Some of them 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) + - [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 check the following [example of Slack message notifying maintainers](https://asyncapi.slack.com/archives/CQVJXFNQL/p1650543345479079). The [release coordinator](#%22release-coordinator%22) should also make sure other maintainers from other projects under the AsyncAPI GitHub organization released their packages. From 711fcd78046123387b7f201cda45e475494c715e Mon Sep 17 00:00:00 2001 From: Sergio Moya <1083296+smoya@users.noreply.github.com> Date: Tue, 26 Apr 2022 15:40:52 +0200 Subject: [PATCH 2/5] use gh issue for notification --- RELEASE_PROCESS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASE_PROCESS.md b/RELEASE_PROCESS.md index 97a9ca45d..e45e18ea7 100644 --- a/RELEASE_PROCESS.md +++ b/RELEASE_PROCESS.md @@ -338,7 +338,7 @@ The [release coordinator](#%22release-coordinator%22) should notify maintainers - [Studio](https://github.com/asyncapi/studio) - [TS NATS Template](https://github.com/asyncapi/ts-nats-template) -You can check the following [example of Slack message notifying maintainers](https://asyncapi.slack.com/archives/CQVJXFNQL/p1650543345479079). +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. From ef1e66635a4faf899e80e8d793efa140d32dee2f Mon Sep 17 00:00:00 2001 From: Sergio Moya <1083296+smoya@users.noreply.github.com> Date: Tue, 26 Apr 2022 17:38:51 +0200 Subject: [PATCH 3/5] clarification --- RELEASE_PROCESS.md | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/RELEASE_PROCESS.md b/RELEASE_PROCESS.md index e45e18ea7..40a89ce08 100644 --- a/RELEASE_PROCESS.md +++ b/RELEASE_PROCESS.md @@ -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). @@ -309,14 +318,16 @@ 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 dependant repositories that first feature is merged and that release will be produced and therefore they need to start preparing for it. Here is the [full list of repositories depending on parser-js or 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#). Some of them are: +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. +Here is the [full list of repositories depending on parser-js or 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#). Some of them are: - [Avro Schema parser](https://github.com/asyncapi/avro-schema-parser) - [Bundler](https://github.com/asyncapi/bundler) - [CLI](https://github.com/asyncapi/cli) @@ -325,6 +336,7 @@ The [release coordinator](#%22release-coordinator%22) should notify maintainers - [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/) - [Markdown template](https://github.com/asyncapi/markdown-template) @@ -343,7 +355,7 @@ You can check the following [example of notification to maintainers](https://git 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. @@ -352,7 +364,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. From d7dc58f41efe0721150d35f47fb428492dd2fb27 Mon Sep 17 00:00:00 2001 From: Sergio Moya <1083296+smoya@users.noreply.github.com> Date: Mon, 9 May 2022 18:58:55 +0200 Subject: [PATCH 4/5] provide alternative queries for dependants --- RELEASE_PROCESS.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/RELEASE_PROCESS.md b/RELEASE_PROCESS.md index 40a89ce08..af0039126 100644 --- a/RELEASE_PROCESS.md +++ b/RELEASE_PROCESS.md @@ -327,7 +327,8 @@ The [release coordinator](#%22release-coordinator%22) should ask the [code owner 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. -Here is the [full list of repositories depending on parser-js or 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#). Some of them are: + +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) @@ -350,6 +351,13 @@ Here is the [full list of repositories depending on parser-js or specs](https:// - [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#). +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. From 8a98d107b29fb683e83bc1bacc95c74929f98628 Mon Sep 17 00:00:00 2001 From: Sergio Moya <1083296+smoya@users.noreply.github.com> Date: Mon, 9 May 2022 19:22:04 +0200 Subject: [PATCH 5/5] fix typo --- RELEASE_PROCESS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASE_PROCESS.md b/RELEASE_PROCESS.md index af0039126..8440c4777 100644 --- a/RELEASE_PROCESS.md +++ b/RELEASE_PROCESS.md @@ -355,7 +355,7 @@ You can use Github Code Search to find the [list of repositories depending on pa 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/spec-json-schemas 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).