Bumps the npm-dependencies group with 14 updates in the /sources directory: | Package | From | To | | --- | --- | --- | | [@actions/core](https://github.com/actions/toolkit/tree/HEAD/packages/core) | `3.0.0` | `3.0.1` | | [@actions/github](https://github.com/actions/toolkit/tree/HEAD/packages/github) | `9.0.0` | `9.1.1` | | [@actions/glob](https://github.com/actions/toolkit/tree/HEAD/packages/glob) | `0.6.1` | `0.7.0` | | [@actions/http-client](https://github.com/actions/toolkit/tree/HEAD/packages/http-client) | `4.0.0` | `4.0.1` | | [semver](https://github.com/npm/node-semver) | `7.7.4` | `7.8.1` | | [which](https://github.com/npm/node-which) | `6.0.1` | `7.0.0` | | [@jest/globals](https://github.com/jestjs/jest/tree/HEAD/packages/jest-globals) | `30.3.0` | `30.4.1` | | [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `25.5.0` | `25.9.1` | | [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `8.58.0` | `8.59.4` | | [eslint](https://github.com/eslint/eslint) | `10.1.0` | `10.4.0` | | [globals](https://github.com/sindresorhus/globals) | `17.4.0` | `17.6.0` | | [jest](https://github.com/jestjs/jest/tree/HEAD/packages/jest) | `30.3.0` | `30.4.2` | | [prettier](https://github.com/prettier/prettier) | `3.8.1` | `3.8.3` | | [ts-jest](https://github.com/kulshekhar/ts-jest) | `29.4.9` | `29.4.11` | Updates `@actions/core` from 3.0.0 to 3.0.1 <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/actions/toolkit/blob/main/packages/core/RELEASES.md">@actions/core's changelog</a>.</em></p> <blockquote> <h2>3.0.1</h2> <ul> <li>Bump <code>undici</code> from <code>6.23.0</code> to <code>6.24.1</code> <a href="https://redirect.github.com/actions/toolkit/pull/2348">#2348</a></li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/actions/toolkit/commits/HEAD/packages/core">compare view</a></li> </ul> </details> <br /> Updates `@actions/github` from 9.0.0 to 9.1.1 <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/actions/toolkit/blob/main/packages/github/RELEASES.md">@actions/github's changelog</a>.</em></p> <blockquote> <h3>9.1.1</h3> <ul> <li>Bump <code>undici</code> from <code>6.23.0</code> to <code>6.24.0</code> <a href="https://redirect.github.com/actions/toolkit/pull/2346">#2346</a></li> </ul> <h3>9.1.0</h3> <ul> <li>Append <code>actions_orchestration_id</code> to user-agent when the <code>ACTIONS_ORCHESTRATION_ID</code> environment variable is set <a href="https://redirect.github.com/actions/toolkit/pull/2364">#2364</a></li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/actions/toolkit/commits/HEAD/packages/github">compare view</a></li> </ul> </details> <br /> Updates `@actions/glob` from 0.6.1 to 0.7.0 <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/actions/toolkit/blob/main/packages/glob/RELEASES.md">@actions/glob's changelog</a>.</em></p> <blockquote> <h2>0.7.0</h2> <ul> <li>Bump <code>minimatch</code> from <code>^3.0.4</code> to <code>^10.2.5</code> <a href="https://redirect.github.com/actions/toolkit/pull/2355">#2355</a></li> <li>Bump <code>undici</code> from <code>6.23.0</code> to <code>6.24.0</code> <a href="https://redirect.github.com/actions/toolkit/pull/2345">#2345</a></li> <li>Bump <code>brace-expansion</code> in <code>/packages/glob</code> <a href="https://redirect.github.com/actions/toolkit/pull/2369">#2369</a></li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/actions/toolkit/commits/HEAD/packages/glob">compare view</a></li> </ul> </details> <br /> Updates `@actions/http-client` from 4.0.0 to 4.0.1 <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/actions/toolkit/blob/main/packages/http-client/RELEASES.md">@actions/http-client's changelog</a>.</em></p> <blockquote> <h2>4.0.1</h2> <ul> <li>Bump <code>undici</code> from <code>6.23.0</code> to <code>6.24.0</code> <a href="https://redirect.github.com/actions/toolkit/pull/2347">#2347</a></li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/actions/toolkit/commits/HEAD/packages/http-client">compare view</a></li> </ul> </details> <br /> Updates `semver` from 7.7.4 to 7.8.1 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/npm/node-semver/releases">semver's releases</a>.</em></p> <blockquote> <h2>v7.8.1</h2> <h2><a href="https://github.com/npm/node-semver/compare/v7.8.0...v7.8.1">7.8.1</a> (2026-05-21)</h2> <h3>Bug Fixes</h3> <ul> <li><a href="https://github.com/npm/node-semver/commit/17aa702d91166472b197a2ea768f085083bee2e4"><code>17aa702</code></a> <a href="https://redirect.github.com/npm/node-semver/pull/869">#869</a> strip build metadata before comparator trimming (<a href="https://redirect.github.com/npm/node-semver/issues/869">#869</a>) (<a href="https://github.com/owlstronaut"><code>@owlstronaut</code></a>)</li> <li><a href="https://github.com/npm/node-semver/commit/5f3ca133e040210b6ea80c350a1d61d9da02e722"><code>5f3ca13</code></a> <a href="https://redirect.github.com/npm/node-semver/pull/867">#867</a> handle prerelease bounds in subset (<a href="https://redirect.github.com/npm/node-semver/issues/867">#867</a>) (<a href="https://github.com/puneetdixit200"><code>@puneetdixit200</code></a>, Puneet Dixit)</li> </ul> <h2>v7.8.0</h2> <h2><a href="https://github.com/npm/node-semver/compare/v7.7.4...v7.8.0">7.8.0</a> (2026-05-08)</h2> <h3>Features</h3> <ul> <li><a href="https://github.com/npm/node-semver/commit/0d0a0a2582fb1486bc6cd255ba18819c441ed149"><code>0d0a0a2</code></a> <a href="https://redirect.github.com/npm/node-semver/pull/855">#855</a> Add <code>truncate</code> function (<a href="https://redirect.github.com/npm/node-semver/issues/855">#855</a>) (<a href="https://github.com/pjohnmeyer"><code>@pjohnmeyer</code></a>, <a href="https://github.com/owlstronaut"><code>@owlstronaut</code></a>)</li> </ul> <h3>Bug Fixes</h3> <ul> <li><a href="https://github.com/npm/node-semver/commit/3905343045dc293c3694d5e46170b1bb1fb5cf58"><code>3905343</code></a> <a href="https://redirect.github.com/npm/node-semver/pull/859">#859</a> Warn when defaulting to --inc=patch in CLI (<a href="https://github.com/pjohnmeyer"><code>@pjohnmeyer</code></a>)</li> </ul> <h3>Documentation</h3> <ul> <li><a href="https://github.com/npm/node-semver/commit/c368af612e521767e960419e6388c5129c857984"><code>c368af6</code></a> <a href="https://redirect.github.com/npm/node-semver/pull/853">#853</a> fix typos in documentation (<a href="https://redirect.github.com/npm/node-semver/issues/853">#853</a>) (<a href="https://github.com/ankitkumar572005"><code>@ankitkumar572005</code></a>)</li> <li><a href="https://github.com/npm/node-semver/commit/37776c31e2f3448fd852c975888e37b03efe9afe"><code>37776c3</code></a> <a href="https://redirect.github.com/npm/node-semver/pull/846">#846</a> fix BNF grammar to distinguish prerelease from build identifiers (<a href="https://redirect.github.com/npm/node-semver/issues/846">#846</a>) (<a href="https://github.com/abhu85"><code>@abhu85</code></a>, <a href="https://github.com/claude"><code>@claude</code></a>)</li> </ul> <h3>Chores</h3> <ul> <li><a href="https://github.com/npm/node-semver/commit/9542e09ebcd89e916777d35eba868061dad9ed7d"><code>9542e09</code></a> <a href="https://redirect.github.com/npm/node-semver/pull/860">#860</a> template-oss-apply (<a href="https://github.com/owlstronaut"><code>@owlstronaut</code></a>)</li> <li><a href="https://github.com/npm/node-semver/commit/937bc2cd8721db14745c9be123078c44e77a86ef"><code>937bc2c</code></a> <a href="https://redirect.github.com/npm/node-semver/pull/860">#860</a> <code>template-oss-apply@5.0.0</code> (<a href="https://github.com/owlstronaut"><code>@owlstronaut</code></a>)</li> <li><a href="https://github.com/npm/node-semver/commit/6946fefa57bd5e191871a4738b28ca673e003527"><code>6946fef</code></a> <a href="https://redirect.github.com/npm/node-semver/pull/852">#852</a> bump <code>@npmcli/template-oss</code> from 4.29.0 to 4.30.0 (<a href="https://redirect.github.com/npm/node-semver/issues/852">#852</a>) (<a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot], <a href="https://github.com/npm-cli-bot"><code>@npm-cli-bot</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/npm/node-semver/blob/main/CHANGELOG.md">semver's changelog</a>.</em></p> <blockquote> <h2><a href="https://github.com/npm/node-semver/compare/v7.8.0...v7.8.1">7.8.1</a> (2026-05-21)</h2> <h3>Bug Fixes</h3> <ul> <li><a href="https://github.com/npm/node-semver/commit/17aa702d91166472b197a2ea768f085083bee2e4"><code>17aa702</code></a> <a href="https://redirect.github.com/npm/node-semver/pull/869">#869</a> strip build metadata before comparator trimming (<a href="https://redirect.github.com/npm/node-semver/issues/869">#869</a>) (<a href="https://github.com/owlstronaut"><code>@owlstronaut</code></a>)</li> <li><a href="https://github.com/npm/node-semver/commit/5f3ca133e040210b6ea80c350a1d61d9da02e722"><code>5f3ca13</code></a> <a href="https://redirect.github.com/npm/node-semver/pull/867">#867</a> handle prerelease bounds in subset (<a href="https://redirect.github.com/npm/node-semver/issues/867">#867</a>) (<a href="https://github.com/puneetdixit200"><code>@puneetdixit200</code></a>, Puneet Dixit)</li> </ul> <h2><a href="https://github.com/npm/node-semver/compare/v7.7.4...v7.8.0">7.8.0</a> (2026-05-08)</h2> <h3>Features</h3> <ul> <li><a href="https://github.com/npm/node-semver/commit/0d0a0a2582fb1486bc6cd255ba18819c441ed149"><code>0d0a0a2</code></a> <a href="https://redirect.github.com/npm/node-semver/pull/855">#855</a> Add <code>truncate</code> function (<a href="https://redirect.github.com/npm/node-semver/issues/855">#855</a>) (<a href="https://github.com/pjohnmeyer"><code>@pjohnmeyer</code></a>, <a href="https://github.com/owlstronaut"><code>@owlstronaut</code></a>)</li> </ul> <h3>Bug Fixes</h3> <ul> <li><a href="https://github.com/npm/node-semver/commit/3905343045dc293c3694d5e46170b1bb1fb5cf58"><code>3905343</code></a> <a href="https://redirect.github.com/npm/node-semver/pull/859">#859</a> Warn when defaulting to --inc=patch in CLI (<a href="https://github.com/pjohnmeyer"><code>@pjohnmeyer</code></a>)</li> </ul> <h3>Documentation</h3> <ul> <li><a href="https://github.com/npm/node-semver/commit/c368af612e521767e960419e6388c5129c857984"><code>c368af6</code></a> <a href="https://redirect.github.com/npm/node-semver/pull/853">#853</a> fix typos in documentation (<a href="https://redirect.github.com/npm/node-semver/issues/853">#853</a>) (<a href="https://github.com/ankitkumar572005"><code>@ankitkumar572005</code></a>)</li> <li><a href="https://github.com/npm/node-semver/commit/37776c31e2f3448fd852c975888e37b03efe9afe"><code>37776c3</code></a> <a href="https://redirect.github.com/npm/node-semver/pull/846">#846</a> fix BNF grammar to distinguish prerelease from build identifiers (<a href="https://redirect.github.com/npm/node-semver/issues/846">#846</a>) (<a href="https://github.com/abhu85"><code>@abhu85</code></a>, <a href="https://github.com/claude"><code>@claude</code></a>)</li> </ul> <h3>Chores</h3> <ul> <li><a href="https://github.com/npm/node-semver/commit/9542e09ebcd89e916777d35eba868061dad9ed7d"><code>9542e09</code></a> <a href="https://redirect.github.com/npm/node-semver/pull/860">#860</a> template-oss-apply (<a href="https://github.com/owlstronaut"><code>@owlstronaut</code></a>)</li> <li><a href="https://github.com/npm/node-semver/commit/937bc2cd8721db14745c9be123078c44e77a86ef"><code>937bc2c</code></a> <a href="https://redirect.github.com/npm/node-semver/pull/860">#860</a> <code>template-oss-apply@5.0.0</code> (<a href="https://github.com/owlstronaut"><code>@owlstronaut</code></a>)</li> <li><a href="https://github.com/npm/node-semver/commit/6946fefa57bd5e191871a4738b28ca673e003527"><code>6946fef</code></a> <a href="https://redirect.github.com/npm/node-semver/pull/852">#852</a> bump <code>@npmcli/template-oss</code> from 4.29.0 to 4.30.0 (<a href="https://redirect.github.com/npm/node-semver/issues/852">#852</a>) (<a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot], <a href="https://github.com/npm-cli-bot"><code>@npm-cli-bot</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/npm/node-semver/commit/76416081a8413383cf6e24c82cafa438bd076d41"><code>7641608</code></a> chore: release 7.8.1 (<a href="https://redirect.github.com/npm/node-semver/issues/868">#868</a>)</li> <li><a href="https://github.com/npm/node-semver/commit/17aa702d91166472b197a2ea768f085083bee2e4"><code>17aa702</code></a> fix: strip build metadata before comparator trimming (<a href="https://redirect.github.com/npm/node-semver/issues/869">#869</a>)</li> <li><a href="https://github.com/npm/node-semver/commit/5f3ca133e040210b6ea80c350a1d61d9da02e722"><code>5f3ca13</code></a> fix: handle prerelease bounds in subset (<a href="https://redirect.github.com/npm/node-semver/issues/867">#867</a>)</li> <li><a href="https://github.com/npm/node-semver/commit/efa4be6096c1f9b77d9d27d6132f6220c43b4e31"><code>efa4be6</code></a> chore: release 7.8.0 (<a href="https://redirect.github.com/npm/node-semver/issues/847">#847</a>)</li> <li><a href="https://github.com/npm/node-semver/commit/9542e09ebcd89e916777d35eba868061dad9ed7d"><code>9542e09</code></a> chore: template-oss-apply</li> <li><a href="https://github.com/npm/node-semver/commit/937bc2cd8721db14745c9be123078c44e77a86ef"><code>937bc2c</code></a> chore: template-oss-apply@5.0.0</li> <li><a href="https://github.com/npm/node-semver/commit/3905343045dc293c3694d5e46170b1bb1fb5cf58"><code>3905343</code></a> fix: Warn when defaulting to --inc=patch in CLI</li> <li><a href="https://github.com/npm/node-semver/commit/0d0a0a2582fb1486bc6cd255ba18819c441ed149"><code>0d0a0a2</code></a> feat: Add <code>truncate</code> function (<a href="https://redirect.github.com/npm/node-semver/issues/855">#855</a>)</li> <li><a href="https://github.com/npm/node-semver/commit/c368af612e521767e960419e6388c5129c857984"><code>c368af6</code></a> docs: fix typos in documentation (<a href="https://redirect.github.com/npm/node-semver/issues/853">#853</a>)</li> <li><a href="https://github.com/npm/node-semver/commit/6946fefa57bd5e191871a4738b28ca673e003527"><code>6946fef</code></a> chore: bump <code>@npmcli/template-oss</code> from 4.29.0 to 4.30.0 (<a href="https://redirect.github.com/npm/node-semver/issues/852">#852</a>)</li> <li>Additional commits viewable in <a href="https://github.com/npm/node-semver/compare/v7.7.4...v7.8.1">compare view</a></li> </ul> </details> <br /> Updates `which` from 6.0.1 to 7.0.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/npm/node-which/releases">which's releases</a>.</em></p> <blockquote> <h2>v7.0.0</h2> <h2><a href="https://github.com/npm/node-which/compare/v6.0.1...v7.0.0">7.0.0</a> (2026-05-08)</h2> <h3>⚠️ BREAKING CHANGES</h3> <ul> <li><code>which</code> now supports node <code>^22.22.2 || ^24.15.0 || >=26.0.0</code></li> <li>template-oss-apply</li> </ul> <h3>Features</h3> <ul> <li><a href="https://github.com/npm/node-which/commit/471d90ba5f4c8af8e9d8c8604d57b1128255bfb8"><code>471d90b</code></a> <a href="https://redirect.github.com/npm/node-which/pull/176">#176</a> bump to new node engine range (<a href="https://github.com/owlstronaut"><code>@owlstronaut</code></a>)</li> <li><a href="https://github.com/npm/node-which/commit/8aac36f904ed4ba17e269763e0267167ac6a729d"><code>8aac36f</code></a> <a href="https://redirect.github.com/npm/node-which/pull/176">#176</a> template-oss-apply (<a href="https://github.com/owlstronaut"><code>@owlstronaut</code></a>)</li> </ul> <h3>Chores</h3> <ul> <li><a href="https://github.com/npm/node-which/commit/9bdf0037cb47aaa7f89eb7ae0372d7f90b8557d3"><code>9bdf003</code></a> <a href="https://redirect.github.com/npm/node-which/pull/176">#176</a> template-oss-apply (<a href="https://github.com/owlstronaut"><code>@owlstronaut</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/npm/node-which/blob/main/CHANGELOG.md">which's changelog</a>.</em></p> <blockquote> <h2><a href="https://github.com/npm/node-which/compare/v6.0.1...v7.0.0">7.0.0</a> (2026-05-08)</h2> <h3>⚠️ BREAKING CHANGES</h3> <ul> <li><code>which</code> now supports node <code>^22.22.2 || ^24.15.0 || >=26.0.0</code></li> <li>template-oss-apply</li> </ul> <h3>Features</h3> <ul> <li><a href="https://github.com/npm/node-which/commit/471d90ba5f4c8af8e9d8c8604d57b1128255bfb8"><code>471d90b</code></a> <a href="https://redirect.github.com/npm/node-which/pull/176">#176</a> bump to new node engine range (<a href="https://github.com/owlstronaut"><code>@owlstronaut</code></a>)</li> <li><a href="https://github.com/npm/node-which/commit/8aac36f904ed4ba17e269763e0267167ac6a729d"><code>8aac36f</code></a> <a href="https://redirect.github.com/npm/node-which/pull/176">#176</a> template-oss-apply (<a href="https://github.com/owlstronaut"><code>@owlstronaut</code></a>)</li> </ul> <h3>Chores</h3> <ul> <li><a href="https://github.com/npm/node-which/commit/9bdf0037cb47aaa7f89eb7ae0372d7f90b8557d3"><code>9bdf003</code></a> <a href="https://redirect.github.com/npm/node-which/pull/176">#176</a> template-oss-apply (<a href="https://github.com/owlstronaut"><code>@owlstronaut</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/npm/node-which/commit/297db11d58eebe01551ae0875a127a89ee63d2cb"><code>297db11</code></a> chore: release 7.0.0 (<a href="https://redirect.github.com/npm/node-which/issues/177">#177</a>)</li> <li><a href="https://github.com/npm/node-which/commit/9bdf0037cb47aaa7f89eb7ae0372d7f90b8557d3"><code>9bdf003</code></a> chore: template-oss-apply</li> <li><a href="https://github.com/npm/node-which/commit/471d90ba5f4c8af8e9d8c8604d57b1128255bfb8"><code>471d90b</code></a> feat!: bump to new node engine range</li> <li><a href="https://github.com/npm/node-which/commit/8aac36f904ed4ba17e269763e0267167ac6a729d"><code>8aac36f</code></a> feat!: template-oss-apply</li> <li><a href="https://github.com/npm/node-which/commit/482490851357b9c22da31dc4b06736dcac180344"><code>4824908</code></a> deps & engine update</li> <li>See full diff in <a href="https://github.com/npm/node-which/compare/v6.0.1...v7.0.0">compare view</a></li> </ul> </details> <br /> Updates `@jest/globals` from 30.3.0 to 30.4.1 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/jestjs/jest/releases">@jest/globals's releases</a>.</em></p> <blockquote> <h2>v30.4.1</h2> <h2>Features</h2> <ul> <li><code>[jest-config, jest-core, jest-runner, jest-schemas, jest-types]</code> Allow custom runner configuration options via tuple format <code>['runner-path', {options}]</code> (<a href="https://redirect.github.com/jestjs/jest/pull/16141">#16141</a>)</li> </ul> <h2>Fixes</h2> <ul> <li><code>[jest-runtime]</code> Align CJS-from-ESM default export with Node: <code>module.exports</code> is always the ESM default, <code>__esModule</code> unwrapping is no longer applied (<a href="https://redirect.github.com/jestjs/jest/pull/16143">#16143</a>)</li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/jestjs/jest/compare/v30.4.0...v30.4.1">https://github.com/jestjs/jest/compare/v30.4.0...v30.4.1</a></p> <h2>v30.4.0</h2> <p>Big release! 😀</p> <p>Main feature is a rewrite of our custom runtime in preparation for stabilisation of native support of ESM. As part of that work <code>require(esm)</code> module is now supported on Node 24.9+ (still requires <code>--experimental-vm-modules</code> like before).</p> <p>In addition we now support fake timers for the recently released <code>Temporal</code> API in Node v26.</p> <p>React 19 is also supported properly in <code>pretty-format</code>, meaning snapshots of React components now work like they should.</p> <p>Due to all the changes, there might be regressions that snuck in. Please report them!</p> <p>Full list of changes below</p> <h2>Features</h2> <ul> <li><code>[babel-jest]</code> Support collecting coverage from <code>.mts</code>, <code>.cts</code> (and other) files (<a href="https://redirect.github.com/jestjs/jest/pull/15994">#15994</a>)</li> <li><code>[jest-circus, jest-cli, jest-config, jest-core, jest-jasmine2, jest-types]</code> Add <code>--collect-tests</code> flag to discover and list tests without executing them (<a href="https://redirect.github.com/jestjs/jest/pull/16006">#16006</a>)</li> <li><code>[jest-config, jest-runner, jest-worker]</code> Add <code>workerGracefulExitTimeout</code> config option to control how long workers are given to exit before being force-killed (<a href="https://redirect.github.com/jestjs/jest/pull/15984">#15984</a>)</li> <li><code>[jest-config]</code> Add support for <code>jest.config.mts</code> as a valid configuration file (<a href="https://redirect.github.com/jestjs/jest/pull/16005">#16005</a>)</li> <li><code>[jest-config, jest-core, jest-reporters, jest-runner]</code> <code>verbose</code> and <code>silent</code> can now be set per-project; the project-level value overrides the global value for that project's tests (<a href="https://redirect.github.com/jestjs/jest/pull/16133">#16133</a>)</li> <li><code>[@jest/fake-timers]</code> Accept <code>Temporal.Duration</code> in <code>jest.advanceTimersByTime()</code> and <code>jest.advanceTimersByTimeAsync()</code> (<a href="https://redirect.github.com/jestjs/jest/pull/16128">#16128</a>)</li> <li><code>[@jest/fake-timers]</code> Accept <code>Temporal.Instant</code> and <code>Temporal.ZonedDateTime</code> in <code>jest.setSystemTime()</code> and <code>useFakeTimers({now})</code> (<a href="https://redirect.github.com/jestjs/jest/pull/16128">#16128</a>)</li> <li><code>[@jest/fake-timers]</code> Support faking <code>Temporal.Now.*</code> (<a href="https://redirect.github.com/jestjs/jest/pull/16131">#16131</a>)</li> <li><code>[jest-mock]</code> Add <code>clearMocksOnScope(scope)</code> on <code>ModuleMocker</code> for clearing every mock function exposed on a scope object (<a href="https://redirect.github.com/jestjs/jest/pull/16088">#16088</a>)</li> <li><code>[jest-resolve]</code> Add <code>canResolveSync()</code> on <code>Resolver</code> so callers can detect when a user-configured resolver only exports an <code>async</code> hook (<a href="https://redirect.github.com/jestjs/jest/pull/16064">#16064</a>)</li> <li><code>[jest-runtime]</code> Use synchronous <code>evaluate()</code> for ES modules without top-level <code>await</code> on Node versions that support it (v24.9+), and prefer the synchronous transform path when a sync transformer is configured (<a href="https://redirect.github.com/jestjs/jest/pull/16062">#16062</a>)</li> <li><code>[jest-runtime]</code> Support <code>require()</code> of ES modules on Node v24.9+ (<a href="https://redirect.github.com/jestjs/jest/pull/16074">#16074</a>)</li> <li><code>[jest-runtime]</code> Validate TC39 import attributes (<code>with { type: 'json' }</code>) on ESM imports (<a href="https://redirect.github.com/jestjs/jest/pull/16127">#16127</a>)</li> <li><code>[@jest/transform]</code> Add <code>canTransformSync(filename)</code> on <code>ScriptTransformer</code> so callers can pick the sync vs async transform path (<a href="https://redirect.github.com/jestjs/jest/pull/16062">#16062</a>)</li> <li><code>[jest-util]</code> Add <code>isError</code> helper (<a href="https://redirect.github.com/jestjs/jest/pull/16076">#16076</a>)</li> <li><code>[pretty-format]</code> Support React 19 (<a href="https://redirect.github.com/jestjs/jest/pull/16123">#16123</a>)</li> </ul> <h2>Fixes</h2> <ul> <li><code>[expect-utils]</code> Fix <code>toStrictEqual</code> failing on <code>structuredClone</code> results due to cross-realm constructor mismatch (<a href="https://redirect.github.com/jestjs/jest/pull/15959">#15959</a>)</li> <li><code>[@jest/expect-utils]</code> Prevent <code>toMatchObject</code>/subset matching from throwing when encountering exotic iterables (<a href="https://redirect.github.com/jestjs/jest/pull/15952">#15952</a>)</li> <li><code>[fake-timers]</code> Convert <code>Date</code> to milliseconds before passing to <code>@sinonjs/fake-timers</code> (<a href="https://redirect.github.com/jestjs/jest/pull/16029">#16029</a>)</li> <li><code>[jest]</code> Export <code>GlobalConfig</code> and <code>ProjectConfig</code> TypeScript types (<a href="https://redirect.github.com/jestjs/jest/pull/16132">#16132</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/jestjs/jest/blob/main/CHANGELOG.md">@jest/globals's changelog</a>.</em></p> <blockquote> <h2>30.4.1</h2> <h3>Features</h3> <ul> <li><code>[jest-config, jest-core, jest-runner, jest-schemas, jest-types]</code> Allow custom runner configuration options via tuple format <code>['runner-path', {options}]</code> (<a href="https://redirect.github.com/jestjs/jest/pull/16141">#16141</a>)</li> </ul> <h3>Fixes</h3> <ul> <li><code>[jest-runtime]</code> Align CJS-from-ESM default export with Node: <code>module.exports</code> is always the ESM default, <code>__esModule</code> unwrapping is no longer applied (<a href="https://redirect.github.com/jestjs/jest/pull/16143">#16143</a>)</li> </ul> <h2>30.4.0</h2> <h3>Features</h3> <ul> <li><code>[babel-jest]</code> Support collecting coverage from <code>.mts</code>, <code>.cts</code> (and other) files (<a href="https://redirect.github.com/jestjs/jest/pull/15994">#15994</a>)</li> <li><code>[jest-circus, jest-cli, jest-config, jest-core, jest-jasmine2, jest-types]</code> Add <code>--collect-tests</code> flag to discover and list tests without executing them (<a href="https://redirect.github.com/jestjs/jest/pull/16006">#16006</a>)</li> <li><code>[jest-config, jest-runner, jest-worker]</code> Add <code>workerGracefulExitTimeout</code> config option to control how long workers are given to exit before being force-killed (<a href="https://redirect.github.com/jestjs/jest/pull/15984">#15984</a>)</li> <li><code>[jest-config]</code> Add support for <code>jest.config.mts</code> as a valid configuration file (<a href="https://redirect.github.com/jestjs/jest/pull/16005">#16005</a>)</li> <li><code>[jest-config, jest-core, jest-reporters, jest-runner]</code> <code>verbose</code> and <code>silent</code> can now be set per-project; the project-level value overrides the global value for that project's tests (<a href="https://redirect.github.com/jestjs/jest/pull/16133">#16133</a>)</li> <li><code>[@jest/fake-timers]</code> Accept <code>Temporal.Duration</code> in <code>jest.advanceTimersByTime()</code> and <code>jest.advanceTimersByTimeAsync()</code> (<a href="https://redirect.github.com/jestjs/jest/pull/16128">#16128</a>)</li> <li><code>[@jest/fake-timers]</code> Accept <code>Temporal.Instant</code> and <code>Temporal.ZonedDateTime</code> in <code>jest.setSystemTime()</code> and <code>useFakeTimers({now})</code> (<a href="https://redirect.github.com/jestjs/jest/pull/16128">#16128</a>)</li> <li><code>[@jest/fake-timers]</code> Support faking <code>Temporal.Now.*</code> (<a href="https://redirect.github.com/jestjs/jest/pull/16131">#16131</a>)</li> <li><code>[jest-mock]</code> Add <code>clearMocksOnScope(scope)</code> on <code>ModuleMocker</code> for clearing every mock function exposed on a scope object (<a href="https://redirect.github.com/jestjs/jest/pull/16088">#16088</a>)</li> <li><code>[jest-resolve]</code> Add <code>canResolveSync()</code> on <code>Resolver</code> so callers can detect when a user-configured resolver only exports an <code>async</code> hook (<a href="https://redirect.github.com/jestjs/jest/pull/16064">#16064</a>)</li> <li><code>[jest-runtime]</code> Use synchronous <code>evaluate()</code> for ES modules without top-level <code>await</code> on Node versions that support it (v24.9+), and prefer the synchronous transform path when a sync transformer is configured (<a href="https://redirect.github.com/jestjs/jest/pull/16062">#16062</a>)</li> <li><code>[jest-runtime]</code> Support <code>require()</code> of ES modules on Node v24.9+ (<a href="https://redirect.github.com/jestjs/jest/pull/16074">#16074</a>)</li> <li><code>[jest-runtime]</code> Validate TC39 import attributes (<code>with { type: 'json' }</code>) on ESM imports (<a href="https://redirect.github.com/jestjs/jest/pull/16127">#16127</a>)</li> <li><code>[@jest/transform]</code> Add <code>canTransformSync(filename)</code> on <code>ScriptTransformer</code> so callers can pick the sync vs async transform path (<a href="https://redirect.github.com/jestjs/jest/pull/16062">#16062</a>)</li> <li><code>[jest-util]</code> Add <code>isError</code> helper (<a href="https://redirect.github.com/jestjs/jest/pull/16076">#16076</a>)</li> <li><code>[pretty-format]</code> Support React 19 (<a href="https://redirect.github.com/jestjs/jest/pull/16123">#16123</a>)</li> </ul> <h3>Fixes</h3> <ul> <li><code>[expect-utils]</code> Fix <code>toStrictEqual</code> failing on <code>structuredClone</code> results due to cross-realm constructor mismatch (<a href="https://redirect.github.com/jestjs/jest/pull/15959">#15959</a>)</li> <li><code>[@jest/expect-utils]</code> Prevent <code>toMatchObject</code>/subset matching from throwing when encountering exotic iterables (<a href="https://redirect.github.com/jestjs/jest/pull/15952">#15952</a>)</li> <li><code>[fake-timers]</code> Convert <code>Date</code> to milliseconds before passing to <code>@sinonjs/fake-timers</code> (<a href="https://redirect.github.com/jestjs/jest/pull/16029">#16029</a>)</li> <li><code>[jest]</code> Export <code>GlobalConfig</code> and <code>ProjectConfig</code> TypeScript types (<a href="https://redirect.github.com/jestjs/jest/pull/16132">#16132</a>)</li> <li><code>[jest-circus]</code> Prevent crash when <code>asyncError</code> is undefined for non-Error throws (<a href="https://redirect.github.com/jestjs/jest/pull/16003">#16003</a>)</li> <li><code>[jest-circus, jest-jasmine2]</code> Include <code>Error.cause</code> in JSON <code>failureMessages</code> output (<a href="https://redirect.github.com/jestjs/jest/pull/15967">#15967</a>)</li> <li><code>[jest-config]</code> Fix preset path resolution on Windows when the preset uses subpath <code>exports</code> (<a href="https://redirect.github.com/jestjs/jest/pull/15961">#15961</a>)</li> <li><code>[jest-config]</code> Allow <code>collectCoverage</code> and <code>coverageProvider</code> in project config without a validation warning (<a href="https://redirect.github.com/jestjs/jest/pull/16132">#16132</a>)</li> <li><code>[jest-config]</code> Project config validator now emits "is not supported in an individual project configuration" instead of "probably a typing mistake" for known global-only options (<a href="https://redirect.github.com/jestjs/jest/pull/16132">#16132</a>)</li> <li><code>[jest-environment-node]</code> Fix <code>--localstorage-file</code> warning on Node 25+ (<a href="https://redirect.github.com/jestjs/jest/pull/16086">#16086</a>)</li> <li><code>[jest-reporters]</code> Apply global coverage threshold to unmatched pattern files in addition to glob/path thresholds (<a href="https://redirect.github.com/jestjs/jest/pull/16137">#16137</a>)</li> <li><code>[jest-reporters, jest-runner, jest-runtime, jest-transform]</code> Fix coverage report not showing correct code coverage when using <code>projects</code> config option (<a href="https://redirect.github.com/jestjs/jest/pull/16140">#16140</a>)</li> <li><code>[jest-runtime]</code> Resolve <code>expect</code> and <code>@jest/expect</code> from the internal module registry so test-file imports share the same <code>JestAssertionError</code> as the global <code>expect</code> (<a href="https://redirect.github.com/jestjs/jest/pull/16130">#16130</a>)</li> <li><code>[jest-runtime]</code> Improve CJS-from-ESM interop: <code>__esModule</code>/Babel default unwrap, broader named-export coverage, and shared CJS singleton across importers (<a href="https://redirect.github.com/jestjs/jest/pull/16050">#16050</a>)</li> <li><code>[jest-runtime]</code> Load <code>.js</code> files with ESM syntax but no <code>"type":"module"</code> marker as native ESM (<a href="https://redirect.github.com/jestjs/jest/pull/16050">#16050</a>)</li> <li><code>[jest-runtime]</code> Extend the <code>.js</code>-with-ESM-syntax fallback to <code>require()</code> on Node v24.9+ - falls back to <code>require(esm)</code> when the CJS parser rejects ESM syntax (<a href="https://redirect.github.com/jestjs/jest/pull/16078">#16078</a>)</li> <li><code>[jest-runtime]</code> Fix deadlocks and double-evaluation in concurrent ESM and wasm imports (<a href="https://redirect.github.com/jestjs/jest/pull/16050">#16050</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/jestjs/jest/commit/b3b4a09ed3005369dacc7466d1d2122797283785"><code>b3b4a09</code></a> v30.4.1</li> <li><a href="https://github.com/jestjs/jest/commit/5cbb21e0b3037edb42e503ec1a1ce80efad40c20"><code>5cbb21e</code></a> v30.4.0</li> <li>See full diff in <a href="https://github.com/jestjs/jest/commits/v30.4.1/packages/jest-globals">compare view</a></li> </ul> </details> <br /> Updates `@types/node` from 25.5.0 to 25.9.1 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare view</a></li> </ul> </details> <br /> Updates `@typescript-eslint/eslint-plugin` from 8.58.0 to 8.59.4 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/typescript-eslint/typescript-eslint/releases">@typescript-eslint/eslint-plugin's releases</a>.</em></p> <blockquote> <h2>v8.59.4</h2> <h2>8.59.4 (2026-05-18)</h2> <h3>🩹 Fixes</h3> <ul> <li><strong>eslint-plugin:</strong> [no-floating-promises] stack overflow when using recursive types (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12294">#12294</a>)</li> <li><strong>project-service:</strong> throw error cause in <code>getParsedConfigFileFromTSServer</code> (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12321">#12321</a>)</li> <li><strong>typescript-eslint:</strong> export Compatible* types from typescript-eslint to resolve pnpm TS error (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12340">#12340</a>)</li> </ul> <h3>❤️ Thank You</h3> <ul> <li>Evyatar Daud <a href="https://github.com/StyleShit"><code>@StyleShit</code></a></li> <li>Kirk Waiblinger <a href="https://github.com/kirkwaiblinger"><code>@kirkwaiblinger</code></a></li> <li>lumir</li> </ul> <p>See <a href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.59.4">GitHub Releases</a> for more information.</p> <p>You can read about our <a href="https://typescript-eslint.io/users/versioning">versioning strategy</a> and <a href="https://typescript-eslint.io/users/releases">releases</a> on our website.</p> <h2>v8.59.3</h2> <h2>8.59.3 (2026-05-11)</h2> <p>This was a version bump only, there were no code changes.</p> <p>See <a href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.59.3">GitHub Releases</a> for more information.</p> <p>You can read about our <a href="https://typescript-eslint.io/users/versioning">versioning strategy</a> and <a href="https://typescript-eslint.io/users/releases">releases</a> on our website.</p> <h2>v8.59.2</h2> <h2>8.59.2 (2026-05-04)</h2> <h3>🩹 Fixes</h3> <ul> <li><strong>eslint-plugin:</strong> [no-unsafe-type-assertion] handle crash on recursive template literal types (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12150">#12150</a>)</li> <li><strong>eslint-plugin:</strong> [no-deprecated] object destructuring values should be treated as declarations (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12292">#12292</a>)</li> <li><strong>rule-tester:</strong> add TypeScript as a peer dependency (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12288">#12288</a>)</li> </ul> <h3>❤️ Thank You</h3> <ul> <li>Dariusz Czajkowski</li> <li>Dima Barabash</li> <li>Kirk Waiblinger <a href="https://github.com/kirkwaiblinger"><code>@kirkwaiblinger</code></a></li> </ul> <p>See <a href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.59.2">GitHub Releases</a> for more information.</p> <p>You can read about our <a href="https://typescript-eslint.io/users/versioning">versioning strategy</a> and <a href="https://typescript-eslint.io/users/releases">releases</a> on our website.</p> <h2>v8.59.1</h2> <h2>8.59.1 (2026-04-27)</h2> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md">@typescript-eslint/eslint-plugin's changelog</a>.</em></p> <blockquote> <h2>8.59.4 (2026-05-18)</h2> <h3>🩹 Fixes</h3> <ul> <li><strong>eslint-plugin:</strong> [no-floating-promises] stack overflow when using recursive types (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12294">#12294</a>)</li> </ul> <h3>❤️ Thank You</h3> <ul> <li>Evyatar Daud <a href="https://github.com/StyleShit"><code>@StyleShit</code></a></li> </ul> <p>See <a href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.59.4">GitHub Releases</a> for more information.</p> <p>You can read about our <a href="https://typescript-eslint.io/users/versioning">versioning strategy</a> and <a href="https://typescript-eslint.io/users/releases">releases</a> on our website.</p> <h2>8.59.3 (2026-05-11)</h2> <p>This was a version bump only for eslint-plugin to align it with other projects, there were no code changes.</p> <p>See <a href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.59.3">GitHub Releases</a> for more information.</p> <p>You can read about our <a href="https://typescript-eslint.io/users/versioning">versioning strategy</a> and <a href="https://typescript-eslint.io/users/releases">releases</a> on our website.</p> <h2>8.59.2 (2026-05-04)</h2> <h3>🩹 Fixes</h3> <ul> <li><strong>eslint-plugin:</strong> [no-deprecated] object destructuring values should be treated as declarations (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12292">#12292</a>)</li> <li><strong>eslint-plugin:</strong> [no-unsafe-type-assertion] handle crash on recursive template literal types (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12150">#12150</a>)</li> </ul> <h3>❤️ Thank You</h3> <ul> <li>Dima Barabash</li> <li>Kirk Waiblinger <a href="https://github.com/kirkwaiblinger"><code>@kirkwaiblinger</code></a></li> </ul> <p>See <a href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.59.2">GitHub Releases</a> for more information.</p> <p>You can read about our <a href="https://typescript-eslint.io/users/versioning">versioning strategy</a> and <a href="https://typescript-eslint.io/users/releases">releases</a> on our website.</p> <h2>8.59.1 (2026-04-27)</h2> <h3>🩹 Fixes</h3> <ul> <li><strong>eslint-plugin:</strong> [no-unnecessary-condition] treat void as nullish in no-unnecessary-condition (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12241">#12241</a>)</li> <li><strong>eslint-plugin:</strong> [no-unnecessary-type-arguments] handle instantiation expressions (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12220">#12220</a>)</li> <li><strong>eslint-plugin:</strong> [no-unnecessary-type-assertion] avoid false positive in logical assignment assertions (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12278">#12278</a>)</li> <li><strong>eslint-plugin:</strong> [no-unnecessary-type-assertion] preserve phantom type arguments in generic inference (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12269">#12269</a>)</li> <li><strong>eslint-plugin:</strong> [no-unnecessary-type-assertion] preserve index signatures in undefined unions (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12257">#12257</a>)</li> <li><strong>eslint-plugin:</strong> [no-unnecessary-type-assertion] fix crash "TypeError: checker.getTypeArguments is not a function" (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12246">#12246</a>)</li> </ul> <h3>❤️ Thank You</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/ca6ca1431b6d18235297a7e29feb5d98f012dff2"><code>ca6ca14</code></a> chore(release): publish 8.59.4</li> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/4302433ae6bf93d4ddc35264ad1b951254758566"><code>4302433</code></a> fix(eslint-plugin): [no-floating-promises] stack overflow when using recursiv...</li> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/10b79f1ba8e98610a3af85152a1b3b406f91e633"><code>10b79f1</code></a> chore(deps): update dependency eslint to v10.4.0 (<a href="https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin/issues/12339">#12339</a>)</li> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/2a6765d9628dc776f8127c96f088bb807c0bcab2"><code>2a6765d</code></a> chore: clenaup <code>getAwaitedType</code> from <code>typescript.d.ts</code> (<a href="https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin/issues/12302">#12302</a>)</li> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/48e13c0261e3cb1bf4f4dfaa462cdb3a56ef7383"><code>48e13c0</code></a> chore(release): publish 8.59.3</li> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/e26dc8003ababf078aad4df17765ee4cea30644c"><code>e26dc80</code></a> docs: update stale links to latest (<a href="https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin/issues/12313">#12313</a>)</li> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/44f9625336841a8ee3eb01a9e02e49b1d7b12648"><code>44f9625</code></a> chore(deps): update vitest monorepo to v4.1.5 (<a href="https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin/issues/12307">#12307</a>)</li> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/2ec35f1760aade4df4c631d76d78c7ed5e136333"><code>2ec35f1</code></a> chore(release): publish 8.59.2</li> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/ec3ef25390f7daf5a9ff33a60282bdbbb49ab0f3"><code>ec3ef25</code></a> test: make no-useless-empty-export tests fully static (<a href="https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin/issues/12260">#12260</a>)</li> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/60d0a513870d833617374ff8ea256d86ca3cbbbb"><code>60d0a51</code></a> chore(eslint-plugin): switch auto-generated test cases to hand-written in no-...</li> <li>Additional commits viewable in <a href="https://github.com/typescript-eslint/typescript-eslint/commits/v8.59.4/packages/eslint-plugin">compare view</a></li> </ul> </details> <br /> Updates `eslint` from 10.1.0 to 10.4.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/eslint/eslint/releases">eslint's releases</a>.</em></p> <blockquote> <h2>v10.4.0</h2> <h2>Features</h2> <ul> <li><a href="https://github.com/eslint/eslint/commit/1a45ec596af1dd5f880e6874cb8f24dafb6a7ecf"><code>1a45ec5</code></a> feat: check sequence expressions in <code>for-direction</code> (<a href="https://redirect.github.com/eslint/eslint/issues/20701">#20701</a>) (kuldeep kumar)</li> <li><a href="https://github.com/eslint/eslint/commit/450040bd89b989b3531824c6be45feb5fe3d936b"><code>450040b</code></a> feat: add <code>includeIgnoreFile()</code> to <code>eslint/config</code> (<a href="https://redirect.github.com/eslint/eslint/issues/20735">#20735</a>) (Kirk Waiblinger)</li> </ul> <h2>Bug Fixes</h2> <ul> <li><a href="https://github.com/eslint/eslint/commit/544c0c3da589166ad8e5d634f35d3d06701c57be"><code>544c0c3</code></a> fix: escape code path DOT labels in debug output (<a href="https://redirect.github.com/eslint/eslint/issues/20866">#20866</a>) (Pixel998)</li> <li><a href="https://github.com/eslint/eslint/commit/6799431203f2579632d0870f98ba132067f4040c"><code>6799431</code></a> fix: update dependency <code>@eslint/config-helpers</code> to ^0.6.0 (<a href="https://redirect.github.com/eslint/eslint/issues/20850">#20850</a>) (renovate[bot])</li> <li><a href="https://github.com/eslint/eslint/commit/f078fef5005dceb14fc162aab7c7200e027688dd"><code>f078fef</code></a> fix: handle non-array deprecated rule replacements (<a href="https://redirect.github.com/eslint/eslint/issues/20825">#20825</a>) (xbinaryx)</li> </ul> <h2>Documentation</h2> <ul> <li><a href="https://github.com/eslint/eslint/commit/7e52a7151fb92eec0e0f67fe4e5ddbd1ccce796f"><code>7e52a71</code></a> docs: add mention of <code>@eslint-react/eslint-plugin</code> (<a href="https://redirect.github.com/eslint/eslint/issues/20869">#20869</a>) (Pavel)</li> <li><a href="https://github.com/eslint/eslint/commit/db3468ba746407d7f286f18f7ea9db6df0e3bc08"><code>db3468b</code></a> docs: tweak wording around ambiguous CJS-vs-ESM config (<a href="https://redirect.github.com/eslint/eslint/issues/20865">#20865</a>) (Kirk Waiblinger)</li> <li><a href="https://github.com/eslint/eslint/commit/90846643ec6e97d447ae0d831fabe6d17b0a998a"><code>9084664</code></a> docs: Update README (GitHub Actions Bot)</li> <li><a href="https://github.com/eslint/eslint/commit/9cc73875046e3c4b8313644cbb1e99e26b36bd3f"><code>9cc7387</code></a> docs: Update README (GitHub Actions Bot)</li> <li><a href="https://github.com/eslint/eslint/commit/3d7b5484407403817aa9071a394d336d8ea96eb5"><code>3d7b548</code></a> docs: Update README (GitHub Actions Bot)</li> <li><a href="https://github.com/eslint/eslint/commit/191ec3c0a3f94ce0f110df761f0b2b8949011ccb"><code>191ec3c</code></a> docs: Update README (GitHub Actions Bot)</li> </ul> <h2>Chores</h2> <ul> <li><a href="https://github.com/eslint/eslint/commit/6616856f28fa514a30f87b5539fc100d739a94bf"><code>6616856</code></a> chore: upgrade knip to v6 (<a href="https://redirect.github.com/eslint/eslint/issues/20875">#20875</a>) (Pixel998)</li> <li><a href="https://github.com/eslint/eslint/commit/d13b084a3ad02f926e9addaa35fc383759ea5554"><code>d13b084</code></a> ci: ensure auto-created PRs run CI (<a href="https://redirect.github.com/eslint/eslint/issues/20860">#20860</a>) (lumir)</li> <li><a href="https://github.com/eslint/eslint/commit/e71c7af86dce9acc1d18cb12d2184309f6841594"><code>e71c7af</code></a> ci: bump pnpm/action-setup from 6.0.5 to 6.0.7 (<a href="https://redirect.github.com/eslint/eslint/issues/20862">#20862</a>) (dependabot[bot])</li> <li><a href="https://github.com/eslint/eslint/commit/d84393dea170f54191fd20c8268b52c81c0ccd99"><code>d84393d</code></a> test: add unit tests for SuppressionsService.applySuppressions() (<a href="https://redirect.github.com/eslint/eslint/issues/20863">#20863</a>) (kuldeep kumar)</li> <li><a href="https://github.com/eslint/eslint/commit/24db8cb8e6f07fba667121777a15b1785486be94"><code>24db8cb</code></a> test: add tests for SuppressionsService.save() (<a href="https://redirect.github.com/eslint/eslint/issues/20802">#20802</a>) (kuldeep kumar)</li> <li><a href="https://github.com/eslint/eslint/commit/2ef0549cac4a9537e4c3a26b9f3edd4c99476bf6"><code>2ef0549</code></a> chore: update ecosystem plugins (<a href="https://redirect.github.com/eslint/eslint/issues/20857">#20857</a>) (github-actions[bot])</li> <li><a href="https://github.com/eslint/eslint/commit/a4297918d264d229a06cd96051ef9b91c7b86732"><code>a429791</code></a> ci: remove <code>eslint-webpack-plugin</code> types integration test (<a href="https://redirect.github.com/eslint/eslint/issues/20668">#20668</a>) (Milos Djermanovic)</li> <li><a href="https://github.com/eslint/eslint/commit/9e37386aa7f2ce220b2ef74a6afbac5f6b3527c5"><code>9e37386</code></a> chore: replace <code>recast</code> with range approach in code-sample-minimizer (<a href="https://redirect.github.com/eslint/eslint/issues/20682">#20682</a>) (Copilot)</li> <li><a href="https://github.com/eslint/eslint/commit/0dd1f9ffc9a07704d46e2a4c8d4ccc0d0908b0c0"><code>0dd1f9f</code></a> test: disable warning for <code>vm.constants.USE_MAIN_CONTEXT_DEFAULT_LOADER</code> (<a href="https://redirect.github.com/eslint/eslint/issues/20845">#20845</a>) (Francesco Trotta)</li> <li><a href="https://github.com/eslint/eslint/commit/9da3c7bc92d9579f8db19ecb56e718538d09db2b"><code>9da3c7b</code></a> refactor: remove deprecated <code>meta.language</code> and migrate <code>meta.dialects</code> (<a href="https://redirect.github.com/eslint/eslint/issues/20716">#20716</a>) (Pixel998)</li> <li><a href="https://github.com/eslint/eslint/commit/2099ed12a0a74c3d7f0808514362af2499b4fe2b"><code>2099ed1</code></a> refactor: add <code>meta.defaultOptions</code> to more rules, enable linting (<a href="https://redirect.github.com/eslint/eslint/issues/20800">#20800</a>) (xbinaryx)</li> <li><a href="https://github.com/eslint/eslint/commit/f1dfbc9ca57196de7092e1888cc99427bd6fe06e"><code>f1dfbc9</code></a> chore: update ecosystem plugins (<a href="https://redirect.github.com/eslint/eslint/issues/20836">#20836</a>) (github-actions[bot])</li> <li><a href="https://github.com/eslint/eslint/commit/c75941390c14728806cd4baef4f6072f6de78318"><code>c759413</code></a> ci: bump pnpm/action-setup from 6.0.3 to 6.0.5 (<a href="https://redirect.github.com/eslint/eslint/issues/20843">#20843</a>) (dependabot[bot])</li> <li><a href="https://github.com/eslint/eslint/commit/5b817d6fdc9ae2c35b528dc662b2eca8f40f64aa"><code>5b817d6</code></a> test: add unit tests for lib/shared/ast-utils (<a href="https://redirect.github.com/eslint/eslint/issues/20838">#20838</a>) (kuldeep kumar)</li> <li><a href="https://github.com/eslint/eslint/commit/1c13ae3934c198c494e5958fa3a68b33244ff06a"><code>1c13ae3</code></a> test: add unit tests for lib/shared/severity (<a href="https://redirect.github.com/eslint/eslint/issues/20835">#20835</a>) (kuldeep kumar)</li> </ul> <h2>v10.3.0</h2> <h2>Features</h2> <ul> <li><a href="https://github.com/eslint/eslint/commit/379571a975f2b24d88037b9de2e72ec61d004130"><code>379571a</code></a> feat: add suggestions for no-unused-private-class-members (<a href="https://redirect.github.com/eslint/eslint/issues/20773">#20773</a>) (sethamus)</li> </ul> <h2>Bug Fixes</h2> <ul> <li><a href="https://github.com/eslint/eslint/commit/b6ae5cf07b9b51802367539cb24b245b61eaa37c"><code>b6ae5cf</code></a> fix: handle unavailable require cache (<a href="https://redirect.github.com/eslint/eslint/issues/20812">#20812</a>) (Simon Podlipsky)</li> <li><a href="https://github.com/eslint/eslint/commit/6fb3685bcbe9a6f72fd7dfb9129686b6fb96b0bd"><code>6fb3685</code></a> fix: rule suggestions cause continuation in class body (<a href="https://redirect.github.com/eslint/eslint/issues/20787">#20787</a>) (Milos Djermanovic)</li> </ul> <h2>Documentation</h2> <ul> <li><a href="https://github.com/eslint/eslint/commit/32cc7ab4ec653ce89da92deb5c40a9f4fc707fe5"><code>32cc7ab</code></a> docs: fix typos in docs and comments (<a href="https://redirect.github.com/eslint/eslint/issues/20809">#20809</a>) (Tanuj Kanti)</li> <li><a href="https://github.com/eslint/eslint/commit/7f479376a2fa463d823ab762db6bb37ce8d2ee8f"><code>7f47937</code></a> docs: Update README (GitHub Actions Bot)</li> </ul> <h2>Chores</h2> <ul> <li><a href="https://github.com/eslint/eslint/commit/d32235ec19ceea211fa86452afa383ca05f5c2f9"><code>d32235e</code></a> ci: use pnpm in <code>eslint-flat-config-utils</code> type integration test (<a href="https://redirect.github.com/eslint/eslint/issues/20826">#20826</a>) (Francesco Trotta)</li> <li><a href="https://github.com/eslint/eslint/commit/3ffb14ea517de750ed1181579ef844af342e4096"><code>3ffb14e</code></a> chore: clean up typos in comments and JSDoc (<a href="https://redirect.github.com/eslint/eslint/issues/20821">#20821</a>) (Pixel998)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/eslint/eslint/commit/452c4010c07dc2e36fe6ec6a8c48298878e86887"><code>452c401</code></a> 10.4.0</li> <li><a href="https://github.com/eslint/eslint/commit/b6417e8b55c9525070d6e168b485ce6ff21688ed"><code>b6417e8</code></a> Build: changelog update for 10.4.0</li> <li><a href="https://github.com/eslint/eslint/commit/6616856f28fa514a30f87b5539fc100d739a94bf"><code>6616856</code></a> chore: upgrade knip to v6 (<a href="https://redirect.github.com/eslint/eslint/issues/20875">#20875</a>)</li> <li><a href="https://github.com/eslint/eslint/commit/d13b084a3ad02f926e9addaa35fc383759ea5554"><code>d13b084</code></a> ci: ensure auto-created PRs run CI (<a href="https://redirect.github.com/eslint/eslint/issues/20860">#20860</a>)</li> <li><a href="https://github.com/eslint/eslint/commit/7e52a7151fb92eec0e0f67fe4e5ddbd1ccce796f"><code>7e52a71</code></a> docs: add mention of <code>@eslint-react/eslint-plugin</code> (<a href="https://redirect.github.com/eslint/eslint/issues/20869">#20869</a>)</li> <li><a href="https://github.com/eslint/eslint/commit/e71c7af86dce9acc1d18cb12d2184309f6841594"><code>e71c7af</code></a> ci: bump pnpm/action-setup from 6.0.5 to 6.0.7 (<a href="https://redirect.github.com/eslint/eslint/issues/20862">#20862</a>)</li> <li><a href="https://github.com/eslint/eslint/commit/544c0c3da589166ad8e5d634f35d3d06701c57be"><code>544c0c3</code></a> fix: escape code path DOT labels in debug output (<a href="https://redirect.github.com/eslint/eslint/issues/20866">#20866</a>)</li> <li><a href="https://github.com/eslint/eslint/commit/db3468ba746407d7f286f18f7ea9db6df0e3bc08"><code>db3468b</code></a> docs: tweak wording around ambiguous CJS-vs-ESM config (<a href="https://redirect.github.com/eslint/eslint/issues/20865">#20865</a>)</li> <li><a href="https://github.com/eslint/eslint/commit/d84393dea170f54191fd20c8268b52c81c0ccd99"><code>d84393d</code></a> test: add unit tests for SuppressionsService.applySuppressions() (<a href="https://redirect.github.com/eslint/eslint/issues/20863">#20863</a>)</li> <li><a href="https://github.com/eslint/eslint/commit/90846643ec6e97d447ae0d831fabe6d17b0a998a"><code>9084664</code></a> docs: Update README</li> <li>Additional commits viewable in <a href="https://github.com/eslint/eslint/compare/v10.1.0...v10.4.0">compare view</a></li> </ul> </details> <br /> Updates `globals` from 17.4.0 to 17.6.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/sindresorhus/globals/releases">globals's releases</a>.</em></p> <blockquote> <h2>v17.6.0</h2> <ul> <li>Update globals (2026-05-01) (<a href="https://redirect.github.com/sindresorhus/globals/issues/343">#343</a>) 00a4dd9</li> </ul> <hr /> <p><a href="https://github.com/sindresorhus/globals/compare/v17.5.0...v17.6.0">https://github.com/sindresorhus/globals/compare/v17.5.0...v17.6.0</a></p> <h2>v17.5.0</h2> <ul> <li>Update globals (2026-04-12) (<a href="https://redirect.github.com/sindresorhus/globals/issues/342">#342</a>) 5d84602</li> </ul> <hr /> <p><a href="https://github.com/sindresorhus/globals/compare/v17.4.0...v17.5.0">https://github.com/sindresorhus/globals/compare/v17.4.0...v17.5.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/sindresorhus/globals/commit/6b15870f1c08b60b5b57afe45a703d9ed0be39bc"><code>6b15870</code></a> 17.6.0</li> <li><a href="https://github.com/sindresorhus/globals/commit/00a4dd9821830a9b044798120e86b1bb1a54648d"><code>00a4dd9</code></a> Update globals (2026-05-01) (<a href="https://redirect.github.com/sindresorhus/globals/issues/343">#343</a>)</li> <li><a href="https://github.com/sindresorhus/globals/commit/b8170c8e1d648291b613c5b39a69652c796fa36c"><code>b8170c8</code></a> 17.5.0</li> <li><a href="https://github.com/sindresorhus/globals/commit/5d846029679832931f38ced6381cc95bcb9abd80"><code>5d84602</code></a> Update globals (2026-04-12) (<a href="https://redirect.github.com/sindresorhus/globals/issues/342">#342</a>)</li> <li><a href="https://github.com/sindresorhus/globals/commit/1b727e5f4cc39121b8e77b9f27574a8ca27391fc"><code>1b727e5</code></a> Fix build script for ES globals (<a href="https://redirect.github.com/sindresorhus/globals/issues/341">#341</a>)</li> <li>See full diff in <a href="https://github.com/sindresorhus/globals/compare/v17.4.0...v17.6.0">compare view</a></li> </ul> </details> <br /> Updates `jest` from 30.3.0 to 30.4.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/jestjs/jest/releases">jest's releases</a>.</em></p> <blockquote> <h2>v30.4.2</h2> <h1>Fixes</h1> <ul> <li><code>[jest-runtime]</code> Fix named imports from CJS modules whose <code>module.exports</code> is a function with own-property exports (<a href="https://redirect.github.com/jestjs/jest/pull/16150">#16150</a>)</li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/jestjs/jest/compare/v30.4.1...v30.4.2">https://github.com/jestjs/jest/compare/v30.4.1...v30.4.2</a></p> <h2>v30.4.1</h2> <h2>Features</h2> <ul> <li><code>[jest-config, jest-core, jest-runner, jest-schemas, jest-types]</code> Allow custom runner configuration options via tuple format <code>['runner-path', {options}]</code> (<a href="https://redirect.github.com/jestjs/jest/pull/16141">#16141</a>)</li> </ul> <h2>Fixes</h2> <ul> <li><code>[jest-runtime]</code> Align CJS-from-ESM default export with Node: <code>module.exports</code> is always the ESM default, <code>__esModule</code> unwrapping is no longer applied (<a href="https://redirect.github.com/jestjs/jest/pull/16143">#16143</a>)</li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/jestjs/jest/compare/v30.4.0...v30.4.1">https://github.com/jestjs/jest/compare/v30.4.0...v30.4.1</a></p> <h2>v30.4.0</h2> <p>Big release! 😀</p> <p>Main feature is a rewrite of our custom runtime in preparation for stabilisation of native support of ESM. As part of that work <code>require(esm)</code> module is now supported on Node 24.9+ (still requires <code>--experimental-vm-modules</code> like before).</p> <p>In addition we now support fake timers for the recently released <code>Temporal</code> API in Node v26.</p> <p>React 19 is also supported properly in <code>pretty-format</code>, meaning snapshots of React components now work like they should.</p> <p>Due to all the changes, there might be regressions that snuck in. Please report them!</p> <p>Full list of changes below</p> <h2>Features</h2> <ul> <li><code>[babel-jest]</code> Support collecting coverage from <code>.mts</code>, <code>.cts</code> (and other) files (<a href="https://redirect.github.com/jestjs/jest/pull/15994">#15994</a>)</li> <li><code>[jest-circus, jest-cli, jest-config, jest-core, jest-jasmine2, jest-types]</code> Add <code>--collect-tests</code> flag to discover and list tests without executing them (<a href="https://redirect.github.com/jestjs/jest/pull/16006">#16006</a>)</li> <li><code>[jest-config, jest-runner, jest-worker]</code> Add <code>workerGracefulExitTimeout</code> config option to control how long workers are given to exit before being force-killed (<a href="https://redirect.github.com/jestjs/jest/pull/15984">#15984</a>)</li> <li><code>[jest-config]</code> Add support for <code>jest.config.mts</code> as a valid configuration file (<a href="https://redirect.github.com/jestjs/jest/pull/16005">#16005</a>)</li> <li><code>[jest-config, jest-core, jest-reporters, jest-runner]</code> <code>verbose</code> and <code>silent</code> can now be set per-project; the project-level value overrides the global value for that project's tests (<a href="https://redirect.github.com/jestjs/jest/pull/16133">#16133</a>)</li> <li><code>[@jest/fake-timers]</code> Accept <code>Temporal.Duration</code> in <code>jest.advanceTimersByTime()</code> and <code>jest.advanceTimersByTimeAsync()</code> (<a href="https://redirect.github.com/jestjs/jest/pull/16128">#16128</a>)</li> <li><code>[@jest/fake-timers]</code> Accept <code>Temporal.Instant</code> and <code>Temporal.ZonedDateTime</code> in <code>jest.setSystemTime()</code> and <code>useFakeTimers({now})</code> (<a href="https://redirect.github.com/jestjs/jest/pull/16128">#16128</a>)</li> <li><code>[@jest/fake-timers]</code> Support faking <code>Temporal.Now.*</code> (<a href="https://redirect.github.com/jestjs/jest/pull/16131">#16131</a>)</li> <li><code>[jest-mock]</code> Add <code>clearMocksOnScope(scope)</code> on <code>ModuleMocker</code> for clearing every mock function exposed on a scope object (<a href="https://redirect.github.com/jestjs/jest/pull/16088">#16088</a>)</li> <li><code>[jest-resolve]</code> Add <code>canResolveSync()</code> on <code>Resolver</code> so callers can detect when a user-configured resolver only exports an <code>async</code> hook (<a href="https://redirect.github.com/jestjs/jest/pull/16064">#16064</a>)</li> <li><code>[jest-runtime]</code> Use synchronous <code>evaluate()</code> for ES modules without top-level <code>await</code> on Node versions that support it (v24.9+), and prefer the synchronous transform path when a sync transformer is configured (<a href="https://redirect.github.com/jestjs/jest/pull/16062">#16062</a>)</li> <li><code>[jest-runtime]</code> Support <code>require()</code> of ES modules on Node v24.9+ (<a href="https://redirect.github.com/jestjs/jest/pull/16074">#16074</a>)</li> <li><code>[jest-runtime]</code> Validate TC39 import attributes (<code>with { type: 'json' }</code>) on ESM imports (<a href="https://redirect.github.com/jestjs/jest/pull/16127">#16127</a>)</li> <li><code>[@jest/transform]</code> Add <code>canTransformSync(filename)</code> on <code>ScriptTransformer</code> so callers can pick the sync vs async transform path (<a href="https://redirect.github.com/jestjs/jest/pull/16062">#16062</a>)</li> <li><code>[jest-util]</code> Add <code>isError</code> helper (<a href="https://redirect.github.com/jestjs/jest/pull/16076">#16076</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/jestjs/jest/blob/main/CHANGELOG.md">jest's changelog</a>.</em></p> <blockquote> <h2>30.4.2</h2> <h3>Fixes</h3> <ul> <li><code>[jest-runtime]</code> Fix named imports from CJS modules whose <code>module.exports</code> is a function with own-property exports (<a href="https://redirect.github.com/jestjs/jest/pull/16150">#16150</a>)</li> </ul> <h2>30.4.1</h2> <h3>Features</h3> <ul> <li><code>[jest-config, jest-core, jest-runner, jest-schemas, jest-types]</code> Allow custom runner configuration options via tuple format <code>['runner-path', {options}]</code> (<a href="https://redirect.github.com/jestjs/jest/pull/16141">#16141</a>)</li> </ul> <h3>Fixes</h3> <ul> <li><code>[jest-runtime]</code> Align CJS-from-ESM default export with Node: <code>module.exports</code> is always the ESM default, <code>__esModule</code> unwrapping is no longer applied (<a href="https://redirect.github.com/jestjs/jest/pull/16143">#16143</a>)</li> </ul> <h2>30.4.0</h2> <h3>Features</h3> <ul> <li><code>[babel-jest]</code> Support collecting coverage from <code>.mts</code>, <code>.cts</code> (and other) files (<a href="https://redirect.github.com/jestjs/jest/pull/15994">#15994</a>)</li> <li><code>[jest-circus, jest-cli, jest-config, jest-core, jest-jasmine2, jest-types]</code> Add <code>--collect-tests</code> flag to discover and list tests without executing them (<a href="https://redirect.github.com/jestjs/jest/pull/16006">#16006</a>)</li> <li><code>[jest-config, jest-runner, jest-worker]</code> Add <code>workerGracefulExitTimeout</code> config option to control how long workers are given to exit before being force-killed (<a href="https://redirect.github.com/jestjs/jest/pull/15984">#15984</a>)</li> <li><code>[jest-config]</code> Add support for <code>jest.config.mts</code> as a valid configuration file (<a href="https://redirect.github.com/jestjs/jest/pull/16005">#16005</a>)</li> <li><code>[jest-config, jest-core, jest-reporters, jest-runner]</code> <code>verbose</code> and <code>silent</code> can now be set per-project; t... _Description has been truncated_ Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Jérôme Prinet <jprinet@gradle.com>
GitHub Actions for Gradle builds
This repository contains a set of GitHub Actions that are useful for building Gradle projects on GitHub.
Note
⚡️ Choice of caching providers in v6
To provide the fastest possible build experience this action includes Enhanced Caching via
gradle-actions-caching, an optimized provider powered by proprietary technology. This feature is free for all public repositories and is currently available as a Free Preview for private repositories.Prefer a 100% Open Source (MIT) path? We also provide a Basic Caching provider as a thin wrapper over
actions/cache. This provider is free for all repositories (public and private) and can be enabled at any time by settingcache-provider: basic.For a full breakdown of the components, usage tiers, and our Safe Harbor data privacy commitment, see our Distribution & Licensing Guide.
The setup-gradle action
The setup-gradle action can be used to configure Gradle for optimal execution on any platform supported by GitHub Actions.
This replaces the previous gradle/gradle-build-action, which now delegates to this implementation.
The recommended way to execute any Gradle build is with the help of the Gradle Wrapper, and the examples assume that the Gradle Wrapper has been configured for the project. See this example if your project doesn't use the Gradle Wrapper.
Example usage
name: Build
on:
push:
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v6
- name: Setup Java
uses: actions/setup-java@v5
with:
distribution: 'temurin'
java-version: 17
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v6
- name: Build with Gradle
run: ./gradlew build
See the full action documentation for more advanced usage scenarios.
The dependency-submission action
Generates and submits a dependency graph for a Gradle project, allowing GitHub to alert about reported vulnerabilities in your project dependencies.
The following workflow will generate a dependency graph for a Gradle project and submit it immediately to the repository via the Dependency Submission API. For most projects, this default configuration should be all that you need.
Simply add this as a new workflow file to your repository (eg .github/workflows/dependency-submission.yml).
name: Dependency Submission
on:
push:
branches: [ 'main' ]
permissions:
contents: write
jobs:
dependency-submission:
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v6
- name: Setup Java
uses: actions/setup-java@v5
with:
distribution: 'temurin'
java-version: 17
- name: Generate and submit dependency graph
uses: gradle/actions/dependency-submission@v6
See the full action documentation for more advanced usage scenarios.
The wrapper-validation action
The wrapper-validation action validates the checksums of all Gradle Wrapper JAR files present in the repository and fails if any unknown Gradle Wrapper JAR files are found.
The action should be run in the root of the repository, as it will recursively search for any files named gradle-wrapper.jar.
Starting with v4 the setup-gradle action will perform wrapper validation on each execution.
If you are using setup-gradle in your workflows, it is unlikely that you will need to use the wrapper-validation action.
Example workflow
name: "Validate Gradle Wrapper"
on:
push:
pull_request:
jobs:
validation:
name: "Validation"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: gradle/actions/wrapper-validation@v6
See the full action documentation for more advanced usage scenarios.