chore(release): new release - #307
Open
github-actions[bot] wants to merge 1 commit into
Open
Conversation
github-actions
Bot
force-pushed
the
changeset-release/main
branch
30 times, most recently
from
September 14, 2026 04:08
d678f2e to
50ca81b
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
5 times, most recently
from
September 14, 2026 06:33
207f45c to
c1a4fb2
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
from
September 14, 2026 07:43
c1a4fb2 to
3df4d89
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
Releases
diagnostics-webpack-plugin@1.0.0
Major Changes
quietis gone:reportAssays what a check reports its results as, one value covering its errors and its warnings alike and an object setting them apart, soquiet: trueisreportAs: { warnings: false }. (by @alexander-akait in #317)lintDirtyModulesOnlyislintOnStart, inverted and defaulting totrue. 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, wherelintDirtyModulesOnly: trueused to leave a build silently unlinted. (by @alexander-akait in #320)Renamed from
eslint-webpack-pluginand merged withstylelint-webpack-plugin: one plugin runs every linter through thechecksoption,new DiagnosticsPlugin({ checks: [{ use: "eslint" }, { use: "stylelint" }] }). Errors are reported as webpack errors and warnings as webpack warnings, withreportAsdeciding what each is reported as;stylelintmust be 17 or later. See the migration guides in the README. (by @alexander-akait in #306)Dropped Node.js 20, which is end-of-life. The minimum is now Node.js
>= 22.12.0. (by @alexander-akait in #309)Rewritten as ECMAScript modules. The package is now
"type": "module"and declares anexportsfield, shipping an ESM build next to a CommonJS one, soimport DiagnosticsPlugin from "diagnostics-webpack-plugin"andrequire("diagnostics-webpack-plugin")both keep working. (by @alexander-akait in #308)emitError,emitWarning,failOnErrorandfailOnWarningare onereportAsoption taking"error","warning"orfalse: 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,quietstill drops the warnings, and the build is no longer aborted from inside the plugin. See the migration table in the README. (by @alexander-akait in #315)Validate the options through webpack's own
compiler.validaterather thanschema-utils, which drops the last runtime dependency the plugin had for it. That API arrived in webpack 5.106, so the peer range is now^5.106.0. (by @alexander-akait in #345)Minor Changes
Add a
biomecheck, which checks the files webpack builds with Biome and reports what it finds at Biome's own severities. Run it with{ use: "biome" }, andcommand: "check"to add Biome's formatting diagnostics to the linter's;@biomejs/biome >= 2is an optional peer. (by @alexander-akait in #329)Add
buildto thetypescriptcheck, which builds the projects the config file references the waytsc -bdoes — atsconfig.jsonlisting onlyreferencesdescribes an empty program, so a solution reported nothing at all before. It writes each project's declarations, which is what the next project reads, and no JavaScript. (by @alexander-akait in #336)Added ESLint bulk suppressions.
applySuppressionsandsuppressionsLocationreach theESLintclass 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 in #311)Naming
filesnow means every file they match is checked, whether or not webpack built it, for every check rather than only the ones that walk the file system by themselves. A module nothing imports yet was invisible to the ESLint check before. Left unset, a check still reads what it always read. (by @alexander-akait in #325)Add
ignoreDiagnosticsto thetypescriptcheck, the codes of the diagnostics not to report — a linter's rule can be turned off in its own configuration, a TypeScript diagnostic cannot. (by @alexander-akait in #335)ignoreDiagnosticsis a shared option every check reads, and takes a rule or code as a string, a match of a file, code and severity together, a list of any of them, or a function over each thing a check found. A TypeScript code as a number, which is all it took before, still means what it did. (by @alexander-akait in #341)Add an
oxlintcheck, which lints the files webpack builds with oxlint and reports what it finds at oxlint's own severities. Run it with{ use: "oxlint" };oxlint >= 1is an optional peer. (by @alexander-akait in #328)Add
"log"toreportAs, which writes a check's results to webpack's log rather than onto the compilation, so they reach the terminal without the build carrying an error or a warning. (by @alexander-akait in #331)threadsis 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 in #324)Run the
typescriptcheck on a worker thread, so webpack builds while it type checks. A program is read whole rather than a file at a time, sothreadsbuys it webpack's own thread back rather than a share of the work;threads: false, and aformatterwritten as a function, keep it where webpack is. (by @alexander-akait in #343)Add a
typescriptcheck, which type checks the program atsconfig.jsondescribes and reports its diagnostics as webpack errors and warnings. Run it with{ use: "typescript" };typescript >= 5is an optional peer. (by @alexander-akait in #327)Add
diagnosticOptionsto thetypescriptcheck, which says whether to report each kind of diagnostic — syntactic, semantic, declaration and global. Turning one off asks TypeScript for less rather than dropping what it answered. (by @alexander-akait in #340)Option validation now runs from webpack's
compiler.hooks.validate, so a mistake is reported where webpack validates the rest of the configuration andvalidate: falseturns it off. Where webpack predates the hook, in 5.106, the plugin validates as it did before. (by @alexander-akait in #313)Patch Changes
Run a check the compilation carries nothing of — one whose
reportAsleaves out both its errors and its warnings, writing nooutputReport— after a watch rebuild rather than during it, so that the rebuild is over before the check starts and what it finds is printed to the terminal when it lands. (by @alexander-akait in #333)Document
checksitself, list every option in one table, and add a migration fromfork-ts-checker-webpack-plugin. (by @alexander-akait in #339)Drop the dependencies nothing uses:
@types/eslint, which ESLint has shipped itself since 9 and which nothing reaches from the package entry, along withdel,@types/micromatchand commitlint. (by @alexander-akait in #346)Cover
configType: "eslintrc"over a worker pool, so that the ESLint 9 job in CI checks the way a worker loads ESLint as well as the way the build's own thread does. (by @alexander-akait in #338)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 in #319)
Lint every file again on a rebuild where a rule reads other files to answer for one. Typed linting —
parserOptions.projectorprojectService— was reported from the previous run for any file that did not itself change, and ESLint's own cache held those results across runs, so a type that changed underneath a file went unreported until something else edited it. (by @alexander-akait in #347)Replace
globby,micromatchandnormalize-pathwithtinyglobbyandpicomatch, and compile the file matchers once per check rather than on every module. (by @alexander-akait in #316)Report a change made to a
buildproject while the last build was running.tsc -breads how old an input is next to the outputs of the last build, so such an edit looked up to date and was reported as clean until something else changed; what the check compares against now is the moment the last build started reading. (by @alexander-akait in #344)Keep the programs a built solution is made of between rebuilds, so
buildrebuilds a project on the one before it rather than parsing and checking it over again. Over a two-project, 302-file solution a rebuild after one edit falls from 468 ms to 149 ms, with no more memory held. (by @alexander-akait in #342)Keep the
typescriptcheck's program between rebuilds, so that a watch rebuild type checks what the change reaches rather than the whole project again. (by @alexander-akait in #332)Drive a tool once where two compilers run the same check over the same files: the second joins the run the first is making, and both compilations report what it finds and watch what it read. Two compilers type checking three hundred files build one program rather than two. (by @alexander-akait in #337)
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
stylelintglobs, or one atsconfig.jsonlists — rebuilds, and a file added or removed there is picked up. (by @alexander-akait in #330)Watch the folders a check takes its files from, and the paths an import resolved to nothing through, so that a file you add is checked without anything else having to change. A folder is watched only when the whole of it can be: one holding
output.pathor what the check excludes is left alone. (by @alexander-akait in #334)