Skip to content

Require stable npm release defaults - #33

Merged
raghubetina merged 1 commit into
mainfrom
codex/record-stable-latest-20260812
Aug 12, 2026
Merged

Require stable npm release defaults#33
raghubetina merged 1 commit into
mainfrom
codex/record-stable-latest-20260812

Conversation

@raghubetina

Copy link
Copy Markdown
Contributor

Summary

  • record the explicitly approved stable npm dist-tag promotion for plugin 0.1.1 and CLI 0.1.0
  • preserve historical alpha observations as time-bounded evidence while correcting current-state documentation
  • require release-specific qualification, catalog/next/latest reconciliation, and an explicit rollback dist-tag disposition

Verification

  • node --test test/release-compatibility.test.mjs (6/6)
  • sh script/check (64/64)
  • node script/check-plugin-release-order.mjs --prospective (coherent consumed 0.1.1 catalog identity)

Boundaries

This change publishes no package bytes and changes no npm dist-tag, catalog source, service, deployment, repository, or Codespace. Existing-install update behavior, the authenticated template-and-Codespace journey, and full v14 qualification remain unproved.

Versionless npm installs were still resolving historical alpha
packages after ordinary releases were qualified and promoted.

Record the stable dist-tag reconciliation and require future
release and rollback paths to keep the catalog, next, and latest
identities coherent.
@raghubetina
raghubetina merged commit 4f812ea into main Aug 12, 2026
2 checks passed
@raghubetina
raghubetina deleted the codex/record-stable-latest-20260812 branch August 12, 2026 21:42
@raghubetina

Copy link
Copy Markdown
Contributor Author

Post-merge review, hosted CI green. Records the explicitly approved stable dist-tag promotion (plugin 0.1.1,
CLI 0.1.0) and does the two things a promotion record should do: correct current-state docs to the new
reality, and preserve the alpha-era observations as time-bounded historical evidence rather than deleting or
rewriting them. The added requirement that a rollback names its dist-tag disposition in advance closes a real
gap; rollback plans that only name the code revision leave the registry pointer ambiguous at exactly the
moment nobody wants ambiguity. Consistent with the reconciliation rules later consolidated in #41.

@raghubetina

Copy link
Copy Markdown
Contributor Author

When a release goes stable, the paperwork has two jobs, and this PR shows both done correctly.

Job one: flip the present tense. Every current-state surface (README status tables, compatibility JSON,
release docs) now says 0.1.1 is what new users get. Job two, subtler: do not falsify the past while doing it.
The alpha-era observations stay in the record, labeled as time-bounded evidence: "on this date, latest
selected alpha.3" remains true forever as a statement about that date. Deleting old observations because they
no longer describe the present confuses two kinds of truth, and repos that do it lose the ability to answer
"what did users actually experience in week two."

The third piece is the rollback rule: any rollback plan must state its dist-tag disposition up front. Where
does latest point if we roll back, and where does next? A rollback that names only the git revision leaves
the npm pointers as an improvisation during an incident. Deciding pointer disposition while calm is the
release-engineering version of writing your down migration when you write your up.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant