Skip to content

ci(npm-publish): fail closed on prerelease-hint versions + consolidate unpublished changelog entries - #1454

Merged
John-David Dalton (jdalton) merged 2 commits into
v1.xfrom
jdalton/v1x-release-flow
Jul 31, 2026
Merged

ci(npm-publish): fail closed on prerelease-hint versions + consolidate unpublished changelog entries#1454
John-David Dalton (jdalton) merged 2 commits into
v1.xfrom
jdalton/v1x-release-flow

Conversation

@jdalton

@jdalton John-David Dalton (jdalton) commented Jul 31, 2026

Copy link
Copy Markdown
Collaborator

The v1.x publish flow had two gaps: a real dispatch would publish whatever version the tree carried (including a not-yet-released bump state), and the release cut used the single-call create that immutable releases can race.

Workflow (.github/workflows/npm-publish.yml)

  • A real publish (dry-run: false) now fails while package.json carries a X.Y.Z-prerelease hint, so a dispatch on an un-bumped tree can never reach the registry.
  • The GitHub release is cut as a draft and flipped live with --draft=false --latest=false (3-step immutable-release pattern, notes only). --latest=false keeps v1.x maintenance releases from taking the repo Latest badge once 2.x ships from main.
  • The environment comments now state the current npm-publish deployment-branch policy (main + v1.x).

Release state


Note

Medium Risk
Changes npm publish guards and GitHub release cutting on the release pipeline; fail-closed prerelease checks reduce accidental registry publishes rather than increasing exposure.

Overview
Hardens the v1.x npm publish workflow and resets release metadata so the next ship is a single forward release (no backfill of skipped 1.1.148–1.1.150).

Workflow (npm-publish.yml) — On a real publish (dry-run: false), the job now stops if package.json still has a X.Y.Z-prerelease hint, so an un-bumped tree cannot reach npm. GitHub releases use draft → publish (--draft=false --latest=false) for immutable-release safety and so v1.x does not take the repo Latest badge from 2.x on main. Comments are updated for the npm-publish environment / trusted-publisher pairing and for all three packages hard-failing before tag/release.

Release state — Changelog drops the unreleased 1.1.148–1.1.150 headings and folds those notes into [Unreleased] (Coana 15.9.7, socket scan view cached results, socket fix discovery/error handling). package.json is set to 1.1.150-prerelease as the committed next-version hint for the normal bump-then-dispatch flow.

Reviewed by Cursor Bugbot for commit c7086e8. Configure here.

…ease cut

A real publish now fails closed while package.json carries a
X.Y.Z-prerelease hint (the committed next-version marker the release
tooling consumes), the GitHub release goes live via the 3-step
draft-then-publish flip with --latest=false so maintenance releases never
take the repo Latest badge from the 2.x line, and the environment
deployment-branch-policy comments state the current policy (main + v1.x).
…ased]

Versions 1.1.148-1.1.150 never reached npm, so their changelog entries
collapse into one [Unreleased] section carrying the latest Coana CLI
(15.9.7), the socket scan view cached-results read from the sdk 4.x bump,
and the socket fix discovery fixes. package.json moves to the
1.1.150-prerelease hint; the release bump strips the hint and promotes
[Unreleased] under the released heading.
@jdalton
John-David Dalton (jdalton) merged commit f62d2dc into v1.x Jul 31, 2026
5 checks passed
@jdalton
John-David Dalton (jdalton) deleted the jdalton/v1x-release-flow branch July 31, 2026 06:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant