ci: commit Pi extension lockfile and switch vitest job to npm ci#200
Merged
Merged
Conversation
The vitest job ran npm install because no lockfile was committed, so dependency resolution could drift between runs. Committing package-lock.json makes installs reproducible, lets the job use npm ci, and enables setup-node npm caching keyed on the lockfile. Verified locally: npm ci from a clean node_modules, then vitest run, 21/21 tests pass.
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.
Follow-up to #199, as suggested in the merge comment.
What
package-lock.jsonfor the Pi extension package at.pi/skills/planning-with-files/extensions/planning-with-files/.npm installtonpm ciand removes the now-stale comment about the missing lockfile.Why
Without a lockfile, every CI run re-resolves dependency versions, so the vitest job could drift or break on a transitive release without any change in this repo.
npm ciinstalls exactly what the lockfile pins and fails loudly ifpackage.jsonand the lockfile ever disagree.Notes
node_modulespresent). A first attempt generated it against an existing Windowsnode_modulesand hit the known npm optional-dependencies bug ([BUG] Platform-specific optional dependencies not being included inpackage-lock.jsonwhen reinstalling withnode_modulespresent npm/cli#4828): the Linux rollup binary@rollup/rollup-linux-x64-gnuwas missing from the lockfile and the ubuntu vitest job failed at startup. The clean regeneration records all platform variants..github/plus the lockfile only. No production script or distributed skill content changed, so no version bump, matching the reasoning on ci: run pytest on ubuntu and windows plus Pi extension vitest #199.Validation
Workflow dispatched on the fork with this branch: all three jobs green (pytest ubuntu, pytest windows, vitest), run 28975796461. Locally on Windows:
npm cifrom a cleannode_modulesfollowed bynpm test, 21/21 tests pass.