Skip to content

Conversation

@SimenB
Copy link
Member

@SimenB SimenB commented Jun 12, 2025

Summary

Now we've dropped Node 16 we can do this

Also

Test plan

Green CI

@netlify
Copy link

netlify bot commented Jun 12, 2025

Deploy Preview for jestjs ready!

Name Link
🔨 Latest commit 0db25a4
🔍 Latest deploy log https://app.netlify.com/projects/jestjs/deploys/684bd46aa2973c00085f423f
😎 Deploy Preview https://deploy-preview-15675--jestjs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@pkg-pr-new
Copy link

pkg-pr-new bot commented Jun 12, 2025

Open in StackBlitz

babel-jest

npm i https://pkg.pr.new/babel-jest@15675

babel-plugin-jest-hoist

npm i https://pkg.pr.new/babel-plugin-jest-hoist@15675

babel-preset-jest

npm i https://pkg.pr.new/babel-preset-jest@15675

create-jest

npm i https://pkg.pr.new/create-jest@15675

@jest/diff-sequences

npm i https://pkg.pr.new/@jest/diff-sequences@15675

expect

npm i https://pkg.pr.new/expect@15675

@jest/expect-utils

npm i https://pkg.pr.new/@jest/expect-utils@15675

jest

npm i https://pkg.pr.new/jest@15675

jest-changed-files

npm i https://pkg.pr.new/jest-changed-files@15675

jest-circus

npm i https://pkg.pr.new/jest-circus@15675

jest-cli

npm i https://pkg.pr.new/jest-cli@15675

jest-config

npm i https://pkg.pr.new/jest-config@15675

@jest/console

npm i https://pkg.pr.new/@jest/console@15675

@jest/core

npm i https://pkg.pr.new/@jest/core@15675

@jest/create-cache-key-function

npm i https://pkg.pr.new/@jest/create-cache-key-function@15675

jest-diff

npm i https://pkg.pr.new/jest-diff@15675

jest-docblock

npm i https://pkg.pr.new/jest-docblock@15675

jest-each

npm i https://pkg.pr.new/jest-each@15675

@jest/environment

npm i https://pkg.pr.new/@jest/environment@15675

jest-environment-jsdom

npm i https://pkg.pr.new/jest-environment-jsdom@15675

@jest/environment-jsdom-abstract

npm i https://pkg.pr.new/@jest/environment-jsdom-abstract@15675

jest-environment-node

npm i https://pkg.pr.new/jest-environment-node@15675

@jest/expect

npm i https://pkg.pr.new/@jest/expect@15675

@jest/fake-timers

npm i https://pkg.pr.new/@jest/fake-timers@15675

@jest/get-type

npm i https://pkg.pr.new/@jest/get-type@15675

@jest/globals

npm i https://pkg.pr.new/@jest/globals@15675

jest-haste-map

npm i https://pkg.pr.new/jest-haste-map@15675

jest-jasmine2

npm i https://pkg.pr.new/jest-jasmine2@15675

jest-leak-detector

npm i https://pkg.pr.new/jest-leak-detector@15675

jest-matcher-utils

npm i https://pkg.pr.new/jest-matcher-utils@15675

jest-message-util

npm i https://pkg.pr.new/jest-message-util@15675

jest-mock

npm i https://pkg.pr.new/jest-mock@15675

@jest/pattern

npm i https://pkg.pr.new/@jest/pattern@15675

jest-phabricator

npm i https://pkg.pr.new/jest-phabricator@15675

jest-regex-util

npm i https://pkg.pr.new/jest-regex-util@15675

@jest/reporters

npm i https://pkg.pr.new/@jest/reporters@15675

jest-resolve

npm i https://pkg.pr.new/jest-resolve@15675

jest-resolve-dependencies

npm i https://pkg.pr.new/jest-resolve-dependencies@15675

jest-runner

npm i https://pkg.pr.new/jest-runner@15675

jest-runtime

npm i https://pkg.pr.new/jest-runtime@15675

@jest/schemas

npm i https://pkg.pr.new/@jest/schemas@15675

jest-snapshot

npm i https://pkg.pr.new/jest-snapshot@15675

@jest/snapshot-utils

npm i https://pkg.pr.new/@jest/snapshot-utils@15675

@jest/source-map

npm i https://pkg.pr.new/@jest/source-map@15675

@jest/test-result

npm i https://pkg.pr.new/@jest/test-result@15675

@jest/test-sequencer

npm i https://pkg.pr.new/@jest/test-sequencer@15675

@jest/transform

npm i https://pkg.pr.new/@jest/transform@15675

@jest/types

npm i https://pkg.pr.new/@jest/types@15675

jest-util

npm i https://pkg.pr.new/jest-util@15675

jest-validate

npm i https://pkg.pr.new/jest-validate@15675

jest-watcher

npm i https://pkg.pr.new/jest-watcher@15675

jest-worker

npm i https://pkg.pr.new/jest-worker@15675

pretty-format

npm i https://pkg.pr.new/pretty-format@15675

commit: 0db25a4

@SimenB
Copy link
Member Author

SimenB commented Jun 12, 2025

@merceyz 👋 any idea why yarn constraints fail? yarn constraints --fix doesn't fix anything regardless what the warning says 😅

@merceyz
Copy link
Contributor

merceyz commented Jun 12, 2025

That seems like a bug, @arcanis something you're familiar with?

@arcanis
Copy link
Contributor

arcanis commented Jun 12, 2025

Not on the top of my mind - I'm currently afk, but I'll take a look later today

@arcanis
Copy link
Contributor

arcanis commented Jun 13, 2025

I figured out what happens. I'd suggest to add an exception for fsevents here for the time being. Also note the Prolog rules are deprecated and have been replaced by JS constraints. I suspect they'd have the same issue, but they are a little easier to debug.

For details about what happens:

  • Internally Yarn converts optionalDependencies into regular dependencies entries, but with an attached optional flag in dependenciesMeta.
  • This causes the constraint to believe that jest-haste-map has a dependency listed in dependencies (instead of optionalDependencies).
  • It thus generates a gen_enforced_dependency rule asserting the dependency presence (so it can detect potential conflicts with other rules).
  • The constraint engine see that there is no fsevents dependency in dependencies (because it's in optionalDependencies), so it reports the error, or tries to autofix it by adding it in.
  • But when manifests are serialized to JSON, Yarn turns any dependencies entry with the optional flag into optionalDependencies entries.
  • The process repeats again, and again.

I'm working on refactorings of the constraints engine, I'll keep this case in mind and add a test for it on our repository.

@SimenB
Copy link
Member Author

SimenB commented Jun 13, 2025

Thanks @arcanis! Migrating to JS rules is deffo something we should do 😀

@SimenB
Copy link
Member Author

SimenB commented Jun 13, 2025

Didn't need the fsevents exception in the JS file 👍 at least not with how I've set up the check 😀

@SimenB SimenB merged commit 070781a into jestjs:main Jun 13, 2025
75 checks passed
@SimenB SimenB deleted the update-yarn branch June 13, 2025 07:38
@github-actions
Copy link

This pull request has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.
Please note this issue tracker is not a help forum. We recommend using StackOverflow or our discord channel for questions.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Jul 14, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants