Skip to content

3.x.y patch release approach #3528

@handrews

Description

@handrews

We plan to release at least 3.0.4 and 3.1.1, and likely more 3.1.x releases. We need to figure out what goes in and when to call these releases "done."

Goal and Scope

The overarching goal of all 3.x(.y) release should be smoothing the path to Moonwalk. This has two components:

  • Clarify ambiguities and omissions to make migration more predictable
  • Reduce the guesswork involved in reaching full compliance with the spec for various use cases

Doing these things should increase satisfaction with the 3.x line as well.

We have a solid precedent for clarifying omissions or ambiguities from 3.0.3, which further specified nullable's behavior to smooth the path to 3.1's full JSON Schema support:

This change technically invalidated assumptions that some implementations made, but did not invalidate any clear normative requirement.

We should also use normative language (MUST, SHOULD, MAY, etc.) wherever possible to make compliance requirements clear. These requirements will need to map to Moonwalk, and ideally all compliance requirements could be tied to such language. That's probably not realistic, but we can get closer.

Definition of done

The main question here is whether 3.0.4 is the last 3.0.y or whether we can continue patching it. If 3.0.4 is the last, then we want to get as many clarifications into it as possible (and 3.1.1 should go out with it, I think).

If we're OK doing more 3.0.y releases alongside 3.1.y releases, then we can pretty much ship a patch release whenever we think there's something worth shipping. A more-or-less quarterly cadence is probably realistic [EDIT: that's probably more frequent than necessary] (at least once we solve our release process roadblocks).

I personally don't see the need to end the 3.0.y line. It and the 3.1.y line are close enough that most patches will apply to both. It would be a minimal effort to make 3.0 customers feel supported.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions