revert: undo Yarn 4 upgrade and danger 13.0.10 bump - #81
Conversation
|
|
||
| - name: Install tooling dependencies | ||
| run: yarn install --immutable | ||
| run: yarn install --frozen-lockfile |
There was a problem hiding this comment.
🟡 --frozen-lockfile will fail against a Yarn Berry .tooling.
This step runs in .tooling, which is checked out from artsy/duchamp@main (ref: main, line 46). At the moment, main still pins packageManager: "yarn@4.17.0", and with Corepack enabled (line 55) yarn --version resolves to Yarn 4 inside .tooling. Yarn Berry (2+) does not accept the Yarn 1 flag --frozen-lockfile — it errors with Usage Error: Unsupported option name ("--frozen-lockfile") — so this install will fail until the revert actually lands on main (including this PR's own review CI).
Note that .github/actions/setup-and-install/action.yml in this same PR added Yarn-version detection precisely to bridge this Yarn 1 ↔ Yarn 4 ambiguity, but this workflow doesn't use it. Consider reusing that action / detection here, or keeping the install tolerant of both, e.g.:
run: |
if [[ "$(yarn --version)" =~ ^[2-9] ]]; then
yarn install --immutable
else
yarn install --frozen-lockfile
fiSame applies to line 175.
🤖 Code ReviewSummaryReverts the root project from Yarn 4 (Berry) back to Yarn 1.22.22 and The Issues Found🟡 Important — - name: Install tooling dependencies
run: yarn install --frozen-lockfile
working-directory: .tooling
This is exactly the ambiguity the new 🟢 Suggestion — version-detection regex won't match Yarn >= 10 ( if [[ "\$YARN_VERSION" =~ ^[234] ]]; then
Areas Reviewed
Questions for Author
Reviewed the full diff plus related workflows ( |
Summary
danger@13.0.4, Yarn 1 lockfile, and the originalsetup-and-installaction.toolingfrom a consumer repo's workspaceWhy
After upgrading Danger and then Yarn 4, CI is failing on consumer repos (e.g. Eigen) because
actions/setup-nodeactivates the consumer's Yarn version (e.g. 4.10.3) before the install step runs in.tooling, causing a lockfile format mismatch in hardened mode. Root cause not yet fully diagnosed.🤖 Generated with Claude Code