Skip to content

docs: give each plugin a migration guide covering every option - #318

Merged
alexander-akait merged 1 commit into
mainfrom
docs/migration-guides
Sep 8, 2026
Merged

docs: give each plugin a migration guide covering every option#318
alexander-akait merged 1 commit into
mainfrom
docs/migration-guides

Conversation

@alexander-akait

Copy link
Copy Markdown
Member

Summary

The guides said what changed. Someone migrating a real configuration needs the opposite: a row for every option they might have written, so the ones that did not change are as visible as the ones that did.

Each plugin's option list was read from its last release rather than recalled — 16 options for eslint-webpack-plugin@6.0.0, 14 for stylelint-webpack-plugin@5.1.0 — and every one now has a row saying where it lives, whether it moved or not. What the two guides said in common moves above them, said once:

  • Where an option goes. context, lintDirtyModulesOnly and checks are the plugin's own and stay at the top level; everything else is shared, written at the top level or inside a checks entry; configType, eslintPath, stylelintPath and threads belong to one check.
  • The severity table, mapping all five old options onto reportAs.
  • The dropped abort, and that nothing about severity depends on mode any more.
  • The requirements: Node >= 22.12, webpack 5, ESLint 9/10 or Stylelint 17.

Defaults were checked against both releases rather than assumed: cache, configType and both extensions defaults are unchanged, and only the two cacheLocation paths moved. failOnError differed between the plugins — mode-dependent in ESLint's, always on in Stylelint's — so each guide says which its readers had.

Two Stylelint-only claims I had written were wrong and are corrected. fix was already reaching Stylelint as an undeclared pass-through, so it is newly documented, not new. And resourceQueryExclude reads the query of a module webpack built — which a check handed the files matching files never has — so it is shared but does nothing for Stylelint. Verified against filesSource and the code path that consumes it.

Also verified rather than asserted: an outputReport is still written when reportAs is false (0 errors, 0 warnings reported, 2932 bytes on disk), which both tables now state.

What kind of change does this PR introduce?

docs.

Did you add tests for your changes?

n/a — documentation only. The suite is unchanged at 118 passing, and lint covers the Markdown.

Does this PR introduce a breaking change?

No.

If relevant, what needs to be documented once your changes are merged or what have you already documented?

This is the documentation. Nothing outstanding beyond the eventual webpack.js.org page for the renamed plugin.

Use of AI

Written with Claude Code, driven interactively. I asked for a migration guide covering every option of both plugins. It installed the last published release of each and read their schemas and defaults rather than working from memory, then checked its own two claims about Stylelint against the code and found both wrong. I reviewed the result.

🤖 Generated with Claude Code

https://claude.ai/code/session_01GzZci4NQeiqwdrVfd7dGXy


Generated by Claude Code

The guides said what changed. A reader migrating a real configuration needs
the opposite: a row for every option they might have written, so the ones that
did not change are as visible as the ones that did.

Each plugin's options were read from its last release rather than recalled —
16 for `eslint-webpack-plugin@6.0.0`, 14 for `stylelint-webpack-plugin@5.1.0`
— and every one has a row saying where it lives now. What the two guides said
in common moves above them: where an option is written, the severity table,
the dropped abort, and the requirements.

Two Stylelint-only notes were wrong and are corrected. `fix` was already
reaching Stylelint unnamed, so it is newly documented rather than new. And
`resourceQueryExclude` reads the query of a module webpack built, which a
check given the files matching `files` never has, so it is shared but does
nothing for Stylelint.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GzZci4NQeiqwdrVfd7dGXy
@alexander-akait
alexander-akait merged commit 4658c24 into main Sep 8, 2026
13 checks passed
@alexander-akait
alexander-akait deleted the docs/migration-guides branch September 8, 2026 10:49
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.

1 participant