Repository navigation
fix: count prereleases on registries without a latest dist-tag - #164
Conversation
|
The changes in this PR will be included in the next version bump.
|
There was a problem hiding this comment.
Important
Registry command failures still bypass the new unresolved-state warning and can silently restart a published channel at .0.
Reviewed changes in 293845b, covering the registry fallback, channel planning, snapshot idempotency, package-existence check, and regression tests.
- Channel version discovery — retries an empty
latestlookup through the configured channel dist-tag and propagates unresolved state into release planning. - Collision visibility — emits a warning when neither
latestnor the channel tag exposes the package version list. - Exact snapshot lookup — checks the generated snapshot version directly instead of relying on package-wide dist-tag resolution.
- OIDC package detection — treats successful package metadata lookup as package existence even when output is empty.
- Regression coverage — exercises fallback lookup, custom registry forwarding, warning behavior, and exact-version checks.
gpt-5.6-sol | 𝕏
There was a problem hiding this comment.
✅ No new issues found.
Reviewed changes since the prior Pullfrog review in 293845b; the new commit addresses the outstanding registry-failure classification concern without regressing the dist-tag fallback.
- Failure classification — Distinguished confirmed
E404responses from authentication, network, registry, and malformed-response failures. - Warning propagation — Preserved first-publication behavior for missing packages while surfacing operational lookup failures before selecting prerelease counter
.0. - Regression coverage — Added tests for non-404 command failures, malformed responses, fallback failures, and the resulting release-plan warning.
gpt-5.6-sol | 𝕏



Fixes #163.
npm info <name> versions --jsonresolves through thetagconfig (latest). When the package has nolatestdist-tag — e.g. GCP Artifact Registry, which only sets the tag you publish with — npm prints nothing and exits 0, so bumpy parsed"", fell back to[], and restarted every channel counter at.0.fetchPublishedVersionstries the default lookup, then falls back to--tag <channel tag>. If neither resolves, it reportsunresolvedandbuildChannelReleasePlanadds a warning instead of silently counting from 0.npm info <name>@<version>directly (no dist-tag resolution).packageExistsOnNpm(OIDC new-package check) treats exit 0 as "exists", since output is empty withoutlatest.🤖 Generated with Claude Code