Revert accidental v3.2.0 release commit#5769
Conversation
There was a problem hiding this comment.
Mechanically correct revert of the accidental 3.2.0 Version Packages commit. This is exactly the inverse of changeset version — restore the drained queue, undo CHANGELOG, walk the version strings back — which is the right shape for un-cutting a release on main.
Things I checked
- Version strings reverted everywhere.
3.2.0→3.1.0inpackage.json:3,package-lock.json:3and:8,static/schemas/source/index.json:7(adcp_version) and:2019(published_version), and CHANGELOG's top section removed. No stray3.2.0left in any metadata surface. - Generated artifacts fully removed. All three trees gone — 286 files under
dist/compliance/3.2.0, 4 underdist/protocol/3.2.0, 758 underdist/schemas/3.2.0.dist/schemas/index.jsonandlatest.jsondiscovery pointers walk back to 3.1.0. No half-built 3.2.0 surface left advertising content under a reverted pointer. - Drained queue restored 1:1. 20 changesets re-added with zero collisions. The 10 bump-carrying ones map exactly to the 10 commits the 3.2.0 CHANGELOG consumed (2 minor: c26cf88, 96a8c1d; 8 patch). The other 10 are empty no-op changesets — correctly absent from the consumed section but part of the drained queue.
index.jsonrevert is not spec drift.ad-tech-protocol-expert: sound.adcp_version/published_versionare build/registry metadata, not on-the-wire fields —verify-version-sync.cjsrequires them to trackpackage.json, so leaving them at 3.2.0 would have been the drift. No oneOf/enum/type/$ref change touches source schemas. Wire negotiation uses release-precisionadcp_versiononcore/version-envelope.json, derived from the served path — the registry string never appears on the wire directly.- No changeset needed. This restores the versioning surface rather than bypassing it; adding a new changeset here would be wrong (it would force another bump). Correct exception, not a block.
Follow-ups (non-blocking — file as issues)
- The restored queue recomputes to
3.2.0, not the3.1.1the PR body names..changeset/registry-feed-stream.mdand.changeset/tmp-tmpx-providers.mdare bothminor. The nextchangeset versiontakes the highest bump — minor — so3.1.0→3.2.0again, landing you back where you started. Reaching3.1.1requires holding or downgrading those two minor changesets before re-release; twominorentries cannot ride a patch. The revert is still correct as written — this is the next operator's problem, not a defect here — but reconcile it before re-cutting. - Per the PR's own note: the published
3.2.0git tag and CDN/R2 artifacts are immutable. This revert removes 3.2.0 frommainand the registry; it cannot un-publish what external consumers already fetched. Track the CDN cleanup separately.
Approving on the strength of a complete, internally-consistent revert plus two clean expert verdicts. The 3.1.1-vs-3.2.0 reconciliation is the one thing to settle before the next release PR.
|
Preview deployment for your docs. Learn more about Mintlify Previews.
💡 Tip: Enable Workflows to automatically generate PRs for you. |
74556ca to
fcddf9f
Compare
There was a problem hiding this comment.
Clean revert of an accidental release. Delist-don't-delete is the right shape: the v3.2.0 tag exists, so the immutable-artifact rule (tests/immutable-release-artifacts.test.cjs:79-84 — deletion allowed only for untagged aborted releases) forbids removing dist/schemas/3.2.0/; you delist it from discovery and leave the artifact on disk. Correct.
Things I checked
- Version coherence at 3.1.0.
package.json:3, bothpackage-lock.jsonfields (top-level +packages[""]),static/schemas/source/index.jsonadcp_versionandpublished_versionall land at 3.1.0. Satisfies every rule inverify-version-sync.cjs(lock==package, alias>=published, registry>=package). No rule trips. - No dangling 3.2.0 pointer.
dist/schemas/index.jsonde-references every group —latest/latest_stable, aliasv3(andv3.2removed),latest_by_major["3"], thelatest_by_minor3.2 entry, and theversions[]3.2.0 object.dist/schemas/latest.jsonrepointslatest/latest_stable/path/index. The only surviving 3.2.0 is the orphaned artifact dir, which nothing routes to. - Immutable artifact preserved, not modified.
dist/schemas/index.json/latest.jsonare root discovery docs —parseImmutableArtifactPathreturnsnullfor them, so editing them is exempt; the versioned3.2.0/tree is untouched. - dist-schema-version-ids only checks intra-directory
$id/$refself-consistency — delisting 3.2.0 doesn't affect it. No discovery-completeness gate breaks. - Changeset reconsumption. All 10 bumped entries from the removed changelog block are restored 1:1 (2 minor:
registry-feed-stream,tmp-tmpx-providers; 8 patch), plus 10 empty/docs stubs that correctly never bumped. The next release will reconsume them. ad-tech-protocol-expert: sound — pure metadata/discovery revert, zero wire-shape impact, no spec drift.code-reviewer: clean.
Follow-ups (non-blocking — file as issues)
- "Intended release path is 3.1.1" vs. the restored changesets. The PR body names 3.1.1, but the two restored
minorchangesets mean changesets will compute the next version as a3.2.0minor, not a3.1.1patch. That may be the intended outcome (redo 3.2.0 properly), but the body says otherwise — reconcile the framing before the next cut so the release operator isn't surprised. - Out-of-band 3.2.0 still live. Git tag, GitHub release, and CDN/R2 artifacts for 3.2.0 persist; a consumer who discovered 3.2.0 via the tag rather than the discovery doc sees a version the doc no longer advertises. The body tracks this (release marked prerelease, CDN cleanup pending) — sequenced, not a defect.
Minor nits (non-blocking)
- Body-less changeset stubs.
bright-lizards-matter.md,clever-tools-check.md,thirty-doodles-retire.mdare bare---\n---. Faithfully restored as they were, so not a regression here — but they carry no description and use exactly the random-animal naming the playbook discourages. Worth pruning whenever they're reconsumed.
Approving on the strength of the version-sync coherence plus the correct delist-don't-delete handling of the tagged artifact.
fcddf9f to
76ed6b6
Compare
There was a problem hiding this comment.
Clean revert of the accidental 3.2.0 cut. Mechanical restoration is the right shape — undo the release commit, restore the consumed changesets, drop the generated artifacts, leave the source untouched.
Things I checked
- Version reverts on the wire. GitHub test-merge commit
c54687ehas rootpackage.jsonat3.1.0, not3.2.0. The diff topology is misleading (merge-base predates the bump, sopackage.jsonnever appears in the file list), so I verified against the actual test-merge tree rather than the diff. It resolves to3.1.0correctly. - No data loss.
dist/compliance/in the merge result still carries3.1.0plus every prior3.0.xand3.1.0-beta/rcdirectory. Only3.2.0is removed — exactly the accidental artifact.test:immutable-release-artifacts(cited in the body) protects the rest. - CHANGELOG. Top section in the merge result is
## 3.1.0; the3.2.0block is gone.-29lines, clean. - Changesets restored. All 20 consumed changesets re-added, faithfully matching the pre-release state.
- Largest-file rule. Every >200-line file in the diff is a generated
dist/compliance/3.2.0/**deletion — skipped per the rule. No non-generated file exceeds 200 net lines.
Follow-ups (non-blocking — file as issues)
- Restoring the changesets restores the
minor.registry-feed-stream.mdis"adcontextprotocol": minor(and others may be too). The nextchangeset versionwill cut3.2.0again — not the3.1.1the PR body names as the intended path. The revert correctly stays mechanical and doesn't re-categorize, but the3.1.1outcome won't happen on its own: someone has to demote theminorchangeset(s) topatchbefore the next release runs. Worth pinning down before anyone hits the release button. - CDN/R2 cleanup. Already noted in the body — versioned
3.2.0artifacts on the CDN still need separate removal. Git is reverted; the object store is not.
Test-plan honesty
The body lists verify-version-sync, test:dist-schema-version-ids, test:immutable-release-artifacts, and the two storyboard matrices as run, with no pass/fail recorded. I couldn't independently confirm the suites, but the merge-result invariants they guard (version sync at 3.1.0, 3.1.0 artifacts intact, no 3.2.0) all hold against the test-merge tree.
LGTM. Ship it once CI validates the version-sync and immutable-artifact suites. Re-categorize the minor changeset before the 3.1.1 cut.
Summary
Reverts the accidental
Version Packagescommit forv3.2.0.This puts repository metadata and generated release artifacts back to
3.1.0onmainwhile preserving the earlier merged fixes and dependency PRs.Root Cause
The release PR was merged even though it cut
3.2.0; the intended release path is3.1.1.Validation
npm run verify-version-syncnpm run test:dist-schema-version-idsnpm run test:immutable-release-artifactsFollow-Up
The accidental GitHub release and tag for
v3.2.0have been deleted. CDN/R2 versioned artifacts for3.2.0still need separate cleanup or replacement with the intended3.1.1release path.