-
-
Notifications
You must be signed in to change notification settings - Fork 280
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
Define a release cadence #513
Comments
I like these ideas. As for the release version, for major release we should go with 2.1.0 and minors or patches 2.0.1. Not really sure if it's in complaint with Semantic Versioning though. Perhaps we can take some inspiration from https://semver.org/ |
Related/Duplicate ticket: #463 |
Thanks, Waleed! Added it to the description. Although, please take into account this one is only about the cadence. As in how often should we be releasing new spec versions. |
@aayushmau5 we're already following Semver :) This issue is about the release cadence. |
I suggest quarterly releases, it takes the pressure off because if something isn't quite ready or doesn't make the cut, I don't think anyone could be upset about waiting 12 weeks, but half a year can seem too long and cause us to wait for "just one more thing" .... forever. I also suggest the dates are set for mid quarter, so we avoid other end-of-quarter noise and would therefore release in February, May, August and November every year. |
Totally agree, @lornajane. Changing my proposal to every quarter. |
now when I'm trying to imagine the flow here I think it was not the best idea to move spec's JSON Schema away from I also in general have a problem with cadence, fixed dates always bring stress and mistakes. You know how much I love sematic release and conventional commits. They support release candidates, you then have branch so it is not about fixed cadence, it is about continuous release + "cadence" for tooling.
advantage? the community must focus on community tools to get the new version in place 💪🏼 now....I'm not fully into this idea as I didn't have time to think it through. It just popped in my head and decided to share |
I would be cautious not to create a cadence that is too aggressive, at least for backward-incompatible major releases. I would not expect a specification to get such a fast cadence anyway, at least past the "1.0"/GA mark. AsyncAPI being at 2.0 now, there is an expectation that it is "mature" or "mature enough". Tooling needs to catch-up each time a new version of the spec is released, minor or major. This means not only supporting the upcoming version of the spec but also making sure the previous versions of said spec are supported as well. A fast cadence may have the adverse effect of causing some tools to consciously decide not to support a particular version as by the time they get to it, it might almost be time to release a new version of the spec. Also, end-users may start drafting their API definition using the latest version of the spec, but if by the time their tools supports that latest version, a new version of the spec is released, or worse, if as previously described said tool decides to "skip" that version, the end-user may have no other choice but to re-write that API definition altogether. This may cause some frustration. |
Release cadence should not be limited by the risk that some users will not catch up with API definition update or vendors will not catch up with given version support. There will always be users that are super happy with 1 version or just older versions, but this should not block those that want to be up to date. There are users that are happy with AsyncAPI 1.0 and users happy with Swagger 2.0 and users of old JSON Schema drafts and they do not need anything else. They should have converters in place that they can use to switch between versions and use the latest tools. Doesn't matter if we do 3m, 6m, 12m cadence, there will still be people who will have issues even with 24m cadence. Users should get what they need when it is already available, not wait for some specific date. Only users that need some feature will need to have manuals and migration guides and release notes, the rest should just get tools in place, converters. Example -> #458 why would Waleed (not only Waleed as we identified this is an important missing feature) need to wait for 3months or even more, for the minor release? why not adding it once we have all in place + core tooling is updated? |
I agree with not labeling the release as a fixed date. This can be a bit hard to manage. |
You know what. I just took a challange and wanted to write down and alternative proposal basing on what I wrote in previous comment....but I failed. I think this is the best we can do now. 3months are great. @fmvilas I would only suggest, as in my comment and the one from WaleedAshraf. We do not want to live in stress here and I propose branches like |
@fmvilas since you gave me a 👍🏼 I assume you agree 😅 Sound to me like we can schedule first release 😄 My suggestion - we do not write process/release instruction upfront but while working on first release. And next suggestion - we do as small release as possible to not overcomplicate as it will be our first release like this, so definitely we should avoid breaking changes 😅 |
Alright, updated the description to set a release month instead of a release date. Absolutely agree we shouldn't try this new system with 3.0.0 😅 |
I just created the |
BTW, I'm proposing June 2021 for our first release. That means the next ones will be in September, December, March, etc. Are you ok with June? |
recording of our public meeting where we talked about the release https://youtu.be/roiMTGhoBfo |
as per the recording, my suggestion is the following (avoids holidays and December)
Which is still 4 times a year, not always every 3 months |
As there were no objections here for over a week, the AsyncAPI 2.1 release is scheduled for June 2021 So far I captured below what needs to be done:
anything missing from the list? (there is also a thread in our slack about it. I will update list of task both, here and in the slack thread) |
|
@derberg I'd like to get https://github.com/asyncapi/java-spring-template updated in time for the release so it supports the new SASL security schemes from #502 When do you think I'd need to submit a PR for that by so it's ready to be merged in time for the 2.1 release? |
@dalelane is "as soon as possible" a good answer 😄 . Technically nothing is blocking you from working on the PR now. I think that if you open up a PR in May it should not be a problem to get it merged in June. Hard to bet on it as it is the first time we do such release 😄 |
i propose #531 for inclusion in AsyncAPI spec 2.1 |
i'll submit a PR for #514 in time for inclusion in AsyncAPI spec 2.1 and associated bindings specifications |
one item more to do for release, maybe not a blocker for 2.1 but still something we need to fix is that any release on spec repo triggers push of latest spec to website repo so it is also published there in asyncapi.com
in case someone wants to jump on this one, I’m all yours to create an issue and explain details |
@derberg Can I take that up? |
@aayushmau5 that would be awesome. I'll update the existing issue with all details this week and then we can start from there. |
@aayushmau5 ok, I think I captured all the requirements asyncapi/website#86 Feel free to ask whenever in doubts. @fmvilas you might need to double check if I did not miss anything |
I think the only missing thing here is to write this down to a document and we can close this issue. Does anyone want to contribute it? |
Progress on 2.1 release is tracked here #536 |
This issue has been automatically marked as stale because it has not had recent activity 😴 |
This issue has been automatically marked as stale because it has not had recent activity 😴 |
cadence like other release-related things are now officially documented here |
Description
Currently, there's no information on what would be the next version. I don't even know myself, to be honest. Many people ask me when we'll release the next version of the spec and what version would it be. E.g., 2.0.1, 2.1.0, or maybe 3.0.0?
Therefore, to make sure we always set the right expectations, I propose we define a fixed release cadence. Below is my proposal but feel free to leave yours as well.
Release cadence proposal
2021-05
.Related issues
#463
The text was updated successfully, but these errors were encountered: