-
-
Notifications
You must be signed in to change notification settings - Fork 696
feat: introduce -error versions of configs that have all rules configured to error
#2796
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
🦋 Changeset detectedLatest commit: fe755cf The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
1d9181a to
c26aeb9
Compare
G-Rath
commented
Jul 31, 2025
@waynzh would it be possible to get a review or even just a yay/nay on if you're open to this?
FloEdelmann
commented
Aug 1, 2025
I'm unsure whether an environment variable is the correct approach to this. Maybe it would be better to duplicate the configs with an -error variant for each one?
G-Rath
commented
Aug 6, 2025
I'm personally not fussed so if you're happy having double the amount of configs I'm fine to do it that way too - I just figured the env variable was a nice way of leveraging the fact that going forward you have to use a JS file for the ESLint config (meaning its always possible to ensure that the property on process.env is always set when ESLint is running) without doing a breaking change
FloEdelmann
commented
Aug 7, 2025
@ota-meshi @waynzh What do you think?
ota-meshi
commented
Aug 8, 2025
I've been thinking about this for a few days, and my personal opinion is that I'm against adding new shareable configs or making major changes to them.
It's impossible to satisfy everyone's preferences, so I think it's better for users to create their own configs.
I think this is also related to #1951 (comment).
However, if @FloEdelmann and @waynzh both think this config change is a good idea, there's no problem with accepting it.
@ota-meshi @waynzh What do you think?
I'm not a fan of using environment variables.
waynzh
commented
Aug 8, 2025
For the IDE DX issue, you can address it by configuring the IDE-ESLint integration like this:
"eslint.rules.customizations": [ { "rule": "*", "severity": "error" } // { "rule": "vue/*", "severity": "error" } ]
I'm not a big fan of controlling this via environment variables either.
One thing worth noting is that there's already a (though not very active) discussion in the ESLint core (eslint/eslint#14679) about adding severity settings into ESLint config. If implemented, this would allow severity to be configured through a single field, removing the need for each plugin to provide separate sharable configs for different severity levels.
G-Rath
commented
Aug 8, 2025
For the IDE DX issue, you can address it by configuring the IDE-ESLint integration like this:
That only works for VSCode
I'm not a big fan of controlling this via environment variables either.
Sounds like folks are against that, so I'll switch to generating new configs
a2795d8 to
3825a40
Compare
G-Rath
commented
Aug 8, 2025
@FloEdelmann @waynzh @ota-meshi I've updated the implementation to generate dedicated configs instead of using an env variable
error instead of warn using env variable (削除ここまで)-error versions of configs that have all rules configured to error (追記ここまで)
Revert "feat: support using `error` instead of `warn` for rules in config" This reverts commit efb2832. Revert "feat: regenerate configs" This reverts commit a379d77. Revert "feat: only define variable if it is needed" This reverts commit be3db8d. Revert "feat: regenerate rules" This reverts commit 98888a6. Revert "docs: add note to user guide" This reverts commit 3dd94e3. Revert "fix: avoid unneeded blank line" This reverts commit d7990e9.
168cf66 to
e77678a
Compare
@FloEdelmann
FloEdelmann
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry for the late review. I still like the idea of more strict configs, so this mostly looks good to me 🙂
I have a few code and docs remarks though.
Co-authored-by: Flo Edelmann <git@flo-edelmann.de>
@FloEdelmann
FloEdelmann
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, looks good to me now 🙂
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR introduces -error variants of existing ESLint config presets to provide users with stricter configurations where all rules report as errors instead of warnings. This resolves issue #2774 by giving users an alternative to manually overriding warning severities.
Key Changes:
- Modified config generator scripts to automatically create
-errorversions of warn-based configs - Generated 8 new config files (4 legacy + 4 flat) for
strongly-recommended-errorandrecommended-errorvariants (Vue 2 & 3) - Updated documentation to describe the new config options
Reviewed changes
Copilot reviewed 12 out of 12 changed files in this pull request and generated 12 comments.
Show a summary per file
| File | Description |
|---|---|
| tools/update-lib-flat-configs.js | Modified generator to create -error flat config variants with alwaysError parameter |
| tools/update-lib-configs.js | Modified generator to create -error legacy config variants with alwaysError parameter |
| lib/configs/vue3-strongly-recommended-error.js | Generated legacy config extending vue3-essential with strongly-recommended rules as errors |
| lib/configs/vue3-recommended-error.js | Generated legacy config extending vue3-strongly-recommended-error with recommended rules as errors |
| lib/configs/vue2-strongly-recommended-error.js | Generated legacy config extending vue2-essential with strongly-recommended rules as errors |
| lib/configs/vue2-recommended-error.js | Generated legacy config extending vue2-strongly-recommended-error with recommended rules as errors |
| lib/configs/flat/vue3-strongly-recommended-error.js | Generated flat config extending vue3-essential with strongly-recommended rules as errors |
| lib/configs/flat/vue3-recommended-error.js | Generated flat config extending vue3-strongly-recommended-error with recommended rules as errors |
| lib/configs/flat/vue2-strongly-recommended-error.js | Generated flat config extending vue2-essential with strongly-recommended rules as errors |
| lib/configs/flat/vue2-recommended-error.js | Generated flat config extending vue2-strongly-recommended-error with recommended rules as errors |
| docs/user-guide/index.md | Added documentation entries for all new -error config variants with usage descriptions |
| .changeset/brown-eels-care.md | Added changeset describing the new feature as a minor version bump |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Copilot
AI
Dec 14, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The script creates new -error config files but doesn't update lib/configs/index.js to export them. This means the new configs won't be accessible to users via the documented syntax like plugin:vue/strongly-recommended-error. The script should also update the exports in lib/configs/index.js to include entries like 'vue2-strongly-recommended-error': require('./vue2-strongly-recommended-error'), 'vue2-recommended-error': require('./vue2-recommended-error'), 'strongly-recommended-error': require('./vue3-strongly-recommended-error'), and 'recommended-error': require('./vue3-recommended-error').
Copilot
AI
Dec 14, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The description "Above, except with all rules configured to error instead of warn" is potentially misleading. This config doesn't modify the config mentioned directly above it (strongly-recommended); rather, it's an alternative to strongly-recommended where the category's rules are set to error severity instead of warn. Consider clarifying this to say something like "Same as strongly-recommended, except with all rules in this category configured to error instead of warn" to make it clearer that this is an alternative, not a modification of the previous config.
Copilot
AI
Dec 14, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The description "Above, except with all rules configured to error instead of warn" is potentially misleading. This config doesn't modify the config mentioned directly above it (strongly-recommended); rather, it's an alternative to strongly-recommended where the category's rules are set to error severity instead of warn. Consider clarifying this to say something like "Same as strongly-recommended, except with all rules in this category configured to error instead of warn" to make it clearer that this is an alternative, not a modification of the previous config.
Copilot
AI
Dec 14, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The description "Above, except with all rules configured to error instead of warn" is potentially misleading. This config doesn't modify the config mentioned directly above it (recommended); rather, it's an alternative to recommended where the category's rules are set to error severity instead of warn. Consider clarifying this to say something like "Same as recommended, except with all rules in this category configured to error instead of warn" to make it clearer that this is an alternative, not a modification of the previous config.
Copilot
AI
Dec 14, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The description "Above, except with all rules configured to error instead of warn" is potentially misleading. This config doesn't modify the config mentioned directly above it (vue2-recommended); rather, it's an alternative to vue2-recommended where the category's rules are set to error severity instead of warn. Consider clarifying this to say something like "Same as vue2-recommended, except with all rules in this category configured to error instead of warn" to make it clearer that this is an alternative, not a modification of the previous config.
Copilot
AI
Dec 14, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The description "Above, except with all rules configured to error instead of warn" is potentially misleading. This config doesn't modify the config mentioned directly above it (recommended); rather, it's an alternative to recommended where the category's rules are set to error severity instead of warn. Consider clarifying this to say something like "Same as recommended, except with all rules in this category configured to error instead of warn" to make it clearer that this is an alternative, not a modification of the previous config.
Copilot
AI
Dec 14, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The description "Above, except with all rules configured to error instead of warn" is potentially misleading. This config doesn't modify the config mentioned directly above it (vue2-strongly-recommended); rather, it's an alternative to vue2-strongly-recommended where the category's rules are set to error severity instead of warn. Consider clarifying this to say something like "Same as vue2-strongly-recommended, except with all rules in this category configured to error instead of warn" to make it clearer that this is an alternative, not a modification of the previous config.
Copilot
AI
Dec 14, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The description "Above, except with all rules configured to error instead of warn" is potentially misleading. This config doesn't modify the config mentioned directly above it (vue2-recommended); rather, it's an alternative to vue2-recommended where the category's rules are set to error severity instead of warn. Consider clarifying this to say something like "Same as vue2-recommended, except with all rules in this category configured to error instead of warn" to make it clearer that this is an alternative, not a modification of the previous config.
Copilot
AI
Dec 14, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The description "Above, except with all rules configured to error instead of warn" is potentially misleading. This config doesn't modify the config mentioned directly above it (vue2-strongly-recommended); rather, it's an alternative to vue2-strongly-recommended where the category's rules are set to error severity instead of warn. Consider clarifying this to say something like "Same as vue2-strongly-recommended, except with all rules in this category configured to error instead of warn" to make it clearer that this is an alternative, not a modification of the previous config.
Copilot
AI
Dec 14, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The changeset description only mentions strongly-recommended-error and recommended-error, but this PR also adds Vue 2 variants (vue2-strongly-recommended-error and vue2-recommended-error) and flat config versions of all these. Consider updating the description to be more comprehensive, for example: "Added new -error config variants (strongly-recommended-error, recommended-error, vue2-strongly-recommended-error, vue2-recommended-error, and their flat config equivalents) with all rules' severity set to error"
I'm happy to take alternative names for the environment and local config variables
Resolves #2774