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

chore(blog): add release notes for 2.3 release #512

Merged
merged 26 commits into from
Feb 1, 2022
Merged
Changes from 10 commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
e7ad9d4
chore(blog): add release notes for 2.3 release
dalelane Dec 14, 2021
19a0ea9
docs: placeholder sections for 2.3.0 release notes
dalelane Jan 5, 2022
f5a5476
docs: Add release notes for Solace bindings
dalelane Jan 9, 2022
4b3ad22
docs: add release notes for regex unicode compliance
dalelane Jan 9, 2022
420ef20
docs: release notes for channels now being optional
dalelane Jan 9, 2022
7ccf866
docs: add release notes for allowing refs for servers and channels
dalelane Jan 10, 2022
9f39358
docs: release notes improvements
dalelane Jan 10, 2022
065ff3b
Merge branch 'master' into 2022-01-release
quetzalliwrites Jan 14, 2022
180c18b
docs: tidying up release notes
dalelane Jan 17, 2022
513ddb1
Merge branch '2022-01-release' of github.com:dalelane/website into 20…
dalelane Jan 17, 2022
37c970f
update pages/blog/release-notes-2.3.0.md
dalelane Jan 18, 2022
5895ab1
chore: remove section on channels being optional
dalelane Jan 23, 2022
be2d0ce
docs: add release notes for channel item $ref deprecation
dalelane Jan 23, 2022
a30060d
chore: typo fix
dalelane Jan 23, 2022
bb24e6c
docs: address review comment
dalelane Jan 24, 2022
c5af0ad
Merge branch 'master' into 2022-01-release
quetzalliwrites Jan 26, 2022
b132766
Merge branch 'master' into 2022-01-release
derberg Jan 31, 2022
4050ca0
docs: update cover image for release notes blog post
dalelane Jan 31, 2022
006f7df
docs: add avatar
dalelane Jan 31, 2022
30f2ff8
chore: update timestamp for release notes blog post
dalelane Jan 31, 2022
398cac0
docs: placeholder for tooling support updates
dalelane Jan 31, 2022
3c0231c
docs: add Modelina to tooling support
dalelane Jan 31, 2022
50b1f69
Update pages/blog/release-notes-2.3.0.md
dalelane Jan 31, 2022
285b556
Update pages/blog/release-notes-2.3.0.md
dalelane Jan 31, 2022
acc242f
Update pages/blog/release-notes-2.3.0.md
dalelane Jan 31, 2022
4abfcea
Update release-notes-2.3.0.md
derberg Feb 1, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
116 changes: 116 additions & 0 deletions pages/blog/release-notes-2.3.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
---
title: AsyncAPI Spec 2.3.0 Release Notes
date: 2022-01-10T10:00:00+01:00
type: Communication
tags:
- Specification
- Release Notes
cover: /img/posts/release-notes-2.2.0/cover.webp
authors:
- name: Dale Lane
photo: /img/avatars/questionmark.webp
dalelane marked this conversation as resolved.
Show resolved Hide resolved
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
---

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'`


## 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
asyncapi: 2.3.0
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"
```

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


## 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'
mychannel1:
dalelane marked this conversation as resolved.
Show resolved Hide resolved
$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:

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


dalelane marked this conversation as resolved.
Show resolved Hide resolved
## Other enhancements

dalelane marked this conversation as resolved.
Show resolved Hide resolved
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).


dalelane marked this conversation as resolved.
Show resolved Hide resolved
## 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).

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