Skip to content

Conversation

@juliesaia
Copy link

Summary

This PR finishes the work of #10131 and #11287, replacing the remaining uses of micromatch with jest-util/globsToMatcher or picomatch.

Benefits are improved perf with the caching layer in globsToMatcher, and a smaller package size. picomatch is ~3x smaller than micromatch, and doesnt include things like the infamous is-number

Micromatch uses picomatch under the hood, so the functionality should be identical.

Also bumps picomatch to fix a tiny issue

Test plan

All tests that call micromatch still pass. I left micromatch as a devDependency to keep globsToMatcher.test.ts to verify that the logic is unchanged.

@netlify
Copy link

netlify bot commented Dec 20, 2025

Deploy Preview for jestjs ready!

Built without sensitive environment variables

Name Link
🔨 Latest commit d2ff6a7
🔍 Latest deploy log https://app.netlify.com/projects/jestjs/deploys/6946ff75bd6dfd0008d4f0a4
😎 Deploy Preview https://deploy-preview-15922--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.

@linux-foundation-easycla
Copy link

linux-foundation-easycla bot commented Dec 20, 2025

CLA Signed

The committers listed above are authorized under a signed CLA.

@juliesaia juliesaia changed the title Replace micromatch with picomatch Replace remaining micromatch uses with picomatch Dec 20, 2025
@pkg-pr-new
Copy link

pkg-pr-new bot commented Dec 20, 2025

Open in StackBlitz

babel-jest

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

babel-plugin-jest-hoist

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

babel-preset-jest

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

create-jest

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

@jest/diff-sequences

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

expect

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

@jest/expect-utils

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

jest

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

jest-changed-files

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

jest-circus

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

jest-cli

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

jest-config

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

@jest/console

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

@jest/core

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

@jest/create-cache-key-function

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

jest-diff

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

jest-docblock

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

jest-each

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

@jest/environment

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

jest-environment-jsdom

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

@jest/environment-jsdom-abstract

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

jest-environment-node

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

@jest/expect

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

@jest/fake-timers

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

@jest/get-type

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

@jest/globals

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

jest-haste-map

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

jest-jasmine2

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

jest-leak-detector

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

jest-matcher-utils

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

jest-message-util

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

jest-mock

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

@jest/pattern

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

jest-phabricator

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

jest-regex-util

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

@jest/reporters

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

jest-resolve

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

jest-resolve-dependencies

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

jest-runner

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

jest-runtime

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

@jest/schemas

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

jest-snapshot

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

@jest/snapshot-utils

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

@jest/source-map

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

@jest/test-result

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

@jest/test-sequencer

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

@jest/transform

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

@jest/types

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

jest-util

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

jest-validate

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

jest-watcher

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

jest-worker

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

pretty-format

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

commit: d2ff6a7

@juliesaia
Copy link
Author

also want to point out https://github.com/fabiospampinato/zeptomatch, which is faster and smaller. I stuck with picomatch to keep logic identical, bc jest is so mature and widely used

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

1 participant