Skip to content

Run smoke:pack in CI - #398

Draft
dannon wants to merge 1 commit into
galaxyproject:mainfrom
dannon:ci/smoke-pack
Draft

Run smoke:pack in CI#398
dannon wants to merge 1 commit into
galaxyproject:mainfrom
dannon:ci/smoke-pack

Conversation

@dannon

@dannon dannon commented Aug 3, 2026

Copy link
Copy Markdown
Member

Independent of #396/#397 -- branches off main and can go in whenever.

Every check in the build job runs against the pinned tree, which is exactly the
tree no user has. #395 is what that costs: pi-mcp-adapter published an exports
map, our lockfile stayed on the version before it, and typecheck, tests, and
packaging all stayed green while npm i -g @galaxyproject/loom died on the
first line of startup. smoke:pack is the one check that installs without the
lockfile -- it caught that -- and it only ever ran from prepublishOnly, which
is to say after the decision to ship.

This wires it into the build matrix, after the tests and before packaging.

One property worth agreeing to on purpose: this step is not hermetic. It
reaches the network and resolves runtime deps fresh, so it can go red because a
dependency published something broken rather than because the PR did. That is
the job. A failure here means someone running npm i -g right now would hit the
same thing, and the right response is usually to look at what shipped upstream,
not to re-run the job.

It adds roughly 30s per matrix leg. Running it on all three OSes rather than
just ubuntu is deliberate -- #395 was a path resolution bug, and that's the
category most likely to behave differently on Windows.

Verified by running npm run smoke:pack locally on the pi 0.83 branch, where it
packs, installs 504 packages without the lockfile, and boots loom --help.

Every check in the build job runs against the pinned tree, which is exactly the
tree no user has. galaxyproject#395 is what that costs: pi-mcp-adapter published an exports
map, our lockfile stayed on the version before it, and typecheck, tests, and
packaging all stayed green while `npm i -g @galaxyproject/loom` died on the
first line of startup. smoke:pack is the one check that installs without the
lockfile, and it caught that -- it just wasn't wired up to run anywhere.

Note this step is deliberately not hermetic. It hits the network and can go red
because a dependency published something broken rather than because the PR did.
That's the job: a failure here means someone installing right now would hit the
same thing.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant