Repository navigation
Fix supply-chain policy findings - #421
Merged
Merged
Conversation
- Pin every GitHub Action to a full commit SHA (tag kept as a comment).
- component-library: add the required pnpm safeguards (pmOnFail: error,
strictDepBuilds, blockExoticSubdeps, minimumReleaseAge 7 days + strict,
packageManagerStrictVersion, trustPolicy: no-downgrade) and
engines { npm: disallow, pnpm: >=11 }. semver@6.3.1 (firebase-tools)
is excluded from the trust policy; protobufjs builds are denied.
- icons: move to pnpm 11.23.0 with its own pnpm-workspace.yaml and the
same safeguards and engines (also covers icons/vue).
- Replace `pnpm add -g firebase-tools` with a firebase-tools devDependency
and a `deploy:hosting` script; set CI=true in the Storybook deploys.
- Publish with `pnpm version` / `pnpm publish` instead of npm, and drop
the global npm upgrades. The repo-only `engines` field is removed from
the manifest right before publishing so consumers are not affected.
- Run CI and the dev container on Node 24, with @types/node 24.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013yQykoHjiZEv15n8LWzUCQ
re2 is an optional native dependency of superstatic (firebase-tools' local server), which falls back to RegExp without it. Its unreviewed build script failed `strictDepBuilds` on Node 24 in CI. Deploys don't need it, so leave it out with ignoredOptionalDependencies. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013yQykoHjiZEv15n8LWzUCQ
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.
Change summary
Fixes all 70 findings from the supply-chain check (
supply-chain-safeguards.yml). Running the checker locally (same inventory step, Conftest 0.69.0,policy-v1,--fail-on-warn) gives 0 warnings and 0 failures. Onmainit gives 68 failures and 2 warnings.Workflows
pnpm/action-setup@v2/v4andsoftprops/action-gh-release@v1are bumped as part of this.pnpm add -g firebase-toolsis replaced by afirebase-toolsdevDependency and adeploy:hostingscript. Both deploys now setCI=true.pnpm version/pnpm publish --no-git-checksinstead of npm. The globalnpm install -g npm@11steps are gone. Before publishing,pnpm pkg delete enginesremoves the repo-onlyenginesfield (npm disallowed, pnpm ≥ 11), so npm users of the libraries don't get engine warnings or errors.icons-create-versionnow sets up pnpm and runs the script with it.component-library
pnpm-workspace.yaml:pmOnFail: error,strictDepBuilds,blockExoticSubdeps,minimumReleaseAge: 10080+minimumReleaseAgeStrict,packageManagerStrictVersion,trustPolicy: no-downgrade.trustPolicyExclude: semver@6.3.1. It is the 6.x security backport, published without provenance just after 7.5.4 (which had it), and firebase-tools needs it throughconfigstore > make-dir@3.protobufjsbuilds are denied. Its install script is only a version check.ignoredOptionalDependencies: [re2]. It is an optional native regex engine for firebase-tools' local server (superstatic), which falls back to RegExp. Deploys don't need it, and its unreviewed build script failedstrictDepBuildson Node 24.@types/node^24. This also removesundici-types@6.21.0, which the trust policy rejected.icons
icons/pnpm-workspace.yamlwith the same settings also coversicons/vue. Engines are added to bothpackage.jsonfiles.Verified: frozen install passes every pnpm policy. CI on Node 24 is green: supply-chain check, component-library lint/typecheck, unit tests and build (incl. tree-shake check), and the icons build.
pnpm publish --dry-runworks for all three packages (run locally).Watch on the first runs:
pnpm publishcouldn't be tested here. Try a*-release-devrun first.pnpm run deploy:hosting) first runs on merge tomain.scripts/version.cjsfiles still callnpm version, because they parse its output. The checker doesn't scan them.Change type
🤖 Generated with Claude Code
https://claude.ai/code/session_013yQykoHjiZEv15n8LWzUCQ