Skip to content

Conversation

louis-bompart
Copy link
Collaborator

@louis-bompart louis-bompart commented Sep 17, 2025

A triple whammy that is blocking the CI.

7ca9410 Unsynced Arborist & NPM blocks npm ci after releases

With Arborist 9.1.3, a tune-up on the Arborist algorithm was made so that optional "dangling" (i.e. without actual explicit dependency/ask) are now removed when the tree is reifed. See npm/cli#8431

However, NPM 11.4.2 was explicitly using Arborist 9.1.2, which does not do that.

This caused a discrepancy between the package-lock check executed by npm ci (using arborist 9.1.2) and the result of our reify (using arborist 9.1.3/4).

One of the particularities of npm ci is that it fails early if the package-lock seems inadequate/incomplete, leading to npm ci failing as long as the version of arborist we use is out-of-sync (and incompatible) with the one used by the npm version that we use.

Why do we reify?

We elected to run manual update operations using Arborist over using the npm-cli to avoid changes to the transitive dependency during the release process:
Indeed, we do not necessarily want to "unfreeze" our transitive dependency at release time; we just want to "bump" the version of our packages

What's the fix-it-twice?

Switching to pnpm with its default options (notably preferFrozenLockFile) and replacing the reify script with pnpm up --workspace should fix the issue by using the same code-path (i.e. pnpm) for all lockfile operations.

81194f1 Quantic's ESLint config is using a Typescript parser transitively instead of directly

The improvement of NPM/Arborist in the "pruning" and clean-up of the dependency tree, combined with the transition out of ESLint of the repo revelead an underlying issue in Quantic's eslint setup.

Indeed, it's using @typescript-eslint/parser without explicitly having it in its development dependencies. Fix's easy: add it up.

87bf12e Missing vitest.config.js causes npm test on bueno to be confused since #6019

Without this, Vitest tries to run Bueno's test with the first Vitest config listed in the root vitest.config.js, which is one of Atomic.

We didn't detect it before because we did not run UT on Bueno, given that we only ran the affected tests. Modifying utils/ci causes bueno test to run because bueno depends on utils/ci.

https://coveord.atlassian.net/browse/KIT-5014

@developer-experience-bot
Copy link
Contributor

Pull Request Report

PR Title

✅ Title follows the conventional commit spec.

Live demo links

Bundle Size

File Old (kb) New (kb) Change (%)
case-assist 254.8 254.8 0
commerce 368.5 368.5 0
search 426.2 426.2 0
insight 417.4 417.4 0
recommendation 265.6 265.6 0
ssr 420.6 420.6 0
ssr-commerce 385.6 385.6 0
ssr-commerce-next 386.9 386.9 0
ssr-next 421.2 421.2 0

Copy link

github-actions bot commented Sep 17, 2025

🔗 Scratch Orgs ready to test this PR:

it was only present transitively before, which explains the issue
@louis-bompart louis-bompart requested a review from a team as a code owner September 17, 2025 10:43
@louis-bompart louis-bompart changed the title chore: sync-up arborist & npm chore: sync-up arborist & npm, add missing vitest.config.js, add missing eslint-parser Sep 17, 2025
@louis-bompart
Copy link
Collaborator Author

@coveo/salesforce-integration , while you may review all the PR, the changeset specific to your purview are curtailed to 81194f1

@louis-bompart louis-bompart added this pull request to the merge queue Sep 17, 2025
Merged via the queue into main with commit 7e9ce3b Sep 17, 2025
167 of 171 checks passed
@louis-bompart louis-bompart deleted the chore/arborist-and-npm-sync-up branch September 17, 2025 13:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants