Skip to content
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

feat: v8 integration branch #9165

Draft
wants to merge 110 commits into
base: main
Choose a base branch
from
Draft

feat: v8 integration branch #9165

wants to merge 110 commits into from

Conversation

bradzacher
Copy link
Member

@bradzacher bradzacher commented May 28, 2024

BREAKING CHANGE:
Just mentioning as a breaking change so our CI doesn't have a ❌

Visualising the changes from v8

https://typescript-eslint.io/blog/announcing-typescript-eslint-v8-beta

NOTE: this PR is locked to prevent conversations / bug reports / etc.

JoshuaKGoldberg and others added 30 commits April 22, 2024 16:23
…#8834)

* feat(typescript-estree): remove slow deprecated and isolated programs

* Update packages/typescript-estree/src/create-program/createProjectProgram.ts

Co-authored-by: Brad Zacher <brad.zacher@gmail.com>

---------

Co-authored-by: Brad Zacher <brad.zacher@gmail.com>
#8920)

* fix(typescript-estree): add TSEnumBody node for TSEnumDeclaration body

* Fixed up tests and their snapshots

* More about enums

* Indent too

* Update packages/ast-spec/src/special/TSEnumBody/spec.ts

Co-authored-by: Brad Zacher <brad.zacher@gmail.com>

* parent types touchups

* Update packages/visitor-keys/src/visitor-keys.ts

Co-authored-by: Brad Zacher <brad.zacher@gmail.com>

---------

Co-authored-by: Brad Zacher <brad.zacher@gmail.com>
…aint and key (#7065)

* feat(typescript-estree): split TSMappedType typeParameter into constraint and key

* Aha, refactor to deduplicate - and fix property references

* Updated scope-manager snapshots

* Fixed snapshots, though not the bug

* Remove comment, oops

* Switch TSMappedType type visiting to be more manual

* Lint fixes

* Update packages/scope-manager/src/referencer/TypeVisitor.ts

Co-authored-by: Brad Zacher <brad.zacher@gmail.com>

* Avoided node.parent as directed

---------

Co-authored-by: Brad Zacher <brad.zacher@gmail.com>
* feat(eslint-plugin): remove formatting/layout rules

* Remove "layout"

* feat(typescript-estree): add defaultProject for project service (#8815)

* feat(typescript-estree): add defaultProject for project service

* Thanks Jake, service.setCompilerOptionsForInferredProjects

* Cleaned up a bit and added happy path testing

* Update packages/typescript-estree/src/parser-options.ts

Co-authored-by: Brad Zacher <brad.zacher@gmail.com>

---------

Co-authored-by: Brad Zacher <brad.zacher@gmail.com>

* feat(eslint-plugin): replace `no-new-symbol` with `no-new-native-nonconstructor` (#8895)

Co-authored-by: Brad Zacher <brad.zacher@gmail.com>

* Add tombstones

* 'deprecated' typo

* Let's mention both issues

* Fix unused variable issue

---------

Co-authored-by: Brad Zacher <brad.zacher@gmail.com>
Co-authored-by: Dave <reduckted@outlook.com>
…8832)

* feat(eslint-plugin): deprecate no-loss-of-precision extension rule

* baseRule.create, nice Kirk
* feat(typescript-estree): remove slow deprecated and isolated programs (#8834)

* feat(typescript-estree): remove slow deprecated and isolated programs

* Update packages/typescript-estree/src/create-program/createProjectProgram.ts

Co-authored-by: Brad Zacher <brad.zacher@gmail.com>

---------

Co-authored-by: Brad Zacher <brad.zacher@gmail.com>

* fix(typescript-estree): add TSEnumBody node for TSEnumDeclaration body (#8920)

* fix(typescript-estree): add TSEnumBody node for TSEnumDeclaration body

* Fixed up tests and their snapshots

* More about enums

* Indent too

* Update packages/ast-spec/src/special/TSEnumBody/spec.ts

Co-authored-by: Brad Zacher <brad.zacher@gmail.com>

* parent types touchups

* Update packages/visitor-keys/src/visitor-keys.ts

Co-authored-by: Brad Zacher <brad.zacher@gmail.com>

---------

Co-authored-by: Brad Zacher <brad.zacher@gmail.com>

* remove getTypeArguments

* one lil '

---------

Co-authored-by: Josh Goldberg ✨ <git@joshuakgoldberg.com>
Co-authored-by: Brad Zacher <brad.zacher@gmail.com>
* feat(typescript-estree): remove slow deprecated and isolated programs (#8834)

* feat(typescript-estree): remove slow deprecated and isolated programs

* Update packages/typescript-estree/src/create-program/createProjectProgram.ts

Co-authored-by: Brad Zacher <brad.zacher@gmail.com>

---------

Co-authored-by: Brad Zacher <brad.zacher@gmail.com>

* fix(typescript-estree): add TSEnumBody node for TSEnumDeclaration body (#8920)

* fix(typescript-estree): add TSEnumBody node for TSEnumDeclaration body

* Fixed up tests and their snapshots

* More about enums

* Indent too

* Update packages/ast-spec/src/special/TSEnumBody/spec.ts

Co-authored-by: Brad Zacher <brad.zacher@gmail.com>

* parent types touchups

* Update packages/visitor-keys/src/visitor-keys.ts

Co-authored-by: Brad Zacher <brad.zacher@gmail.com>

---------

Co-authored-by: Brad Zacher <brad.zacher@gmail.com>

* chore(type-utils)!: remove IsNullableTypeOptions interface

---------

Co-authored-by: Josh Goldberg ✨ <git@joshuakgoldberg.com>
Co-authored-by: Brad Zacher <brad.zacher@gmail.com>
…owAutomaticSingleRunInference (#8922)

* feat(typescript-estree): disallowAutomaticSingleRunInference, off (fast) by default

* Unnecessary Infinity cache lifetime too

* disallowAutomaticSingleRunInference in RuleTester

* Add more explicit disallowAutomaticSingleRunInference: true,s

* Fixed for parse.test.ts

* Fixed persistentParse.test.ts and semanticInfo.test.ts

* disallowAutomaticSingleRunInference in docs.test.ts

* Reset plugin .shot files

* Fix unit tests for Windows

* lint
* feat!(parser): always enable comment, loc, range, tokens

* fix: tests

* Smooth out the Object.assign

* test: added some more for parser, why not
…8972)

* feat(utils): swap LegacyESLint out for FlatESLint as ESLint export

* eslint@v10 comment
* chore: fix v8 branch snapshots for flat-config-types

* Check in the rest of them too
docs: remove eslint v9 tracking issue from main readme
#9025)

* feat(utils): [RuleCreator] require specifying additional rule meta.docs

* test fix

* Explicit start and end types

* Fix lint failures

* lil more linting
…d no-empty-interfaces (#8977)

* feat(eslint-plugin): split no-empty-object-type rule out from ban-types rule

* Mention no-props

* Update packages/eslint-plugin/docs/rules/no-empty-object-type.mdx

Co-authored-by: Kirk Waiblinger <53019676+kirkwaiblinger@users.noreply.github.com>

* Update packages/eslint-plugin/docs/rules/no-empty-object-type.mdx

Co-authored-by: Kirk Waiblinger <53019676+kirkwaiblinger@users.noreply.github.com>

* Allow in intersections, and touch up docs per suggestions

* Update packages/eslint-plugin/docs/rules/no-empty-object-type.mdx

Co-authored-by: Joshua Chen <sidachen2003@gmail.com>

* Trimming

* Update snapshots

* Finish removing Record

* Correct phrasing on Object

* Merge with no-empty-interface

* nit the tip

* Explicit report message for interfaces

* Add in-type-alias-with-name

* Switched to more general allowWithName

* snapshot -u

* snapshot -u

* Fixed up unit tests

* Update packages/eslint-plugin/docs/rules/no-empty-object-type.mdx

Co-authored-by: Kirk Waiblinger <kirk.waiblinger@gmail.com>

* docs touchups from Kirk

* replacedBy too

---------

Co-authored-by: Kirk Waiblinger <53019676+kirkwaiblinger@users.noreply.github.com>
Co-authored-by: Joshua Chen <sidachen2003@gmail.com>
Co-authored-by: Kirk Waiblinger <kirk.waiblinger@gmail.com>
* feat: support ESLint 9

* Fix some eslint-plugin tests

* Re-add v8 and remove unnecessary peerDependencies

* Fix no-unused-vars test rule

* Updated snapshots

* put back tmp@0.2.1

* Fixed linting by disabling plugins temporarily

* Update two more integration snapshots for no-unused-vars

* Ugh, missing "

* Remove legacy rule function form

* Fix legacy-config test to actually use legacy config

* Revert "Remove legacy rule function form"

This reverts commit e053179.

* Update ESLint 8/9 RuleCreateFunction comments

* Start reverting the local dev changes

* Some more reverts

* oopsies comment level

* yarn test -u the integration tests

* regenerate yarn.lock

* yarn dedupe, and undo some eslint.config changes

* Remove extra node:

* Finally revert nodeType changes

* one more deprecation fix

* Update eslint-plugin schemas snapshot

* Annoying tmp version update

* Add eslint_v9_tests

* Fix yarn.lock
JoshuaKGoldberg and others added 30 commits June 29, 2024 13:43
…ent imports (#9339)

* fix(eslint-plugin): use ./dist/util path in rules.d.ts

* Fix introduced type complaint

* test: one more fix for default

* Move to copying the types, as we don't publish .d.ts

* import from rules, heck yes
#9460)

fix: disable `EXPERIMENTAL_useProjectService` in `disabled-type-checked` shared config
* eslint 9

* add compat

* add fixup

* fixup react

* add more fixups

* add issue comment

* lint and empty types

* fix types

* remove eslint9 ci test

* rename

* update no-restricted-imports snapshot

* update build script

* change quote style

* revert renaming

* begin migrating config files

* migrate markdown to v9

* migrate recommended-does-not-require-program

* migrate eslint.config.js

* migrate vue-sfc, except for TS errors

* remove flatconfig boolean

* remove config file option

* remove deprecated rules

* correct issue

* revert style change

* add clarifying comment

* remove unnecessary suppression

* remove unnecessary suppression

* remove unused suppression
* clean up a bit of phrasing in no-wrapper-object-types

* directly

* pr feedback

* touchup

* Update packages/eslint-plugin/docs/rules/no-wrapper-object-types.mdx

Co-authored-by: Josh Goldberg ✨ <git@joshuakgoldberg.com>

* josh goldberg's suggestions

* change docs again

* Update packages/eslint-plugin/docs/rules/no-wrapper-object-types.mdx

Co-authored-by: Josh Goldberg ✨ <git@joshuakgoldberg.com>

---------

Co-authored-by: Josh Goldberg ✨ <git@joshuakgoldberg.com>
…eOrValueSpecifier (#9500)

* fix(type-utils): [TypeOrValueSpecifier] also check declared modules for package names

* Add unit tests to TypeOrValueSpecifier.test.ts

* Snapshot update

* fix: declare global
* chore(website): correct version to be v8, not latest merged v7

* Correct docusaurus.config.mts

* TODOs
…r escaped strings in autofixes (#8688)

* fix(eslint-plugin): [no-useless-template-literal] do not render escaped strings in autofixes

* escape regular expressions

* yarn lint --fix && yarn format

* add comments

* oops

* better escaping!

* chore: add comments with explanations and fix tests

* test: verify that fixer doesnt change the runtime value of template expression

* refactor: move endsWithUnescapedDollarSign out of the loop scope
…including a file (#9584)

* fix(typescript-estree): specific error for parserOptions.project not including a file

* fix lint

* chore: fix website lint
* speed up non-type-aware linting with project service

* fix ts error

* fix: account for the default project

* fix: account for the default project in website

* Apply suggestions from code review

* chore: formatting

---------

Co-authored-by: Victor Lin <victor.lin@airbnb.com>
Co-authored-by: Josh Goldberg <git@joshuakgoldberg.com>
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
breaking change This change will require a new major version to be released DO NOT MERGE PRs which should not be merged yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet