You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
chore: migrate to mise + bump yarn to 4.14.1 + cache pattern (#93)
* chore: migrate to mise + bump yarn to 4.14.1 + cache pattern
- Replace volta block in package.json with mise.toml at repo root.
- Bump packageManager to yarn@4.14.1 (root + functions/).
- Lockfile metadata 8 -> 9.
- Delete .nvmrc (stale, conflicted with mise.toml; mise is source of truth).
- .yarnrc.yml: nodeLinker: node-modules, enableScripts: true,
enableHardenedMode: false. Drop auto-added 'approvedGitRepositories: ["**"]'
(no git deps in this project; it was a permissive default to nothing).
- Workflow main.yml: takken.io cache pattern applied to all 4 jobs
(test, build, testDeploy, deploy). Each job now reads Node from
mise.toml, caches node_modules + yarn cacheFolder + install-state,
sets YARN_ENABLE_HARDENED_MODE: 'false' on install.
Yarn workspaces structure preserved (single root yarn.lock; functions/
inherits). Firebase-specific Cloud Build quirks (compressionLevel pin)
not needed here because there's no separate functions/ install --
Cloud Build runs against the root workspace.
Yarn 4.x -> 4.14.1: lockfile metadata bump, scripts default flipped;
within-major (no API breakage).
Note: firebase-functions ^6.1.0 and firebase-admin ^12.7.0 are major
versions behind current (7.2.5, 13.8.0). Not bumped here -- separate
PR with release notes review per the global Upgrades rule.
* chore(yarn): enableScripts off, allowlist via dependenciesMeta
Drop enableScripts: true (Yarn 4.14 default is false for security).
Allowlist each package that legitimately needs install scripts via
dependenciesMeta.X.built: true in package.json.
This shrinks the supply-chain RCE blast radius from 'every dep
running install code' to only the listed packages.
* chore(yarn): allowlist build scripts via dependenciesMeta
Force-fresh yarn install identified the packages with install
scripts. Added dependenciesMeta.X.built: true for each so they
build under the global enableScripts: false default.
* chore(yarn): update lockfile for dependenciesMeta
dependenciesMeta entries change the lockfile's resolution hash. Without
this commit, CI's yarn install --immutable would error with 'lockfile
would have been modified'.
* chore(mise): pin yarn alongside node in mise.toml
`mise install` now brings up both node and yarn — no separate
`corepack enable` step needed for fresh checkouts. Mirrors the
yarn version already in package.json's packageManager field.
0 commit comments