From 037ab568c5906da7a603733ef95f5300400bdcd5 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 11 Sep 2026 13:06:58 +0000 Subject: [PATCH] chore(release): new release --- .changeset/biome-check.md | 5 --- .changeset/document-eslint-suppressions.md | 5 --- .changeset/fold-quiet-into-report-as.md | 5 --- .changeset/lint-on-start.md | 5 --- .changeset/lint-only-what-changed.md | 5 --- .../merge-eslint-and-stylelint-plugins.md | 5 --- .changeset/oxlint-check.md | 5 --- .changeset/replace-glob-dependencies.md | 5 --- .changeset/require-node-22.md | 5 --- .changeset/rewrite-to-ecmascript-modules.md | 5 --- .changeset/shared-threads.md | 5 --- .changeset/typescript-check.md | 5 --- .changeset/union-report-options.md | 5 --- .changeset/validate-from-the-webpack-hook.md | 5 --- .changeset/watch-what-a-check-reads.md | 5 --- CHANGELOG.md | 38 +++++++++++++++++++ package.json | 2 +- 17 files changed, 39 insertions(+), 76 deletions(-) delete mode 100644 .changeset/biome-check.md delete mode 100644 .changeset/document-eslint-suppressions.md delete mode 100644 .changeset/fold-quiet-into-report-as.md delete mode 100644 .changeset/lint-on-start.md delete mode 100644 .changeset/lint-only-what-changed.md delete mode 100644 .changeset/merge-eslint-and-stylelint-plugins.md delete mode 100644 .changeset/oxlint-check.md delete mode 100644 .changeset/replace-glob-dependencies.md delete mode 100644 .changeset/require-node-22.md delete mode 100644 .changeset/rewrite-to-ecmascript-modules.md delete mode 100644 .changeset/shared-threads.md delete mode 100644 .changeset/typescript-check.md delete mode 100644 .changeset/union-report-options.md delete mode 100644 .changeset/validate-from-the-webpack-hook.md delete mode 100644 .changeset/watch-what-a-check-reads.md diff --git a/.changeset/biome-check.md b/.changeset/biome-check.md deleted file mode 100644 index b4e0585..0000000 --- a/.changeset/biome-check.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"diagnostics-webpack-plugin": minor ---- - -Add a `biome` check, which checks the files webpack builds with [Biome](https://biomejs.dev/) and reports what it finds at Biome's own severities. Run it with `{ use: "biome" }`, and `command: "check"` to add Biome's formatting diagnostics to the linter's; `@biomejs/biome >= 2` is an optional peer. diff --git a/.changeset/document-eslint-suppressions.md b/.changeset/document-eslint-suppressions.md deleted file mode 100644 index 6ce0bc2..0000000 --- a/.changeset/document-eslint-suppressions.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"diagnostics-webpack-plugin": minor ---- - -Added ESLint bulk suppressions. `applySuppressions` and `suppressionsLocation` reach the `ESLint` class as they are on ESLint 10, and on ESLint 9.24 and later the plugin applies the suppressions itself, since ESLint only wires them into its CLI there. diff --git a/.changeset/fold-quiet-into-report-as.md b/.changeset/fold-quiet-into-report-as.md deleted file mode 100644 index 8cb6b23..0000000 --- a/.changeset/fold-quiet-into-report-as.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"diagnostics-webpack-plugin": major ---- - -`quiet` is gone: `reportAs` says what a check reports its results as, one value covering its errors and its warnings alike and an object setting them apart, so `quiet: true` is `reportAs: { warnings: false }`. diff --git a/.changeset/lint-on-start.md b/.changeset/lint-on-start.md deleted file mode 100644 index f8ff0f1..0000000 --- a/.changeset/lint-on-start.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"diagnostics-webpack-plugin": major ---- - -`lintDirtyModulesOnly` is `lintOnStart`, inverted and defaulting to `true`. It says whether the first compilation lints every file it covers, and a build — which is nothing but a first compilation — now lints whatever it is set to, where `lintDirtyModulesOnly: true` used to leave a build silently unlinted. diff --git a/.changeset/lint-only-what-changed.md b/.changeset/lint-only-what-changed.md deleted file mode 100644 index dee2eac..0000000 --- a/.changeset/lint-only-what-changed.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"diagnostics-webpack-plugin": patch ---- - -Lint only the files webpack rebuilt, reporting the rest from the previous compilation, and start linting while the module graph is still being built. diff --git a/.changeset/merge-eslint-and-stylelint-plugins.md b/.changeset/merge-eslint-and-stylelint-plugins.md deleted file mode 100644 index c20d08c..0000000 --- a/.changeset/merge-eslint-and-stylelint-plugins.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"diagnostics-webpack-plugin": major ---- - -Renamed from `eslint-webpack-plugin` and merged with `stylelint-webpack-plugin`: one plugin runs every linter through the `checks` option, `new DiagnosticsPlugin({ checks: [{ use: "eslint" }, { use: "stylelint" }] })`. Errors are reported as webpack errors and warnings as webpack warnings, with `reportAs` deciding what each is reported as; `stylelint` must be 17 or later. See the migration guides in the README. diff --git a/.changeset/oxlint-check.md b/.changeset/oxlint-check.md deleted file mode 100644 index bf5145e..0000000 --- a/.changeset/oxlint-check.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"diagnostics-webpack-plugin": minor ---- - -Add an `oxlint` check, which lints the files webpack builds with [oxlint](https://oxc.rs/docs/guide/usage/linter.html) and reports what it finds at oxlint's own severities. Run it with `{ use: "oxlint" }`; `oxlint >= 1` is an optional peer. diff --git a/.changeset/replace-glob-dependencies.md b/.changeset/replace-glob-dependencies.md deleted file mode 100644 index 98b8ea3..0000000 --- a/.changeset/replace-glob-dependencies.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"diagnostics-webpack-plugin": patch ---- - -Replace `globby`, `micromatch` and `normalize-path` with `tinyglobby` and `picomatch`, and compile the file matchers once per check rather than on every module. diff --git a/.changeset/require-node-22.md b/.changeset/require-node-22.md deleted file mode 100644 index 6551061..0000000 --- a/.changeset/require-node-22.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"diagnostics-webpack-plugin": major ---- - -Dropped Node.js 20, which is end-of-life. The minimum is now Node.js `>= 22.12.0`. diff --git a/.changeset/rewrite-to-ecmascript-modules.md b/.changeset/rewrite-to-ecmascript-modules.md deleted file mode 100644 index 61e64f4..0000000 --- a/.changeset/rewrite-to-ecmascript-modules.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"diagnostics-webpack-plugin": major ---- - -Rewritten as ECMAScript modules. The package is now `"type": "module"` and declares an `exports` field, shipping an ESM build next to a CommonJS one, so `import DiagnosticsPlugin from "diagnostics-webpack-plugin"` and `require("diagnostics-webpack-plugin")` both keep working. diff --git a/.changeset/shared-threads.md b/.changeset/shared-threads.md deleted file mode 100644 index d61ac2d..0000000 --- a/.changeset/shared-threads.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"diagnostics-webpack-plugin": minor ---- - -`threads` is a shared option defaulting to `"auto"`, so every check spreads its work rather than holding the thread webpack builds on: a check that threads its own work is asked to, and one that cannot is run in a pool the plugin owns. Over three hundred modules that takes about a fifth off the build. It was Stylelint's alone and off by default; a check added later now gets it for nothing. diff --git a/.changeset/typescript-check.md b/.changeset/typescript-check.md deleted file mode 100644 index 0489961..0000000 --- a/.changeset/typescript-check.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"diagnostics-webpack-plugin": minor ---- - -Add a `typescript` check, which type checks the program a `tsconfig.json` describes and reports its diagnostics as webpack errors and warnings. Run it with `{ use: "typescript" }`; `typescript >= 5` is an optional peer. diff --git a/.changeset/union-report-options.md b/.changeset/union-report-options.md deleted file mode 100644 index d6e302a..0000000 --- a/.changeset/union-report-options.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"diagnostics-webpack-plugin": major ---- - -`emitError`, `emitWarning`, `failOnError` and `failOnWarning` are one `reportAs` option taking `"error"`, `"warning"` or `false`: it says what a check reports its results as, and reporting one as a webpack error is what fails the build. Left unset each result keeps its own severity, `quiet` still drops the warnings, and the build is no longer aborted from inside the plugin. See the migration table in the README. diff --git a/.changeset/validate-from-the-webpack-hook.md b/.changeset/validate-from-the-webpack-hook.md deleted file mode 100644 index ad5fbac..0000000 --- a/.changeset/validate-from-the-webpack-hook.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"diagnostics-webpack-plugin": minor ---- - -Option validation now runs from webpack's `compiler.hooks.validate`, so a mistake is reported where webpack validates the rest of the configuration and `validate: false` turns it off. Where webpack predates the hook, in 5.106, the plugin validates as it did before. diff --git a/.changeset/watch-what-a-check-reads.md b/.changeset/watch-what-a-check-reads.md deleted file mode 100644 index 872221b..0000000 --- a/.changeset/watch-what-a-check-reads.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"diagnostics-webpack-plugin": patch ---- - -Watch the files a check reads rather than only the ones webpack builds, so that a change to a file outside the module graph — one `stylelint` globs, or one a `tsconfig.json` lists — rebuilds, and a file added or removed there is picked up. diff --git a/CHANGELOG.md b/CHANGELOG.md index b96a58a..c9ec52f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,43 @@ # Changelog +## 1.0.0 + +### Major Changes + +- `quiet` is gone: `reportAs` says what a check reports its results as, one value covering its errors and its warnings alike and an object setting them apart, so `quiet: true` is `reportAs: { warnings: false }`. (by [@alexander-akait](https://github.com/alexander-akait) in [#317](https://github.com/webpack/diagnostics-webpack-plugin/pull/317)) + +- `lintDirtyModulesOnly` is `lintOnStart`, inverted and defaulting to `true`. It says whether the first compilation lints every file it covers, and a build — which is nothing but a first compilation — now lints whatever it is set to, where `lintDirtyModulesOnly: true` used to leave a build silently unlinted. (by [@alexander-akait](https://github.com/alexander-akait) in [#320](https://github.com/webpack/diagnostics-webpack-plugin/pull/320)) + +- Renamed from `eslint-webpack-plugin` and merged with `stylelint-webpack-plugin`: one plugin runs every linter through the `checks` option, `new DiagnosticsPlugin({ checks: [{ use: "eslint" }, { use: "stylelint" }] })`. Errors are reported as webpack errors and warnings as webpack warnings, with `reportAs` deciding what each is reported as; `stylelint` must be 17 or later. See the migration guides in the README. (by [@alexander-akait](https://github.com/alexander-akait) in [#306](https://github.com/webpack/diagnostics-webpack-plugin/pull/306)) + +- Dropped Node.js 20, which is end-of-life. The minimum is now Node.js `>= 22.12.0`. (by [@alexander-akait](https://github.com/alexander-akait) in [#309](https://github.com/webpack/diagnostics-webpack-plugin/pull/309)) + +- Rewritten as ECMAScript modules. The package is now `"type": "module"` and declares an `exports` field, shipping an ESM build next to a CommonJS one, so `import DiagnosticsPlugin from "diagnostics-webpack-plugin"` and `require("diagnostics-webpack-plugin")` both keep working. (by [@alexander-akait](https://github.com/alexander-akait) in [#308](https://github.com/webpack/diagnostics-webpack-plugin/pull/308)) + +- `emitError`, `emitWarning`, `failOnError` and `failOnWarning` are one `reportAs` option taking `"error"`, `"warning"` or `false`: it says what a check reports its results as, and reporting one as a webpack error is what fails the build. Left unset each result keeps its own severity, `quiet` still drops the warnings, and the build is no longer aborted from inside the plugin. See the migration table in the README. (by [@alexander-akait](https://github.com/alexander-akait) in [#315](https://github.com/webpack/diagnostics-webpack-plugin/pull/315)) + +### Minor Changes + +- Add a `biome` check, which checks the files webpack builds with [Biome](https://biomejs.dev/) and reports what it finds at Biome's own severities. Run it with `{ use: "biome" }`, and `command: "check"` to add Biome's formatting diagnostics to the linter's; `@biomejs/biome >= 2` is an optional peer. (by [@alexander-akait](https://github.com/alexander-akait) in [#329](https://github.com/webpack/diagnostics-webpack-plugin/pull/329)) + +- Added ESLint bulk suppressions. `applySuppressions` and `suppressionsLocation` reach the `ESLint` class as they are on ESLint 10, and on ESLint 9.24 and later the plugin applies the suppressions itself, since ESLint only wires them into its CLI there. (by [@alexander-akait](https://github.com/alexander-akait) in [#311](https://github.com/webpack/diagnostics-webpack-plugin/pull/311)) + +- Add an `oxlint` check, which lints the files webpack builds with [oxlint](https://oxc.rs/docs/guide/usage/linter.html) and reports what it finds at oxlint's own severities. Run it with `{ use: "oxlint" }`; `oxlint >= 1` is an optional peer. (by [@alexander-akait](https://github.com/alexander-akait) in [#328](https://github.com/webpack/diagnostics-webpack-plugin/pull/328)) + +- `threads` is a shared option defaulting to `"auto"`, so every check spreads its work rather than holding the thread webpack builds on: a check that threads its own work is asked to, and one that cannot is run in a pool the plugin owns. Over three hundred modules that takes about a fifth off the build. It was Stylelint's alone and off by default; a check added later now gets it for nothing. (by [@alexander-akait](https://github.com/alexander-akait) in [#324](https://github.com/webpack/diagnostics-webpack-plugin/pull/324)) + +- Add a `typescript` check, which type checks the program a `tsconfig.json` describes and reports its diagnostics as webpack errors and warnings. Run it with `{ use: "typescript" }`; `typescript >= 5` is an optional peer. (by [@alexander-akait](https://github.com/alexander-akait) in [#327](https://github.com/webpack/diagnostics-webpack-plugin/pull/327)) + +- Option validation now runs from webpack's `compiler.hooks.validate`, so a mistake is reported where webpack validates the rest of the configuration and `validate: false` turns it off. Where webpack predates the hook, in 5.106, the plugin validates as it did before. (by [@alexander-akait](https://github.com/alexander-akait) in [#313](https://github.com/webpack/diagnostics-webpack-plugin/pull/313)) + +### Patch Changes + +- Lint only the files webpack rebuilt, reporting the rest from the previous compilation, and start linting while the module graph is still being built. (by [@alexander-akait](https://github.com/alexander-akait) in [#319](https://github.com/webpack/diagnostics-webpack-plugin/pull/319)) + +- Replace `globby`, `micromatch` and `normalize-path` with `tinyglobby` and `picomatch`, and compile the file matchers once per check rather than on every module. (by [@alexander-akait](https://github.com/alexander-akait) in [#316](https://github.com/webpack/diagnostics-webpack-plugin/pull/316)) + +- Watch the files a check reads rather than only the ones webpack builds, so that a change to a file outside the module graph — one `stylelint` globs, or one a `tsconfig.json` lists — rebuilds, and a file added or removed there is picked up. (by [@alexander-akait](https://github.com/alexander-akait) in [#330](https://github.com/webpack/diagnostics-webpack-plugin/pull/330)) + > The entries below belong to `eslint-webpack-plugin`, which this package > was renamed from. It is published as `diagnostics-webpack-plugin` from > 1.0.0 on, so its versions start over. diff --git a/package.json b/package.json index f6d2a79..3cb06fb 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "diagnostics-webpack-plugin", - "version": "0.0.0", + "version": "1.0.0", "description": "Runs linters, type checkers and other diagnostic tools over your sources during the webpack build", "keywords": [ "diagnostics",