Repository navigation
build: commit package-lock.json and install with npm ci - #141
Merged
Merged
Conversation
Draft
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.
Adds a lockfile so every install resolves to the same versions, and switches CI to
npm ciso it installs exactly what's committed.Added
package-lock.json(lockfile version 3), generated by npm 11.19.1 under the.npmrcfrom build: harden the npm config with @lavamoat/harden #140, so it already respects the 3-day release age gate. Every registry package has aresolvedURL and anintegrityhash, and the platform packages for Linux and Windows (oxlint, oxfmt, docov) are included along with macOS's. With resolved URLs in the lockfile, the pinnedallowScriptsentry (fsevents@2.3.3: false) still matches and nothing is left pending.package-lock.jsonin the path filters of ci.yml'ssharedgroup and docs.yml, so a lockfile-only change (a Dependabot bump, say) runs the tests and the docs build.Changed
npm ciwith the same workspace flags as before:npm ci --workspaces=falsein the lint and docs jobs,npm ciin the types job and the nightly build, andnpm ci -w "$PACKAGE"in the test matrix. The nightly data PR can no longer pick up a regenerated lockfile, sincenpm cidoesn't write one.npm citakes seconds in ci.yml, and the docs deploy and the nightly data PR shouldn't restore a shared cache.prepackorpreparescript.Removed
package-lock=falsefrom.npmrc.npm install -g npmstep. It installed the newest npm outside any lockfile, so each matrix entry now uses the npm its Node version ships with (11.20.0 on Node 26, 11.19.1 on Node 24), both new enough fordevEngines..github/zizmor.yml, which only turned off zizmor'sadhoc-packagesaudit because nothing had a lockfile. Withnpm cieverywhere and the global npm install gone, that audit now runs and reports nothing.Checks
All run locally after deleting every
node_modules:npm ci,npm run lint(including the 4lint:hardentests),npm run types(no diff),npm testandnpm run coverage(182 tests each run, 0 failures, 100% coverage in every package),npm run docs,npm run build -w static, andnpm pack -w core -w static --dry-run.npm ci --workspaces=falsethennpm run lint, as the lint job does, andnpm ci -w translatethennpm run coverage -w translate, as a test job does.npm ci -w translateandnpm run coverage -w translate.npm installafternpm cileavespackage-lock.jsonbyte for byte the same.zizmor --offline .github/workflowswith the audit back on: no findings.