Description
Before You File a Documentation Request Please Confirm You Have Done The Following...
- I have looked for existing open or closed documentation requests that match my proposal.
- I have read the FAQ and my problem is not listed.
Suggested Changes
Splitting out of discussion in #8640:
- That absolutely-reasonable-and-fine change on our end changed the properties of the
no-unused-vars
rule report - We then learned that an external plugin,
eslint-plugin-unused-imports
, was relying on a now-removed property ofno-unused-vars
: This plugin breaks when using typescript-eslint 7.8.0. sweepline/eslint-plugin-unused-imports#77 - It was then unclear to folks: did we break any contracts by changing the properties of the rule in a non-major version?
The answer to (3) is: no, the fact that the rule report switch from node
to loc
is not covered by our public API contracts. It's an implementation detail that's only exposed to the plugin through eslint-rule-composer
: https://github.com/sweepline/eslint-plugin-unused-imports/blob/d77f8e402f09a31a82ca2416b5fe4dace18e0599/lib/rules/no-unused-vars.js. We explained the situation more deeply in the discussion in #8640.
But, in folks' defense, https://typescript-eslint.io/users/versioning/#eslint-plugin never explicitly says whether rule properties are part of the public API. Proposal: let's add a quick list item in the "shall not be considered breaking" section mentioning them?
Affected URL(s)
https://typescript-eslint.io/users/versioning#eslint-plugin
💖