asyncapi / spec

The AsyncAPI specification allows you to create machine-readable definitions of your asynchronous APIs.
https://www.asyncapi.com
Apache License 2.0
4.13k stars 262 forks source link

Work on 3.0 release #691

Closed jonaslagoni closed 9 months ago

jonaslagoni commented 2 years ago

Release 3.0.0 is scheduled for September.

Detailed info

Kick-off

Meetings

Previous meeting list: - https://github.com/asyncapi/community/issues/235#issuecomment-1016483507 - https://github.com/asyncapi/community/issues/250 - https://github.com/asyncapi/community/issues/254 - https://github.com/asyncapi/community/issues/270 - https://github.com/asyncapi/community/issues/282 - https://github.com/asyncapi/community/issues/298 - https://github.com/asyncapi/community/issues/307 - https://github.com/asyncapi/community/issues/330 - https://github.com/asyncapi/community/issues/346 - https://github.com/asyncapi/community/issues/366 - https://github.com/asyncapi/community/issues/378 - https://github.com/asyncapi/community/issues/394 - https://github.com/asyncapi/community/issues/407 - https://github.com/asyncapi/community/issues/410 - https://github.com/asyncapi/community/issues/417 - https://github.com/asyncapi/community/issues/427 - https://github.com/asyncapi/community/issues/435 - https://github.com/asyncapi/community/issues/443 - https://github.com/asyncapi/community/issues/453 - https://github.com/asyncapi/community/issues/464 - https://github.com/asyncapi/community/issues/476 - https://github.com/asyncapi/community/issues/491 - https://github.com/asyncapi/community/issues/502 - https://github.com/asyncapi/community/issues/518 - https://github.com/asyncapi/community/issues/531 - https://github.com/asyncapi/community/issues/546 - https://github.com/asyncapi/community/issues/564 - https://github.com/asyncapi/community/issues/575 - https://github.com/asyncapi/community/issues/587 - https://github.com/asyncapi/community/issues/599 - https://github.com/asyncapi/community/issues/624 - https://github.com/asyncapi/community/issues/635 - https://github.com/asyncapi/community/issues/649 - https://github.com/asyncapi/community/issues/670 - https://github.com/asyncapi/community/issues/699 - https://github.com/asyncapi/community/issues/714 - https://github.com/asyncapi/community/issues/734 - https://github.com/asyncapi/community/issues/737 - https://github.com/asyncapi/community/issues/760 - https://github.com/asyncapi/community/issues/761 - https://github.com/asyncapi/community/issues/812 - https://github.com/asyncapi/community/issues/823 - https://github.com/asyncapi/community/issues/847

Next meeting: https://github.com/asyncapi/community/issues/857

Progress šŸ”„

All issues for v3 are now complete šŸ”„

"Completed"

All completed, either introduced, rejected, or not being to work on:

Tooling progression

This is the list of tooling issues and PR's that are tied together with the major version spec changes.

General Todo list

The Todo list is what is needed to be completed and in which order that is outside the general progress list.

I want to champion something!

First of all, thank you! šŸ™‡

We use the following milestone https://github.com/asyncapi/spec/milestone/18 to track all the issues that needs to have been considered before we can release 3.0. So pick one the issues that needs champion, and drive it forward!

Reach out to slack, in the issue, or our regular meetings if you need anything!

If you need anything changed in this progress issue, leave a comment below with what to update šŸ™‚

magicmatatjahu commented 2 years ago

I don't think so that I should handle https://github.com/asyncapi/spec/issues/596 I created issue but I don't know if I can find the time to do this, I would rather take these schema formats as well as https://github.com/asyncapi/spec/issues/583 if anyone wants to take it, go ahead. @smoya maybe you? I know you know a lot about these changes in the new drafts and what impact they would have.

damaru-inc commented 2 years ago

I'd like to see schema versioning considered as a feature in 3.0. Please see this issue: https://github.com/asyncapi/spec/issues/697

magicmatatjahu commented 2 years ago

I think that we should create branch for that 3.0.0 release like next-branch or 3.0.0-release and start creating PR proposals. I don't know if that topic was raised in other issue/discussion. What do you think?

derberg commented 2 years ago

yeah, I think we definitely cannot work with branch focused on given release month, and doo next-major as it is supported by semanic-release package. I think I talked about it somewhere already...or it is just deja vu. @magicmatatjahu maybe open a PR against the release_process document and suggest a change on what we should do when we know major release is approaching.

jonaslagoni commented 2 years ago

I like next-major as well, always the same regardless of 3.0 or any other.

char0n commented 2 years ago

I propose https://github.com/asyncapi/spec/issues/699 to be added to the list for 3.0.0.

smoya commented 2 years ago

I think we also need to add https://github.com/asyncapi/spec/issues/618 even though it has been split in several tasks, but still there are some pending work.

jonaslagoni commented 2 years ago

I propose #699 to be added to the list for 3.0.0.

Added!

I think we also need to add #618 even though it has been split in several tasks, but still there are some pending work.

Added, wrapped the related issues for it šŸ™‚

jonaslagoni commented 2 years ago

@derberg I have created a list of what is missing in terms of branches and settings, as I dont have any permissions in: bindings, spec and spec-json-schema can you take those repositories?

I can take the generator šŸ™‚

PR here: https://github.com/asyncapi/generator/pull/755

magicmatatjahu commented 2 years ago

@jonaslagoni I don't think releasing 3.0.0 spec as a prerelease makes sense at this time. I would rather just have a branch and release the first prerelease in a few months.

@derberg Could you create such a branch?

derberg commented 2 years ago

I don't think releasing 3.0.0 spec as a prerelease makes sense at this time

but the idea is just to release it when there is something merged into release branch, some feature. what do you mean?

@derberg Could you create such a branch?

jonaslagoni commented 2 years ago

As agreed in https://github.com/asyncapi/spec/issues/734#issuecomment-1077455953 we should use next-major-spec branches when related to spec changes. This is the current todo by one of the spec code owners cc: @derberg @fmvilas @dalelane:

fmvilas commented 2 years ago

All the three are done now @jonaslagoni

jonaslagoni commented 2 years ago

Next couple of blocking issues to continue:

cc code owners of spec: @derberg @fmvilas @dalelane

cc code owners of parser: @derberg @fmvilas @magicmatatjah

char0n commented 2 years ago

I've processed :

PR issued: https://github.com/asyncapi/spec/pull/777

magicmatatjahu commented 2 years ago

@jonaslagoni Could you add to the list [3.0.0] Allow references to be used in any part of the specification I can me mentor it of course.

jonaslagoni commented 2 years ago

@char0n updated šŸ‘

@jonaslagoni Could you add to the list [3.0.0] Allow references to be used in any part of the specification I can me mentor it of course.

@magicmatatjahu added šŸ‘

jonaslagoni commented 2 years ago

The last blocker before RFC can move forward is https://github.com/asyncapi/spec-json-schemas/pull/221

cc code owners @derberg @fmvilas @dalelane

jonaslagoni commented 2 years ago

@GreenRover I added you to the list of champions for request/reply šŸ™‚

jonaslagoni commented 2 years ago

cc current champions: @magicmatatjahu @smoya @jessemenning @Fannon @damaru-inc @char0n @GreenRover

We should be completely ready to accept the 3.0 changes into the spec, JSON Schema documents, and parser so you can now move your RFC forwards šŸŽ‰

When you create your changes and when targeting your PRs, make sure you target the next-major-spec branches, as this is where the new changes are gonna be.

Spec: https://github.com/asyncapi/spec/tree/next-major-spec JSON Schema repo: https://github.com/asyncapi/spec-json-schemas/tree/next-major-spec JS Parser: https://github.com/asyncapi/parser-js/tree/next-major-spec

If you don't know how to move the issues forward, please reach out so we can figure out how to do it together šŸ™‚

Fannon commented 2 years ago

Ok, I've changed the target branch here: https://github.com/asyncapi/spec/pull/532/files

Since we've had a few discussions on how it should be and we were not completely sure, I might create an alternative PR with a solution proposal.

smoya commented 2 years ago

@jonaslagoni This is something we should have also for 3.0 https://github.com/asyncapi/website/issues/870

smoya commented 2 years ago

@jonaslagoni Another thing I would like to add to the list: https://github.com/asyncapi/parser-api/issues/69

jonaslagoni commented 2 years ago

@smoya added šŸ‘

smoya commented 1 year ago

@jonaslagoni can you add the following PR https://github.com/asyncapi/parser-api/pull/71 to the Intent and parser API list in Tooling progression? Thanks!

fmvilas commented 1 year ago

@jonaslagoni I opened a new PR to solve the "Unify all the referencing mechanisms" issue. You may want to update the list above: https://github.com/asyncapi/spec/pull/852. It's RFC 1.

magicmatatjahu commented 1 year ago

@jonaslagoni Could you add PR (https://github.com/asyncapi/parser-js/pull/664) for my two topics: reusable externalDocs and tags and moving them to the Info Object? It's already merged. Only PRs for the json-spec-schemas wait. Thanks!

Also please add https://github.com/asyncapi/parser-js/pull/654 PR as merged in the Fran's publish/subscribe confusion topic.

jonaslagoni commented 1 year ago

@jonaslagoni Could you add PR (asyncapi/parser-js#664) for my two topics: reusable externalDocs and tags and moving them to the Info Object? It's already merged. Only PRs for the json-spec-schemas wait. Thanks!

Also please add asyncapi/parser-js#654 PR as merged in the Fran's publish/subscribe confusion topic.

Done šŸ‘

Looks like https://github.com/asyncapi/spec/issues/663 and https://github.com/asyncapi/spec/issues/661 are completely done, right?

jonaslagoni commented 1 year ago

Added the suggestion of a specific release schedule going forward for spec 3.0, find it here: https://github.com/asyncapi/spec/issues/880

jonaslagoni commented 1 year ago

I am gonna remove the progress of Allow referencing non-JSON structures such as Protobuf, XML, XSD, etc. from the list, as I don't think it will be possible to reach a consensus from a spec perspective and create the necessary tooling around it before the release deadline.

All progress will of course continue and will be done in this issue: https://github.com/asyncapi/spec/issues/881

If for some reason it seems likely that it will happen before the deadline we can always add it "back on the menu".

jonaslagoni commented 1 year ago

@magicmatatjahu are https://github.com/asyncapi/spec/issues/795 completely done regarding the schema files and parser implementation?

jonaslagoni commented 1 year ago

@magicmatatjahu what is the status with https://github.com/asyncapi/spec/issues/622?

jonaslagoni commented 1 year ago

An update from the last meeting: https://github.com/asyncapi/community/issues/599

Moved from the backburner to WIP:

Moved from in progress to done:

Moved to the backburner:

Added items to todo list:

Status updates:

smoya commented 1 year ago

I updated the In Progress list with the following:

smoya commented 1 year ago

Added the following items to the General TODO list:

jonaslagoni commented 1 year ago

A new update to the work.

Added final release date, June.

New general todo items Added new general todo items.

Moved to tooling todo list

Moved the following general todo items to tooling todo:

Removed backburner section Because of the freeze period, there is no longer any backburners..

Backburner

PRs and issues that are on the backburner without much progress, but need to be kept track of:

jonaslagoni commented 1 year ago

Here is the status of most of the tools and what is required to support v3. This generally does not take into account enabling features that are introduced in v3, unless it's required.

jonaslagoni commented 1 year ago

That means that tasks TODO are the following: (in that order with the blocked tasks tabbed)

These are the rest of updates to do:

I am gonna create 1 issue in each repository with the list of potential changes needed to support v3, and then invite all codeowners to help push this forward.

jonaslagoni commented 1 year ago

Added tracked issues for all the tools: https://github.com/asyncapi/cli/issues/629 https://github.com/asyncapi/optimizer/issues/168 https://github.com/asyncapi/bundler/issues/133 https://github.com/asyncapi/diff/issues/154 https://github.com/asyncapi/cupid/issues/171 https://github.com/asyncapi/studio/issues/641 https://github.com/asyncapi/spec-json-schemas/issues/400 https://github.com/asyncapi/dotnet-nats-template/issues/384 https://github.com/asyncapi/ts-nats-template/issues/545 https://github.com/asyncapi/python-paho-template/issues/189 https://github.com/asyncapi/nodejs-ws-template/issues/294 https://github.com/asyncapi/java-template/issues/118 https://github.com/asyncapi/java-spring-cloud-stream-template/issues/336 https://github.com/asyncapi/go-watermill-template/issues/243 https://github.com/asyncapi/java-spring-template/issues/308 https://github.com/asyncapi/vs-asyncapi-preview/issues/181 https://github.com/asyncapi/glee/issues/457 https://github.com/asyncapi/markdown-template/issues/341 https://github.com/asyncapi/converter-js/issues/110 https://github.com/asyncapi/server-api/issues/294 https://github.com/asyncapi/modelina/issues/1376 https://github.com/asyncapi/html-template/issues/430 https://github.com/asyncapi/asyncapi-react/issues/733 https://github.com/asyncapi/generator/issues/979 https://github.com/asyncapi/parser-js/issues/780

jonaslagoni commented 1 year ago

As more and more people ask for updates on v3, I thought it made sense to do an official update post and give the user a little sneak peek on a 3.0 document

Gonna do it here: https://github.com/asyncapi/website/pull/1757

jonaslagoni commented 1 year ago

I am also proposing we use completed tasks as release date for 3.0: https://github.com/asyncapi/spec/issues/944

jonaslagoni commented 1 year ago

I am also adding a Create retrospective meeting for 3.0 once released to discuss improvements to major version releases to ensure we discuss what needs to be documented, changed, improved, or stay the same for the next major version.

jonaslagoni commented 1 year ago

Somehow the pathname and host change got missed in the list. Added it to the completed list of changes.

jonaslagoni commented 1 year ago

Started working on adapting bindings for v3 (that did not have codeowners), so far 6 changes:

jonaslagoni commented 1 year ago

Small changes which have gone unnoticed by me, we discussed them in the meetings, just haven't documented them here:

jonaslagoni commented 1 year ago

Here is the worklist I am currently focusing on:

smoya commented 1 year ago

Here is the worklist I am currently focusing on

~Would you mind "assigning" each of those in the list located in the issue description? It will improve readability and knowing who is working on what. I want to pick some tasks but I have to check if you took them already.~

I did that + added the Setup website for v3 and Update all spec examples points to the main list and assigned them to you

smoya commented 1 year ago

In line with @jonaslagoni, here is the initial list of what I'm currently focused on:

smoya commented 1 year ago

In case someone else wants to help and pick up tasks for v3, and based on the list of tasks that are blockers for releasing AsyncAPI v3, those are the unassigned ones:

If no one takes them, I will after completing the ones I picked up.

jonaslagoni commented 1 year ago

All RFC's for v3 have now reached RFC-3, meaning they are completed 100% :blobblewobble: