Skip to content

3.x minor release approach #3529

Closed
@handrews

Description

@handrews

We know we want to do a 3.2 release, and talked in this week's TDC Call about the possibility of further 3.x releases.

As with the patch releases (see #3528), I think the overarching goal should be smoothing the path to Moonwalk. I mean this both technically and socially, regarding both the user and implementer communities.

Rebuild trust

All of this is very much my personal opinion, and not backed up by formal market research or anything similar.

OpenAPI has never truly produced a minor release. 2.0 came out in 2014, 3.0 in 2017, and 3.1 in 2021. 4.0 is planned for the end of 2024. All required massive amounts of work to support, which is part of why the releases are spaced 3-4 years apart. That is how long it has taken the ecosystem to catch up enough to even consider another major version.

While some in our community are really excited about Moonwalk, others are lamenting yet another big change that probably won't benefit them for quite a few years (although I am hoping we can do a variety of things to make Moonwalk easier to support and adopt).

The experience of the OpenAPI community has been one of multiple years of no visible movement, punctuated by massive changes that aren't broadly supported until the next massive change appears. Reading through the issue backlog, there's a lot of frustration at both the lack of interim progress and the fact that long adoption timelines mean that closing an issue as "resolved" doesn't mean it will be usable anytime soon.

3.2: the critical starting point

The most important thing about 3.2 is that it should be very easy to implement if you already support 3.1. It should deliver at least one exciting feature, and probably no more than three. It shouldn't break anything (aside from assumptions regarding ambiguous requirements, as discussed for patch releases.

  • We want a release that vendors are happy to immediately support, that benefits a significant chunk of users.
  • We want people who are investing, or considering investing in 3.1, to see that they will see additional benefits from the 3.x line while vendors catch up to Moonwalk.

With 3.2, smaller is better!

3.3+: converging with Moonwalk

With a successful 3.2, we can talk about a similarly-sized 3.3 without kicking up too much fear of another 3.1. By this time, Moonwalk should be increasingly clear We should consider "backporting" features that can fit into the 3.x syntax, much like Python 2.x minor releases tended to converge with 3.x releases for quite some time.

Obviously, a lot of Moonwalk can't be backported – the same was true of Python 3. But I suspect we will find some things that can. In terms of the basic semantics if not all of the details.

As with 3.2, any 3.x release should add at least one and probably no more than three features, to ensure that they can be implemented and used before the next 3.x+1 comes out.

Release cadence

Assuming we do multiple 3.x releases, the cadence should allow implementers who actively start working on a new 3.x release time to deploy the new support before piling on another minor release. Since these release should (as proper minor releases) be purely additive, it wouldn't be bad if they crowd up a bit- implementing 3.x+1 ought to mean you automatically can support 3.x (for x > 0).

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions