From e7ad9d459116575ab22c2c70c9ee60d388de3e66 Mon Sep 17 00:00:00 2001 From: Dale Lane Date: Tue, 14 Dec 2021 18:30:09 +0000 Subject: [PATCH 01/22] chore(blog): add release notes for 2.3 release Contributes to: asyncapi/spec#675 Signed-off-by: Dale Lane --- pages/blog/release-notes-2.3.0.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 pages/blog/release-notes-2.3.0.md diff --git a/pages/blog/release-notes-2.3.0.md b/pages/blog/release-notes-2.3.0.md new file mode 100644 index 000000000000..37be036b6bd6 --- /dev/null +++ b/pages/blog/release-notes-2.3.0.md @@ -0,0 +1,24 @@ +--- +title: AsyncAPI Spec 2.3.0 Release Notes +date: 2021-12-14T18:00:00+01:00 +type: Communication +tags: + - specification + - release +cover: /img/posts/release-notes-2.3.0/cover.webp +authors: + - name: Lukasz Gornicki + photo: /img/avatars/lpgornicki.webp + link: https://twitter.com/derberq + byline: AsyncAPI Maintainer and Community Guardian +excerpt: 'TODO: write excerpt' +featured: true +--- + +- put good overview +- each section should represent a feature + - clear info about feature + - use case + - contributor + - link to PR +- last section should have additional thank you towards other people involved in the release success From 19a0ea98edaf2edae30199b64964774604810be9 Mon Sep 17 00:00:00 2001 From: Dale Lane Date: Wed, 5 Jan 2022 09:58:01 +0000 Subject: [PATCH 02/22] docs: placeholder sections for 2.3.0 release notes Contributes to: asyncapi/spec#675 Signed-off-by: Dale Lane --- pages/blog/release-notes-2.3.0.md | 42 ++++++++++++++++++++++++++++--- 1 file changed, 39 insertions(+), 3 deletions(-) diff --git a/pages/blog/release-notes-2.3.0.md b/pages/blog/release-notes-2.3.0.md index 37be036b6bd6..b4cb0f30a5dd 100644 --- a/pages/blog/release-notes-2.3.0.md +++ b/pages/blog/release-notes-2.3.0.md @@ -1,10 +1,10 @@ --- title: AsyncAPI Spec 2.3.0 Release Notes -date: 2021-12-14T18:00:00+01:00 +date: 2022-01-05T10:00:00+01:00 type: Communication tags: - - specification - - release + - Specification + - Release Notes cover: /img/posts/release-notes-2.3.0/cover.webp authors: - name: Lukasz Gornicki @@ -15,6 +15,42 @@ excerpt: 'TODO: write excerpt' featured: true --- +AsyncAPI specification 2.3.0 release notes + +> This is a minor release, and it doesn't bring any breaking changes. You can switch to it by modifying the following value in your AsyncAPI file `asyncapi: '2.2.0'` into `asyncapi: '2.3.0'` + +## Make regular expressions ECMA-262 compliant + +- pull request: https://github.com/asyncapi/spec-json-schemas/pull/145 +- contributor: Sergio Moya + +## Make channels optional + +- pull request: https://github.com/asyncapi/spec/pull/682 +- contributor: Sergio Moya + +## Allow servers and channels to be defined as components + +- pull request: https://github.com/asyncapi/spec/pull/665 +- contributor: Sergio Moya + + +## Add Solace bindings + +- pull request: https://github.com/asyncapi/spec/pull/666 +- contributor: Michael Davis + +## Look ahead + +future minor releases https://github.com/asyncapi/spec/blob/master/RELEASE_PROCESS.md#release-cadence + +work on 3.0.0 https://github.com/asyncapi/spec/milestone/18 + + + + + + - put good overview - each section should represent a feature - clear info about feature From f5a5476b87cb5178145c96d7e7d4b2f48b6a4916 Mon Sep 17 00:00:00 2001 From: Dale Lane Date: Sun, 9 Jan 2022 22:04:46 +0000 Subject: [PATCH 03/22] docs: Add release notes for Solace bindings Signed-off-by: Dale Lane --- pages/blog/release-notes-2.3.0.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pages/blog/release-notes-2.3.0.md b/pages/blog/release-notes-2.3.0.md index b4cb0f30a5dd..091763bc9054 100644 --- a/pages/blog/release-notes-2.3.0.md +++ b/pages/blog/release-notes-2.3.0.md @@ -34,11 +34,11 @@ AsyncAPI specification 2.3.0 release notes - pull request: https://github.com/asyncapi/spec/pull/665 - contributor: Sergio Moya +## New protocol bindings -## Add Solace bindings +The specification is now extended to support the following custom protocols through the bindings feature: -- pull request: https://github.com/asyncapi/spec/pull/666 -- contributor: Michael Davis +Solace, thanks to [Michael Davis](https://github.com/damaru-inc). For more details check out this [pull request](https://github.com/asyncapi/spec/pull/666) and [binding definition](https://github.com/asyncapi/bindings/tree/master/solace). ## Look ahead From 4b3ad228f9ecadd34220ca0042ddf159edb278d7 Mon Sep 17 00:00:00 2001 From: Dale Lane Date: Sun, 9 Jan 2022 22:16:43 +0000 Subject: [PATCH 04/22] docs: add release notes for regex unicode compliance Signed-off-by: Dale Lane --- pages/blog/release-notes-2.3.0.md | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/pages/blog/release-notes-2.3.0.md b/pages/blog/release-notes-2.3.0.md index 091763bc9054..d9a5d96ed02c 100644 --- a/pages/blog/release-notes-2.3.0.md +++ b/pages/blog/release-notes-2.3.0.md @@ -19,11 +19,6 @@ AsyncAPI specification 2.3.0 release notes > This is a minor release, and it doesn't bring any breaking changes. You can switch to it by modifying the following value in your AsyncAPI file `asyncapi: '2.2.0'` into `asyncapi: '2.3.0'` -## Make regular expressions ECMA-262 compliant - -- pull request: https://github.com/asyncapi/spec-json-schemas/pull/145 -- contributor: Sergio Moya - ## Make channels optional - pull request: https://github.com/asyncapi/spec/pull/682 @@ -38,7 +33,11 @@ AsyncAPI specification 2.3.0 release notes The specification is now extended to support the following custom protocols through the bindings feature: -Solace, thanks to [Michael Davis](https://github.com/damaru-inc). For more details check out this [pull request](https://github.com/asyncapi/spec/pull/666) and [binding definition](https://github.com/asyncapi/bindings/tree/master/solace). +Solace, thanks to [Michael Davis](https://github.com/damaru-inc). For more details, check out this [pull request](https://github.com/asyncapi/spec/pull/666) and [binding definition](https://github.com/asyncapi/bindings/tree/master/solace). + +## Other enhancements + +Regular expressions are now Unicode-compliant. This enhancement to the specification from [Sergio Moya](https://www.linkedin.com/in/smoya) means that regular expressions (found in `pattern` and `patternProperties` fields) are now Unicode-compliant (according to ECMA-262). This improves compatibility with some JSON Schema parsers. For more details, check out the [pull request](https://github.com/asyncapi/spec-json-schemas/pull/145). ## Look ahead From 420ef202e8737f87d0ad2268b75cb317b45cce03 Mon Sep 17 00:00:00 2001 From: Dale Lane Date: Sun, 9 Jan 2022 22:43:12 +0000 Subject: [PATCH 05/22] docs: release notes for channels now being optional Signed-off-by: Dale Lane --- pages/blog/release-notes-2.3.0.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pages/blog/release-notes-2.3.0.md b/pages/blog/release-notes-2.3.0.md index d9a5d96ed02c..2063597fcb6b 100644 --- a/pages/blog/release-notes-2.3.0.md +++ b/pages/blog/release-notes-2.3.0.md @@ -19,10 +19,11 @@ AsyncAPI specification 2.3.0 release notes > This is a minor release, and it doesn't bring any breaking changes. You can switch to it by modifying the following value in your AsyncAPI file `asyncapi: '2.2.0'` into `asyncapi: '2.3.0'` -## Make channels optional +## Channels are now optional -- pull request: https://github.com/asyncapi/spec/pull/682 -- contributor: Sergio Moya +To allow for more flexibility in how AsyncAPI documents are structured and reused, `channels` are no longer a required section. + +This change from [Sergio Moya](https://www.linkedin.com/in/smoya) makes it easier, for example, to have an AsyncAPI document that only contains reusable component definitions. For more detail, see the [Github issue where this change was discussed](https://github.com/asyncapi/spec/issues/661). ## Allow servers and channels to be defined as components From 7ccf8667dc9f421b2deb82df00a6d7a64dfa5958 Mon Sep 17 00:00:00 2001 From: Dale Lane Date: Mon, 10 Jan 2022 00:00:28 +0000 Subject: [PATCH 06/22] docs: add release notes for allowing refs for servers and channels Signed-off-by: Dale Lane --- pages/blog/release-notes-2.3.0.md | 44 +++++++++++++++++++++++++++---- 1 file changed, 39 insertions(+), 5 deletions(-) diff --git a/pages/blog/release-notes-2.3.0.md b/pages/blog/release-notes-2.3.0.md index 2063597fcb6b..3a00215d6238 100644 --- a/pages/blog/release-notes-2.3.0.md +++ b/pages/blog/release-notes-2.3.0.md @@ -19,16 +19,48 @@ AsyncAPI specification 2.3.0 release notes > This is a minor release, and it doesn't bring any breaking changes. You can switch to it by modifying the following value in your AsyncAPI file `asyncapi: '2.2.0'` into `asyncapi: '2.3.0'` + +## Servers and channels can now be defined as reusable components + +To allow for more flexibility in how AsyncAPI documents are structured and enable content to be reused, `servers` and `channels` can now be defined as reusable components. + +For example: + +```yaml +servers: + production: + $ref: '#/components/servers/myserver' +channels: + some/events: + $ref: '#/components/channels/myChannel' +components: + servers: + myserver: + url: "http://localhost:5000/ws" + protocol: ws + channels: + myChannel: + description: "mychannel" +``` + +This new feature was contributed by [Sergio Moya](https://www.linkedin.com/in/smoya). For more detail, see this [pull request](https://github.com/asyncapi/spec/pull/665) and the [Github issue where this change was discussed](https://github.com/asyncapi/spec/issues/660). + + ## Channels are now optional -To allow for more flexibility in how AsyncAPI documents are structured and reused, `channels` are no longer a required section. +Related to the above change, also in support of enabling greater flexibility in how AsyncAPI documents are structured and reused, `channels` are no longer a required section. + +This change makes it easier, for example, to have an AsyncAPI document that only contains reusable component definitions. For more detail, see the [Github issue where this change was discussed](https://github.com/asyncapi/spec/issues/661). -This change from [Sergio Moya](https://www.linkedin.com/in/smoya) makes it easier, for example, to have an AsyncAPI document that only contains reusable component definitions. For more detail, see the [Github issue where this change was discussed](https://github.com/asyncapi/spec/issues/661). +For example, you could now have: -## Allow servers and channels to be defined as components +```yaml +PLACEHOLDER - asyncapi doc A without channels +``` -- pull request: https://github.com/asyncapi/spec/pull/665 -- contributor: Sergio Moya +```yaml +PLACEHOLDER - asyncapi doc B that has refs to content from doc A +``` ## New protocol bindings @@ -36,10 +68,12 @@ The specification is now extended to support the following custom protocols thro Solace, thanks to [Michael Davis](https://github.com/damaru-inc). For more details, check out this [pull request](https://github.com/asyncapi/spec/pull/666) and [binding definition](https://github.com/asyncapi/bindings/tree/master/solace). + ## Other enhancements Regular expressions are now Unicode-compliant. This enhancement to the specification from [Sergio Moya](https://www.linkedin.com/in/smoya) means that regular expressions (found in `pattern` and `patternProperties` fields) are now Unicode-compliant (according to ECMA-262). This improves compatibility with some JSON Schema parsers. For more details, check out the [pull request](https://github.com/asyncapi/spec-json-schemas/pull/145). + ## Look ahead future minor releases https://github.com/asyncapi/spec/blob/master/RELEASE_PROCESS.md#release-cadence From 9f39358582a625e3705a2ca399565a0c12d331aa Mon Sep 17 00:00:00 2001 From: Dale Lane Date: Mon, 10 Jan 2022 00:11:29 +0000 Subject: [PATCH 07/22] docs: release notes improvements Signed-off-by: Dale Lane --- pages/blog/release-notes-2.3.0.md | 38 ++++++++++++------------------- 1 file changed, 14 insertions(+), 24 deletions(-) diff --git a/pages/blog/release-notes-2.3.0.md b/pages/blog/release-notes-2.3.0.md index 3a00215d6238..4ba8148d4d8b 100644 --- a/pages/blog/release-notes-2.3.0.md +++ b/pages/blog/release-notes-2.3.0.md @@ -1,21 +1,20 @@ --- title: AsyncAPI Spec 2.3.0 Release Notes -date: 2022-01-05T10:00:00+01:00 +date: 2022-01-10T10:00:00+01:00 type: Communication tags: - Specification - Release Notes -cover: /img/posts/release-notes-2.3.0/cover.webp +cover: /img/posts/release-notes-2.2.0/cover.webp authors: - - name: Lukasz Gornicki - photo: /img/avatars/lpgornicki.webp - link: https://twitter.com/derberq - byline: AsyncAPI Maintainer and Community Guardian -excerpt: 'TODO: write excerpt' + - name: Dale Lane + photo: /img/avatars/questionmark.webp + link: https://twitter.com/dalelane +excerpt: 'AsyncAPI 2.3 is now released. This brings enhancements allowing new ways of structuring AsyncAPI documents and support for describing Solace APIs.' featured: true --- -AsyncAPI specification 2.3.0 release notes +PLACEHOLDER... intro for AsyncAPI specification 2.3.0 release notes > This is a minor release, and it doesn't bring any breaking changes. You can switch to it by modifying the following value in your AsyncAPI file `asyncapi: '2.2.0'` into `asyncapi: '2.3.0'` @@ -48,9 +47,9 @@ This new feature was contributed by [Sergio Moya](https://www.linkedin.com/in/sm ## Channels are now optional -Related to the above change, also in support of enabling greater flexibility in how AsyncAPI documents are structured and reused, `channels` are no longer a required section. +Related to the above change, and also in support of enabling greater flexibility in how AsyncAPI documents are structured and reused, `channels` are no longer a required section. -This change makes it easier, for example, to have an AsyncAPI document that only contains reusable component definitions. For more detail, see the [Github issue where this change was discussed](https://github.com/asyncapi/spec/issues/661). +This change makes it easier, for example, to have an AsyncAPI document that only contains reusable component definitions. For example, you could now have: @@ -62,6 +61,9 @@ PLACEHOLDER - asyncapi doc A without channels PLACEHOLDER - asyncapi doc B that has refs to content from doc A ``` +For more detail, see the [Github issue where this change was discussed](https://github.com/asyncapi/spec/issues/661). + + ## New protocol bindings The specification is now extended to support the following custom protocols through the bindings feature: @@ -76,19 +78,7 @@ Regular expressions are now Unicode-compliant. This enhancement to the specifica ## Look ahead -future minor releases https://github.com/asyncapi/spec/blob/master/RELEASE_PROCESS.md#release-cadence - -work on 3.0.0 https://github.com/asyncapi/spec/milestone/18 - - - - +PLACEHOLDER... explain future minor releases https://github.com/asyncapi/spec/blob/master/RELEASE_PROCESS.md#release-cadence +PLACEHOLDER... explain work on 3.0.0 https://github.com/asyncapi/spec/milestone/18 -- put good overview -- each section should represent a feature - - clear info about feature - - use case - - contributor - - link to PR -- last section should have additional thank you towards other people involved in the release success From 180c18b451ab0a3a5b77454d99a66ed7458ad61d Mon Sep 17 00:00:00 2001 From: Dale Lane Date: Mon, 17 Jan 2022 00:03:36 +0000 Subject: [PATCH 08/22] docs: tidying up release notes Signed-off-by: Dale Lane --- pages/blog/release-notes-2.3.0.md | 50 +++++++++++++++++++++++++------ 1 file changed, 41 insertions(+), 9 deletions(-) diff --git a/pages/blog/release-notes-2.3.0.md b/pages/blog/release-notes-2.3.0.md index 4ba8148d4d8b..ef63c72a595e 100644 --- a/pages/blog/release-notes-2.3.0.md +++ b/pages/blog/release-notes-2.3.0.md @@ -14,7 +14,7 @@ excerpt: 'AsyncAPI 2.3 is now released. This brings enhancements allowing new wa featured: true --- -PLACEHOLDER... intro for AsyncAPI specification 2.3.0 release notes +The new version of the AsyncAPI specification - 2.3.0 - is now available. > This is a minor release, and it doesn't bring any breaking changes. You can switch to it by modifying the following value in your AsyncAPI file `asyncapi: '2.2.0'` into `asyncapi: '2.3.0'` @@ -26,6 +26,7 @@ To allow for more flexibility in how AsyncAPI documents are structured and enabl For example: ```yaml +asyncapi: 2.3.0 servers: production: $ref: '#/components/servers/myserver' @@ -42,6 +43,8 @@ components: description: "mychannel" ``` +These are added to the many other aspects of the AsyncAPI specification which can be declared as reusable components. You can see the full list in the [Components Object section of the AsyncAPI specification](https://www.asyncapi.com/docs/specifications/v2.3.0#componentsObject). + This new feature was contributed by [Sergio Moya](https://www.linkedin.com/in/smoya). For more detail, see this [pull request](https://github.com/asyncapi/spec/pull/665) and the [Github issue where this change was discussed](https://github.com/asyncapi/spec/issues/660). @@ -51,14 +54,40 @@ Related to the above change, and also in support of enabling greater flexibility This change makes it easier, for example, to have an AsyncAPI document that only contains reusable component definitions. -For example, you could now have: +For example, you could now have a document like this, which you use solely to hold reusable components for use in other documents. ```yaml -PLACEHOLDER - asyncapi doc A without channels +asyncapi: 2.3.0 +info: + description: Dictionary for our definitions +servers: + production: + $ref: '#/components/servers/myserver' +components: + servers: + myserver: + url: "http://localhost:5000/ws" + protocol: ws + channels: + myChannel: + description: "mychannel" + myOtherChannel: + description: "another channel" ``` +This could be then used in other documents, like: ```yaml -PLACEHOLDER - asyncapi doc B that has refs to content from doc A +asyncapi: 2.3.0 +info: + description: My awesome service API +servers: + myserver: + $ref: 'dictionary.yaml#/components/servers/myserver' +channels: + mychannel1: + $ref: 'dictionary.yaml#/components/channels/myChannel' + mychannel1: + $ref: 'dictionary.yaml#/components/channels/myOtherChannel' ``` For more detail, see the [Github issue where this change was discussed](https://github.com/asyncapi/spec/issues/661). @@ -66,19 +95,22 @@ For more detail, see the [Github issue where this change was discussed](https:// ## New protocol bindings -The specification is now extended to support the following custom protocols through the bindings feature: +The specification is now extended to support another custom protocol through the bindings feature: -Solace, thanks to [Michael Davis](https://github.com/damaru-inc). For more details, check out this [pull request](https://github.com/asyncapi/spec/pull/666) and [binding definition](https://github.com/asyncapi/bindings/tree/master/solace). +Solace, thanks to [Michael Davis](https://github.com/damaru-inc). +For more details, check out this [pull request](https://github.com/asyncapi/spec/pull/666) and [binding definition](https://github.com/asyncapi/bindings/tree/master/solace). ## Other enhancements -Regular expressions are now Unicode-compliant. This enhancement to the specification from [Sergio Moya](https://www.linkedin.com/in/smoya) means that regular expressions (found in `pattern` and `patternProperties` fields) are now Unicode-compliant (according to ECMA-262). This improves compatibility with some JSON Schema parsers. For more details, check out the [pull request](https://github.com/asyncapi/spec-json-schemas/pull/145). +Regular expressions are now Unicode-compliant. This enhancement to the specification from [Sergio Moya](https://www.linkedin.com/in/smoya) means that regular expressions (found in `pattern` and `patternProperties` fields) are now Unicode-compliant (according to ECMA-262). + +This improves compatibility with some JSON Schema parsers. For more details, check out the [pull request](https://github.com/asyncapi/spec-json-schemas/pull/145). ## Look ahead -PLACEHOLDER... explain future minor releases https://github.com/asyncapi/spec/blob/master/RELEASE_PROCESS.md#release-cadence +We aim to have a regular cadence of releases of the AsyncAPI specification, four times a year. For more information about when to expect future releases, you can see our [release process document](https://github.com/asyncapi/spec/blob/master/RELEASE_PROCESS.md#release-cadence). -PLACEHOLDER... explain work on 3.0.0 https://github.com/asyncapi/spec/milestone/18 +We're also working on the next major release of the AsyncAPI specification: 3.0.0. If you'd like to contribute, or just follow the discussions, you can see the [milestone on Github](https://github.com/asyncapi/spec/milestone/18). From 37c970fdd9e511a07b9defbe99ae059c06a7e143 Mon Sep 17 00:00:00 2001 From: Dale Lane Date: Tue, 18 Jan 2022 13:10:08 +0000 Subject: [PATCH 09/22] update pages/blog/release-notes-2.3.0.md Co-authored-by: David Boyne --- pages/blog/release-notes-2.3.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/blog/release-notes-2.3.0.md b/pages/blog/release-notes-2.3.0.md index ef63c72a595e..f1d7cdc81a85 100644 --- a/pages/blog/release-notes-2.3.0.md +++ b/pages/blog/release-notes-2.3.0.md @@ -86,7 +86,7 @@ servers: channels: mychannel1: $ref: 'dictionary.yaml#/components/channels/myChannel' - mychannel1: + mychannel2: $ref: 'dictionary.yaml#/components/channels/myOtherChannel' ``` From 5895ab18567266a2e00dec58c0689035f3e1753e Mon Sep 17 00:00:00 2001 From: Dale Lane Date: Sun, 23 Jan 2022 21:35:05 +0000 Subject: [PATCH 10/22] chore: remove section on channels being optional This change (from asyncapi/spec#661) is now being held back to version 3.0 so I've removed the reference to it from the release notes for 2.3 Signed-off-by: Dale Lane --- pages/blog/release-notes-2.3.0.md | 45 ------------------------------- 1 file changed, 45 deletions(-) diff --git a/pages/blog/release-notes-2.3.0.md b/pages/blog/release-notes-2.3.0.md index f1d7cdc81a85..e6d026988172 100644 --- a/pages/blog/release-notes-2.3.0.md +++ b/pages/blog/release-notes-2.3.0.md @@ -48,51 +48,6 @@ These are added to the many other aspects of the AsyncAPI specification which ca This new feature was contributed by [Sergio Moya](https://www.linkedin.com/in/smoya). For more detail, see this [pull request](https://github.com/asyncapi/spec/pull/665) and the [Github issue where this change was discussed](https://github.com/asyncapi/spec/issues/660). -## Channels are now optional - -Related to the above change, and also in support of enabling greater flexibility in how AsyncAPI documents are structured and reused, `channels` are no longer a required section. - -This change makes it easier, for example, to have an AsyncAPI document that only contains reusable component definitions. - -For example, you could now have a document like this, which you use solely to hold reusable components for use in other documents. - -```yaml -asyncapi: 2.3.0 -info: - description: Dictionary for our definitions -servers: - production: - $ref: '#/components/servers/myserver' -components: - servers: - myserver: - url: "http://localhost:5000/ws" - protocol: ws - channels: - myChannel: - description: "mychannel" - myOtherChannel: - description: "another channel" -``` - -This could be then used in other documents, like: -```yaml -asyncapi: 2.3.0 -info: - description: My awesome service API -servers: - myserver: - $ref: 'dictionary.yaml#/components/servers/myserver' -channels: - mychannel1: - $ref: 'dictionary.yaml#/components/channels/myChannel' - mychannel2: - $ref: 'dictionary.yaml#/components/channels/myOtherChannel' -``` - -For more detail, see the [Github issue where this change was discussed](https://github.com/asyncapi/spec/issues/661). - - ## New protocol bindings The specification is now extended to support another custom protocol through the bindings feature: From be2d0ce9a2e3cefe569b9c696b54bed4f1e99ab6 Mon Sep 17 00:00:00 2001 From: Dale Lane Date: Sun, 23 Jan 2022 22:03:18 +0000 Subject: [PATCH 11/22] docs: add release notes for channel item $ref deprecation Contributes to: asyncapi/spec#607 Signed-off-by: Dale Lane --- pages/blog/release-notes-2.3.0.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/pages/blog/release-notes-2.3.0.md b/pages/blog/release-notes-2.3.0.md index e6d026988172..ae6eac972434 100644 --- a/pages/blog/release-notes-2.3.0.md +++ b/pages/blog/release-notes-2.3.0.md @@ -63,6 +63,27 @@ Regular expressions are now Unicode-compliant. This enhancement to the specifica This improves compatibility with some JSON Schema parsers. For more details, check out the [pull request](https://github.com/asyncapi/spec-json-schemas/pull/145). +## Deprecations + +The `$ref` field in [Channel Item Object](#https://www.asyncapi.com/docs/specifications/v2.3.0#channelItemObject) is deprecated from AsyncAPI 2.3.0, in favour of using [Reference Object](https://www.asyncapi.com/docs/specifications/v2.3.0#referenceObject) instead. + +The preferred approach is: + +```yaml +asyncapi: 2.3.0 +... +channels: + mychannel: + $ref: '#/components/channels/mychannel' +components: + channels: + mychannel: + description: 'my channel' +``` + +The current plan is that the `$ref` field will be removed from **Channel Item Object** in AsyncAPI 3.0, . For more detail, you can see the [discussion about this issue in Github](https://github.com/asyncapi/spec/issues/607). + + ## Look ahead We aim to have a regular cadence of releases of the AsyncAPI specification, four times a year. For more information about when to expect future releases, you can see our [release process document](https://github.com/asyncapi/spec/blob/master/RELEASE_PROCESS.md#release-cadence). From a30060db4939ba1e9a7f1500de1d0add2c2f8795 Mon Sep 17 00:00:00 2001 From: Dale Lane Date: Sun, 23 Jan 2022 22:05:12 +0000 Subject: [PATCH 12/22] chore: typo fix Signed-off-by: Dale Lane --- pages/blog/release-notes-2.3.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/blog/release-notes-2.3.0.md b/pages/blog/release-notes-2.3.0.md index ae6eac972434..3dee982651f3 100644 --- a/pages/blog/release-notes-2.3.0.md +++ b/pages/blog/release-notes-2.3.0.md @@ -81,7 +81,7 @@ components: description: 'my channel' ``` -The current plan is that the `$ref` field will be removed from **Channel Item Object** in AsyncAPI 3.0, . For more detail, you can see the [discussion about this issue in Github](https://github.com/asyncapi/spec/issues/607). +The current plan is that the `$ref` field will be removed from **Channel Item Object** in AsyncAPI 3.0. For more detail, you can see the [discussion about this issue in Github](https://github.com/asyncapi/spec/issues/607). ## Look ahead From bb24e6c869e345f07fe98c2900dda2c703ee8db5 Mon Sep 17 00:00:00 2001 From: Dale Lane Date: Mon, 24 Jan 2022 23:21:02 +0000 Subject: [PATCH 13/22] docs: address review comment Signed-off-by: Dale Lane --- pages/blog/release-notes-2.3.0.md | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/pages/blog/release-notes-2.3.0.md b/pages/blog/release-notes-2.3.0.md index 3dee982651f3..b439c54a293c 100644 --- a/pages/blog/release-notes-2.3.0.md +++ b/pages/blog/release-notes-2.3.0.md @@ -65,23 +65,11 @@ This improves compatibility with some JSON Schema parsers. For more details, che ## Deprecations -The `$ref` field in [Channel Item Object](#https://www.asyncapi.com/docs/specifications/v2.3.0#channelItemObject) is deprecated from AsyncAPI 2.3.0, in favour of using [Reference Object](https://www.asyncapi.com/docs/specifications/v2.3.0#referenceObject) instead. +The `$ref` field in [Channel Item Object](#https://www.asyncapi.com/docs/specifications/v2.3.0#channelItemObject) is now deprecated from AsyncAPI 2.3.0. -The preferred approach is: +The current plan is that the `$ref` field will be removed from **Channel Item Object** in AsyncAPI 3.0, and replaced with [Reference Object](https://www.asyncapi.com/docs/specifications/v2.3.0#referenceObject). -```yaml -asyncapi: 2.3.0 -... -channels: - mychannel: - $ref: '#/components/channels/mychannel' -components: - channels: - mychannel: - description: 'my channel' -``` - -The current plan is that the `$ref` field will be removed from **Channel Item Object** in AsyncAPI 3.0. For more detail, you can see the [discussion about this issue in Github](https://github.com/asyncapi/spec/issues/607). +For more detail, you can see the [discussion about this issue in Github](https://github.com/asyncapi/spec/issues/607). ## Look ahead From 4050ca0540684f5188300e0c27efc713a6ba1ec2 Mon Sep 17 00:00:00 2001 From: Dale Lane Date: Mon, 31 Jan 2022 18:51:49 +0000 Subject: [PATCH 14/22] docs: update cover image for release notes blog post Signed-off-by: Dale Lane --- pages/blog/release-notes-2.3.0.md | 4 +++- public/img/posts/release-notes-2.3.0/cover.webp | Bin 0 -> 94228 bytes 2 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 public/img/posts/release-notes-2.3.0/cover.webp diff --git a/pages/blog/release-notes-2.3.0.md b/pages/blog/release-notes-2.3.0.md index b439c54a293c..5d414c659235 100644 --- a/pages/blog/release-notes-2.3.0.md +++ b/pages/blog/release-notes-2.3.0.md @@ -5,7 +5,7 @@ type: Communication tags: - Specification - Release Notes -cover: /img/posts/release-notes-2.2.0/cover.webp +cover: /img/posts/release-notes-2.3.0/cover.webp authors: - name: Dale Lane photo: /img/avatars/questionmark.webp @@ -78,3 +78,5 @@ We aim to have a regular cadence of releases of the AsyncAPI specification, four We're also working on the next major release of the AsyncAPI specification: 3.0.0. If you'd like to contribute, or just follow the discussions, you can see the [milestone on Github](https://github.com/asyncapi/spec/milestone/18). + +> Photo by Andrew Ridley on Unsplash diff --git a/public/img/posts/release-notes-2.3.0/cover.webp b/public/img/posts/release-notes-2.3.0/cover.webp new file mode 100644 index 0000000000000000000000000000000000000000..42c85fa4d724b589b8339b0b2641c04f5e69050f GIT binary patch literal 94228 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 literal 0 HcmV?d00001 From 006f7df26b0d0803ed2e1dd6b8004dfdaec15617 Mon Sep 17 00:00:00 2001 From: Dale Lane Date: Mon, 31 Jan 2022 18:54:52 +0000 Subject: [PATCH 15/22] docs: add avatar Signed-off-by: Dale Lane --- pages/blog/release-notes-2.3.0.md | 2 +- public/img/avatars/dalelane.webp | Bin 0 -> 13722 bytes 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 public/img/avatars/dalelane.webp diff --git a/pages/blog/release-notes-2.3.0.md b/pages/blog/release-notes-2.3.0.md index 5d414c659235..5ecb2ad58ade 100644 --- a/pages/blog/release-notes-2.3.0.md +++ b/pages/blog/release-notes-2.3.0.md @@ -8,7 +8,7 @@ tags: cover: /img/posts/release-notes-2.3.0/cover.webp authors: - name: Dale Lane - photo: /img/avatars/questionmark.webp + photo: /img/avatars/dalelane.webp link: https://twitter.com/dalelane excerpt: 'AsyncAPI 2.3 is now released. This brings enhancements allowing new ways of structuring AsyncAPI documents and support for describing Solace APIs.' featured: true diff --git a/public/img/avatars/dalelane.webp b/public/img/avatars/dalelane.webp new file mode 100644 index 0000000000000000000000000000000000000000..68750bac8252fd33ffbf1db9d478131c4148bbff GIT binary patch literal 13722 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 bf&WzCKNa}@tpfkvyqej+Y--$Iwx<6F2Nf7J literal 0 HcmV?d00001 From 30f2ff811ce20645619ed89515873af1bfc87f33 Mon Sep 17 00:00:00 2001 From: Dale Lane Date: Mon, 31 Jan 2022 19:07:26 +0000 Subject: [PATCH 16/22] chore: update timestamp for release notes blog post Signed-off-by: Dale Lane --- pages/blog/release-notes-2.3.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/blog/release-notes-2.3.0.md b/pages/blog/release-notes-2.3.0.md index 5ecb2ad58ade..550510178524 100644 --- a/pages/blog/release-notes-2.3.0.md +++ b/pages/blog/release-notes-2.3.0.md @@ -1,6 +1,6 @@ --- title: AsyncAPI Spec 2.3.0 Release Notes -date: 2022-01-10T10:00:00+01:00 +date: 2022-01-31T19:00:00+01:00 type: Communication tags: - Specification From 398cac079e2ecf05a179e33ed7a066e16b77687d Mon Sep 17 00:00:00 2001 From: Dale Lane Date: Mon, 31 Jan 2022 19:22:32 +0000 Subject: [PATCH 17/22] docs: placeholder for tooling support updates Signed-off-by: Dale Lane --- pages/blog/release-notes-2.3.0.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/pages/blog/release-notes-2.3.0.md b/pages/blog/release-notes-2.3.0.md index 550510178524..0845dd2156ad 100644 --- a/pages/blog/release-notes-2.3.0.md +++ b/pages/blog/release-notes-2.3.0.md @@ -72,6 +72,20 @@ The current plan is that the `$ref` field will be removed from **Channel Item Ob For more detail, you can see the [discussion about this issue in Github](https://github.com/asyncapi/spec/issues/607). +## Tooling support + +The following official AsyncAPI tools are already updated to support 2.3.0 version of the specification: +- JSON Schema that supports validation of AsyncAPI documents is updated in [this](https://github.com/asyncapi/asyncapi-node) repository. Also **@asyncapi/specs** package has been updated on NPM to version 2.13.0, and it contains the 2.3.0 JSON Schema. +- [JavaScript Parser](https://github.com/asyncapi/parser-js/) uses latest **@asyncapi/specs** package and can be used to parse and validate 2.3.0 documents. Upgrade to 1.14.0 version. +- [HTML template](https://github.com/asyncapi/html-template) uses the latest **@asyncapi/react-component** package. Upgrade to 0.23.0 version. +- [JavaScript Converter](https://github.com/asyncapi/converter-js/) enables conversion from any AsyncAPI version into the 2.3.0 version of the spec. Upgrade to 0.7.0 version. + + +Last but not least is the AsyncAPI Playground. Check new playground that uses latest HTML template and Markdown template with [this example](https://playground.asyncapi.io/?url=https://raw.githubusercontent.com/asyncapi/spec/v2.3.0/examples/websocket-gemini.yml). + +Big thanks to [Maciej Urbanczyk](https://github.com/magicmatatjahu) and [Jonas Lagoni](https://github.com/jonaslagoni/) for updating most relevant tooling. + + ## Look ahead We aim to have a regular cadence of releases of the AsyncAPI specification, four times a year. For more information about when to expect future releases, you can see our [release process document](https://github.com/asyncapi/spec/blob/master/RELEASE_PROCESS.md#release-cadence). From 3c0231ca8511029ce35405a1fb7d8597c2bc095b Mon Sep 17 00:00:00 2001 From: Dale Lane Date: Mon, 31 Jan 2022 19:58:28 +0000 Subject: [PATCH 18/22] docs: add Modelina to tooling support Co-authored-by: Jonas Lagoni --- pages/blog/release-notes-2.3.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/blog/release-notes-2.3.0.md b/pages/blog/release-notes-2.3.0.md index 0845dd2156ad..b8adfe4812d7 100644 --- a/pages/blog/release-notes-2.3.0.md +++ b/pages/blog/release-notes-2.3.0.md @@ -79,7 +79,7 @@ The following official AsyncAPI tools are already updated to support 2.3.0 versi - [JavaScript Parser](https://github.com/asyncapi/parser-js/) uses latest **@asyncapi/specs** package and can be used to parse and validate 2.3.0 documents. Upgrade to 1.14.0 version. - [HTML template](https://github.com/asyncapi/html-template) uses the latest **@asyncapi/react-component** package. Upgrade to 0.23.0 version. - [JavaScript Converter](https://github.com/asyncapi/converter-js/) enables conversion from any AsyncAPI version into the 2.3.0 version of the spec. Upgrade to 0.7.0 version. - +- [Modelina](https://github.com/asyncapi/modelina/) now also accepts AsyncAPI documents valid against the 2.3.0 version of the spec. Upgrade to 1.46.0 version. Last but not least is the AsyncAPI Playground. Check new playground that uses latest HTML template and Markdown template with [this example](https://playground.asyncapi.io/?url=https://raw.githubusercontent.com/asyncapi/spec/v2.3.0/examples/websocket-gemini.yml). From 50b1f6997a074b34157b1ca95d66afaa0e73b9eb Mon Sep 17 00:00:00 2001 From: Dale Lane Date: Mon, 31 Jan 2022 20:07:59 +0000 Subject: [PATCH 19/22] Update pages/blog/release-notes-2.3.0.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Maciej Urbańczyk --- pages/blog/release-notes-2.3.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/blog/release-notes-2.3.0.md b/pages/blog/release-notes-2.3.0.md index b8adfe4812d7..3b0ec19cf9d5 100644 --- a/pages/blog/release-notes-2.3.0.md +++ b/pages/blog/release-notes-2.3.0.md @@ -81,7 +81,7 @@ The following official AsyncAPI tools are already updated to support 2.3.0 versi - [JavaScript Converter](https://github.com/asyncapi/converter-js/) enables conversion from any AsyncAPI version into the 2.3.0 version of the spec. Upgrade to 0.7.0 version. - [Modelina](https://github.com/asyncapi/modelina/) now also accepts AsyncAPI documents valid against the 2.3.0 version of the spec. Upgrade to 1.46.0 version. -Last but not least is the AsyncAPI Playground. Check new playground that uses latest HTML template and Markdown template with [this example](https://playground.asyncapi.io/?url=https://raw.githubusercontent.com/asyncapi/spec/v2.3.0/examples/websocket-gemini.yml). +Last but not least is the AsyncAPI Studio. Check new studio with [this example](https://studio.asyncapi.com/?url=https://raw.githubusercontent.com/asyncapi/spec/v2.3.0/examples/websocket-gemini.yml). Big thanks to [Maciej Urbanczyk](https://github.com/magicmatatjahu) and [Jonas Lagoni](https://github.com/jonaslagoni/) for updating most relevant tooling. From 285b55667fec2c72cadda03204d35c9111863849 Mon Sep 17 00:00:00 2001 From: Dale Lane Date: Mon, 31 Jan 2022 20:08:08 +0000 Subject: [PATCH 20/22] Update pages/blog/release-notes-2.3.0.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Maciej Urbańczyk --- pages/blog/release-notes-2.3.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/blog/release-notes-2.3.0.md b/pages/blog/release-notes-2.3.0.md index 3b0ec19cf9d5..f5c5772dcc9c 100644 --- a/pages/blog/release-notes-2.3.0.md +++ b/pages/blog/release-notes-2.3.0.md @@ -77,7 +77,7 @@ For more detail, you can see the [discussion about this issue in Github](https:/ The following official AsyncAPI tools are already updated to support 2.3.0 version of the specification: - JSON Schema that supports validation of AsyncAPI documents is updated in [this](https://github.com/asyncapi/asyncapi-node) repository. Also **@asyncapi/specs** package has been updated on NPM to version 2.13.0, and it contains the 2.3.0 JSON Schema. - [JavaScript Parser](https://github.com/asyncapi/parser-js/) uses latest **@asyncapi/specs** package and can be used to parse and validate 2.3.0 documents. Upgrade to 1.14.0 version. -- [HTML template](https://github.com/asyncapi/html-template) uses the latest **@asyncapi/react-component** package. Upgrade to 0.23.0 version. +- [HTML template](https://github.com/asyncapi/html-template) uses the latest **@asyncapi/react-component** package. Upgrade to 0.24.7 version. - [JavaScript Converter](https://github.com/asyncapi/converter-js/) enables conversion from any AsyncAPI version into the 2.3.0 version of the spec. Upgrade to 0.7.0 version. - [Modelina](https://github.com/asyncapi/modelina/) now also accepts AsyncAPI documents valid against the 2.3.0 version of the spec. Upgrade to 1.46.0 version. From acc242f3c714612960e054bf54ba76d5758713f1 Mon Sep 17 00:00:00 2001 From: Dale Lane Date: Mon, 31 Jan 2022 20:48:13 +0000 Subject: [PATCH 21/22] Update pages/blog/release-notes-2.3.0.md Co-authored-by: Jonas Lagoni --- pages/blog/release-notes-2.3.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/blog/release-notes-2.3.0.md b/pages/blog/release-notes-2.3.0.md index f5c5772dcc9c..5094b1d08996 100644 --- a/pages/blog/release-notes-2.3.0.md +++ b/pages/blog/release-notes-2.3.0.md @@ -80,7 +80,7 @@ The following official AsyncAPI tools are already updated to support 2.3.0 versi - [HTML template](https://github.com/asyncapi/html-template) uses the latest **@asyncapi/react-component** package. Upgrade to 0.24.7 version. - [JavaScript Converter](https://github.com/asyncapi/converter-js/) enables conversion from any AsyncAPI version into the 2.3.0 version of the spec. Upgrade to 0.7.0 version. - [Modelina](https://github.com/asyncapi/modelina/) now also accepts AsyncAPI documents valid against the 2.3.0 version of the spec. Upgrade to 1.46.0 version. - + - [Generator](https://github.com/asyncapi/generator/) uses the latest @asyncapi/parser package, so while generating output, it can validate 2.1.0 documents. Upgrade to 1.9.0 version. Last but not least is the AsyncAPI Studio. Check new studio with [this example](https://studio.asyncapi.com/?url=https://raw.githubusercontent.com/asyncapi/spec/v2.3.0/examples/websocket-gemini.yml). Big thanks to [Maciej Urbanczyk](https://github.com/magicmatatjahu) and [Jonas Lagoni](https://github.com/jonaslagoni/) for updating most relevant tooling. From 4abfceaecfaca6131e8fd5edf6e3e2e4e7ca2443 Mon Sep 17 00:00:00 2001 From: Lukasz Gornicki Date: Tue, 1 Feb 2022 08:40:01 +0100 Subject: [PATCH 22/22] Update release-notes-2.3.0.md --- pages/blog/release-notes-2.3.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/blog/release-notes-2.3.0.md b/pages/blog/release-notes-2.3.0.md index 5094b1d08996..69edadbf50c9 100644 --- a/pages/blog/release-notes-2.3.0.md +++ b/pages/blog/release-notes-2.3.0.md @@ -1,6 +1,6 @@ --- title: AsyncAPI Spec 2.3.0 Release Notes -date: 2022-01-31T19:00:00+01:00 +date: 2022-02-01T19:00:00+01:00 type: Communication tags: - Specification