docs: give each plugin a migration guide covering every option - #318
Merged
Conversation
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
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.
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 forstylelint-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:context,lintDirtyModulesOnlyandchecksare the plugin's own and stay at the top level; everything else is shared, written at the top level or inside achecksentry;configType,eslintPath,stylelintPathandthreadsbelong to one check.reportAs.modeany more.>= 22.12, webpack 5, ESLint 9/10 or Stylelint 17.Defaults were checked against both releases rather than assumed:
cache,configTypeand bothextensionsdefaults are unchanged, and only the twocacheLocationpaths moved.failOnErrordiffered 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.
fixwas already reaching Stylelint as an undeclared pass-through, so it is newly documented, not new. AndresourceQueryExcludereads the query of a module webpack built — which a check handed the files matchingfilesnever has — so it is shared but does nothing for Stylelint. Verified againstfilesSourceand the code path that consumes it.Also verified rather than asserted: an
outputReportis still written whenreportAsisfalse(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
lintcovers 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