Skip to content

[Cutover] Create the v1 maintenance line and promote v2 to main #332

Description

@draedful

Goal

Promote the proven v2 release line to main while preserving the final v1 state as an independently maintainable release/v1 line.

Preconditions

  • All required v2 stages are complete.
  • release-v2.yml has published and consumer-verified an approved release candidate from v2 under next.
  • There is no unresolved relevant drift from main.
  • The cutover owner, release window, rollback owner, and go/no-go criteria are approved.
  • Old or conflicting release pull requests are completed or closed.
  • Rulesets targeting the future release/v1 branch are active before branch creation.
  • The cutover changes for both release workflows are prepared on v2.

Exit criteria

  • The final stable 1.x release is published from main and its exact commit is recorded.
  • release/v1 is created from that exact commit and is protected immediately.
  • A v1 release dry-run from release/v1 succeeds.
  • The final main state is synchronized into v2 with a merge commit.
  • The final v2 release candidate is revalidated under next.
  • v2 is promoted to main through a reviewed pull request without rewriting history.
  • Post-merge CI passes before a stable v2 release is approved.
  • release-v2.yml targets main, permits stable 2.x, and owns latest.
  • release-v1.yml targets release/v1, permits only 1.x, and uses v1.
  • Published v2 artifacts are installed and verified from npm.
  • Rollback procedures before and after npm publication are documented.
  • The observation window completes without a release-blocking regression.

Execution order

  1. Freeze v1, prepare protection, and create release/v1.
  2. Perform the final manual sync and approve the final v2 release candidate.
  3. Promote v2 to main and switch the stable release channels.
  4. Complete the observation window.

The first real v1 maintenance release is tracked separately in #311 and does not block cutover completion.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions