Skip to content

chore(release): new release - #307

Open
github-actions[bot] wants to merge 1 commit into
mainfrom
changeset-release/main
Open

chore(release): new release#307
github-actions[bot] wants to merge 1 commit into
mainfrom
changeset-release/main

Conversation

@github-actions

@github-actions github-actions Bot commented Sep 7, 2026

Copy link
Copy Markdown

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

  • 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 in #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 in #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 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 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 in #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 in #315)

  • Validate the options through webpack's own compiler.validate rather than schema-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 biome check, which checks the files webpack builds with Biome 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 in #329)

  • Add build to the typescript check, which builds the projects the config file references the way tsc -b does — a tsconfig.json listing only references describes 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. 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 in #311)

  • Naming files now 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 ignoreDiagnostics to the typescript check, 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)

  • ignoreDiagnostics is 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 oxlint check, which lints the files webpack builds with oxlint and reports what it finds at oxlint's own severities. Run it with { use: "oxlint" }; oxlint >= 1 is an optional peer. (by @alexander-akait in #328)

  • Add "log" to reportAs, 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)

  • 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 in #324)

  • Run the typescript check on a worker thread, so webpack builds while it type checks. A program is read whole rather than a file at a time, so threads buys it webpack's own thread back rather than a share of the work; threads: false, and a formatter written as a function, keep it where webpack is. (by @alexander-akait in #343)

  • 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 in #327)

  • Add diagnosticOptions to the typescript check, 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 and validate: false turns 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 reportAs leaves out both its errors and its warnings, writing no outputReport — 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 checks itself, list every option in one table, and add a migration from fork-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 with del, @types/micromatch and 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.project or projectService — 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, micromatch and normalize-path with tinyglobby and picomatch, and compile the file matchers once per check rather than on every module. (by @alexander-akait in #316)

  • Report a change made to a build project while the last build was running. tsc -b reads 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 build rebuilds 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 typescript check'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 stylelint globs, or one a tsconfig.json lists — 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.path or what the check excludes is left alone. (by @alexander-akait in #334)

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.

@github-actions
github-actions Bot force-pushed the changeset-release/main branch 30 times, most recently from d678f2e to 50ca81b Compare September 14, 2026 04:08
@github-actions
github-actions Bot force-pushed the changeset-release/main branch 5 times, most recently from 207f45c to c1a4fb2 Compare September 14, 2026 06:33
@github-actions
github-actions Bot force-pushed the changeset-release/main branch from c1a4fb2 to 3df4d89 Compare September 14, 2026 07:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants