Skip to content

fix: Remove incorrect RuleContext types #19910

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

Merged
merged 1 commit into from
Jul 4, 2025
Merged

fix: Remove incorrect RuleContext types #19910

merged 1 commit into from
Jul 4, 2025

Conversation

nzakas
Copy link
Member

@nzakas nzakas commented Jul 3, 2025

Prerequisites checklist

What is the purpose of this pull request? (put an "X" next to an item)

[ ] Documentation update
[x] Bug fix (template)
[ ] New rule (template)
[ ] Changes an existing rule (template)
[ ] Add autofix to a rule
[ ] Add a CLI option
[ ] Add something to the core
[ ] Other, please explain:

What changes did you make? (Give an overview)

Removed type definitions and related tests for:

  • context.getAncestors()
  • context.getDeclaredVariables(AST)
  • context.getScope()
  • context.markVariableAsUsed("foo")

fixes #19903

Is there anything you'd like reviewers to focus on?

@nzakas nzakas requested a review from a team as a code owner July 3, 2025 18:08
@github-project-automation github-project-automation bot moved this to Needs Triage in Triage Jul 3, 2025
@eslint-github-bot eslint-github-bot bot added the bug ESLint is working incorrectly label Jul 3, 2025
Copy link

netlify bot commented Jul 3, 2025

Deploy Preview for docs-eslint canceled.

Name Link
🔨 Latest commit 0d87c7d
🔍 Latest deploy log https://app.netlify.com/projects/docs-eslint/deploys/6866c706075a1d000852e10f

Copy link
Member

@aladdin-add aladdin-add left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Just waiting the current release concludes.​

@aladdin-add aladdin-add added accepted There is consensus among the team that this change meets the criteria for inclusion types Related to TypeScript types labels Jul 3, 2025
@aladdin-add aladdin-add moved this from Needs Triage to Merge Candidates in Triage Jul 3, 2025
Copy link
Member

@mdjermanovic mdjermanovic left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks!

@fasttime fasttime merged commit 28cc7ab into main Jul 4, 2025
30 checks passed
@fasttime fasttime deleted the issue19903 branch July 4, 2025 04:53
@github-project-automation github-project-automation bot moved this from Merge Candidates to Complete in Triage Jul 4, 2025
mureinik added a commit to mureinik/eslint-plugin-n that referenced this pull request Jul 25, 2025
eslint@9.31.0 removed some of the RuleContext types (see
eslint/eslint#19910), causing the `test:types`
CI script to fail.

As a quick fix to unblock further development, we can lock down the
eslint dependency to 9.30.1, where these types still exist, until a
"proper" solution can be developed.

Fixes eslint-community#459
mureinik added a commit to mureinik/eslint-plugin-n that referenced this pull request Jul 25, 2025
eslint@9.31.0 removed some of the RuleContext types (see
eslint/eslint#19910), causing the `test:types`
CI script to fail.

Since eslint-plugin-n still needs to support 8.x versions of eslint,
the implementation that relies on RuleContexts can't be removed.

A simple solution to unblock the CI is to annotate the few places that
rely on them with @ts-ignore.
When eslint 8.x support is dropped, these annotations should be removed.
That, in turn, will expose the code that relies on eslint 8.x APIs,
which should then also be removed.

As part of this PR, the eslint dependency was bumped to ^9.31.0.
This was done in order to prevent developers from developing locally
with older 9.x versions of eslint and accidentally introducing new code
that relies of these types with properly handling the type annotations
and having it fail in the CI.

Fixes eslint-community#459
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
accepted There is consensus among the team that this change meets the criteria for inclusion bug ESLint is working incorrectly types Related to TypeScript types
Projects
Status: Complete
Development

Successfully merging this pull request may close these issues.

Change Request: context.markVariableAsUsed() prevents usage with defineConfig()
4 participants