Repository navigation
fix(release): no 0.0.0-* prerelease counts as a release - #243
Merged
Merged
Conversation
npm's staged publishing created @cloudhal/[email protected] next to the owner's 0.0.0-placeholder.0. isPlaceholderVersion matched only 0.0.0-placeholder.*, so releaseGroup counted 0.0.0-stage as a real release, kept release-verify in the 0.9.0 group and planned a publish (two Release runs reached the signing gate and were cancelled). isNotRealVersion now treats every 0.0.0-* prerelease as never a release (no Cloudhal release is 0.0.0-*; a plain 0.0.0 is not matched). Tests: the exact npm state with no changelog entry is left out and nothing publishes; the first version PR still releases it; the matcher's edges. Co-Authored-By: Claude Opus 5.5 <[email protected]> Signed-off-by: Madraka <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
After the owner's placeholder publish, npm also lists
@cloudhal/[email protected]. npm's staged publishing created it by itself.isPlaceholderVersionmatched only0.0.0-placeholder.*, soreleaseGroupcounted0.0.0-stageas a real release. It keptrelease-verifyin the 0.9.0 group and planned a publish. Two Release runs onmainreached therelease-signinggate; both were cancelled and nothing was approved.scripts/release-plan.ts:isPlaceholderVersionbecomesisNotRealVersion, which treats every0.0.0-*prerelease as never a release of a package. The check isstartsWith("0.0.0-"), which is linear. No Cloudhal release is0.0.0-*, since the fixed group started at 0.1.0. A plain0.0.0is not matched. The doc comments now name both kinds: the owner's placeholder and npm's0.0.0-stage.packages/cli/test/release-plan.test.ts):["0.0.0-placeholder.0", "0.0.0-stage"]with no## 0.9.0changelog entry leaves the package out. Nothing is unpublished (publish=false), and the dry-run plan never publishes it. This sits next to the existing nothing-on-npm and placeholder-only cases.0.0.0-stage.0.0.0-placeholder.0,0.0.0-stageand0.0.0-anything.1are not real releases;0.0.0,0.9.0,0.10.0-next.1and1.0.0-0.0.0-xare.Checks
The real npm state now: the registry lists
["0.0.0-placeholder.0", "0.0.0-stage"]for@cloudhal/release-verify.node scripts/publish-ci.ts --planon this branch printsleaving out @cloudhal/release-verify: never released and no "## 0.9.0" in its changelogand thenpublish=false.Tests, one at a time:
cli tsc, biome and size:check are clean.
Refs #232
🤖 Generated with Claude Code