Skip to content

Docs: Consider explicitly mentioning rule report properties as not covered by semver #9075

Closed as not planned
@JoshuaKGoldberg

Description

@JoshuaKGoldberg

Before You File a Documentation Request Please Confirm You Have Done The Following...

Suggested Changes

Splitting out of discussion in #8640:

  1. That absolutely-reasonable-and-fine change on our end changed the properties of the no-unused-vars rule report
  2. We then learned that an external plugin, eslint-plugin-unused-imports, was relying on a now-removed property of no-unused-vars: This plugin breaks when using typescript-eslint 7.8.0. sweepline/eslint-plugin-unused-imports#77
  3. 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

💖

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationDocumentation ("docs") that needs adding/updatinglocked due to agePlease open a new issue if you'd like to say more. See https://typescript-eslint.io/contributing.triageWaiting for team members to take a look

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions