From c66e37442d2b9546eec1547b99cab7e063989964 Mon Sep 17 00:00:00 2001 From: Attila Szegedi Date: Thu, 2 Jul 2026 17:30:37 +0200 Subject: [PATCH] Make lint CI install from the lockfile (npm ci) instead of lockless yarn MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The lint job ran `yarn` with no `yarn.lock` in the repo, so yarn ignored package-lock.json and resolved every dependency fresh from the package.json ranges. prettier isn't a direct dependency — it comes in transitively via gts (^3.6.2) — so CI floated to the newest prettier (3.9.4), while local development pins 3.8.1 through package-lock.json. prettier 3.9.x changed how it wraps union return types (collapsing the leading-`|` multiline form 3.8.1 produces), so `gts check` failed in CI on heap-profiler.ts / heap-profiler-bindings.ts even though the code was correctly formatted for the pinned prettier — and the failure never reproduced locally. Switch install to `npm ci` (and the script to `npm run lint`) so CI uses the exact package-lock.json versions the repo is developed against. This fixes the prettier drift and prevents any future lockless-yarn float for every other tool in the lint chain. Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/workflows/lint.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index f4dad2a6..68b06640 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -10,5 +10,5 @@ jobs: steps: - uses: actions/checkout@v7 - uses: actions/setup-node@v6 - - run: yarn - - run: yarn lint + - run: npm ci + - run: npm run lint