Repository navigation
fix(release): a package not on npm yet is skipped by the publish step, not attempted - #7391
Closed
miguel-heygen wants to merge 1 commit into
Closed
miguel-heygen wants to merge 1 commit into
miguel-heygen wants to merge 1 commit into
Conversation
Contributor
There was a problem hiding this comment.
Approve at 889647cf.
- Fails without the fix — verified. With main's
publish.ymlswapped in, the new case inscripts/publish-workflow.test.mjsfails because the step runspnpm --filter @hyperframes/share publish …. With the PR's workflow, all 7 cases pass. - Nothing else breaks from
sharegoing private. No other workspace depends on or imports@hyperframes/share.verify-packed-manifestsskips private workspaces before it packs them, and size budgets are only checked for packed packages, so the leftoversharebudget entry does nothing.set-versionstill bumpsshare, so its version keeps up and publishing it later only means removing the flag.check-workspace-contractsandpackage-subpathsboth pass (14 public workspaces). - Failure modes are safe. If
is_privatecan't find the package, or the manifest won't parse, it exits 1, so the package is treated as public and publishes exactly as it does today.if is_privateis also safe underbash -e.
Non-blocking nit: is_private scans packages/* once per package, about 15 small node runs. That's fine at this size.
Collaborator
Author
|
Closing: share should be published like every other hyperframes package, not marked private. The publish failure gets fixed on the npm side instead. |
Merged
3 of 5 tasks
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
The release workflow no longer tries to publish a package that is not on npm yet, so a release stops ending red for that reason.
packages/share/package.jsongets"private": true.@hyperframes/sharehas never been published, and its first publish is a separate decision.publish.yml'spublish_pkgreads each package's ownprivateflag first: a private package prints⏭️ <name> is private (not published to npm yet) — skippingand is never attempted. Every other package publishes exactly as before.privateflag, whichverify-packed-manifestsandpackage-subpathsalready honor. Publishingsharelater is removing that one line.Why
The v0.9.21 release published every package, but the run ended red:
@hyperframes/[email protected]failed withnpm error code ENEEDAUTHbecause the package does not exist on npm. Nothing in the repo depends on it: no otherpackage.jsonlists@hyperframes/share, no other package's source imports it, and no docs or skills install it (git grep on main).Size
A lone fix nothing else can carry: it has to merge before the 0.9.22 release PR, and no other open PR touches the release workflow.
Not in this PR
share's size budget stays inscripts/package-size-budgets.json; only packed packages are measured, so it applies again the dayshareis published.Test plan
scripts/publish-workflow.test.mjsruns the realPublish packagesstep with stand-innpmandpnpmover fixture packages,sharemarked private:shareis never viewed or published, the skip notice is printed,@hyperframes/coreand the CLI still publish, and the step exits 0.publish.yml, the case fails because the step runspnpm --filter @hyperframes/share publish.scripts/publish-workflow.test.mjs: 7 passed, 3 runs in a row.bun run check:package-subpathsexit 0 (14 public workspaces);bun run format:checkexit 0.