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

breaking: drop node v10/v13/v15 support #14023

Closed
aladdin-add opened this issue Jan 21, 2021 · 9 comments · Fixed by #14592
Closed

breaking: drop node v10/v13/v15 support #14023

aladdin-add opened this issue Jan 21, 2021 · 9 comments · Fixed by #14592
Labels
accepted There is consensus among the team that this change meets the criteria for inclusion archived due to age This issue has been archived; please open a new issue for any further discussion breaking This change is backwards-incompatible core Relates to ESLint's core APIs and features enhancement This change enhances an existing feature of ESLint

Comments

@aladdin-add
Copy link
Member

aladdin-add commented Jan 21, 2021

The version of ESLint you are using.
n/w

The problem you want to solve.
just like previous major releases, we can drop node v10 support in eslint v8.

  • node v10 EOL: 2021-04-30
  • node v13 EOL: 2020-06-01

Your take on the correct solution to problem.
drop node v10, v13 support.

question: do we like some features introduced in node v12, so we can pick a version( e.g. ">=12.8.0")?

Are you willing to submit a pull request to implement this change?
y

@aladdin-add aladdin-add added enhancement This change enhances an existing feature of ESLint triage An ESLint team member will look at this issue soon core Relates to ESLint's core APIs and features breaking This change is backwards-incompatible and removed triage An ESLint team member will look at this issue soon labels Jan 21, 2021
@nzakas nzakas added this to Needs Triage in Triage Feb 16, 2021
@nzakas nzakas added the tsc agenda This issue will be discussed by ESLint's TSC at the next meeting label Mar 6, 2021
@nzakas
Copy link
Member

nzakas commented Mar 6, 2021

TSC Summary: Node.JS 10 is EOL at the end of April and Node.JS 13 EOL is the end of June.

TSC Question: How do we want to handle these? Should we plan on a major release to coincide with one or both?

@ljharb
Copy link
Sponsor Contributor

ljharb commented Mar 6, 2021

Just because it’s EOL doesn’t mean there needs to be any rush to drop support for it.

if you’re doing a major anyways, then that’s a fine time to drop support if there’s a benefit to doing so.

@nzakas nzakas moved this from Needs Triage to Evaluating in Triage Mar 9, 2021
@btmills btmills added accepted There is consensus among the team that this change meets the criteria for inclusion and removed tsc agenda This issue will be discussed by ESLint's TSC at the next meeting labels Mar 27, 2021
@btmills btmills moved this from Evaluating to Ready to Implement in Triage Mar 27, 2021
@btmills btmills removed the accepted There is consensus among the team that this change meets the criteria for inclusion label Mar 27, 2021
@btmills btmills moved this from Ready to Implement to Evaluating in Triage Mar 27, 2021
@btmills
Copy link
Member

btmills commented Mar 27, 2021

We have several small changes waiting for the next major release, so we'll start working toward a v8 release and discuss this and other changes in the v8 project at the next TSC meeting.

@btmills btmills added this to Need Discussion in v8.0.0 Mar 27, 2021
@nzakas nzakas moved this from Need Discussion to Planned in v8.0.0 Apr 8, 2021
@btmills btmills added the accepted There is consensus among the team that this change meets the criteria for inclusion label Apr 12, 2021
@btmills btmills moved this from Evaluating to Ready to Implement in Triage Apr 12, 2021
@btmills
Copy link
Member

btmills commented Apr 12, 2021

This is now accepted as part of ESLint v8.0.0.

@nzakas
Copy link
Member

nzakas commented May 6, 2021

Note: We want to use import() for flat config, so we probably want to ensure whatever minimum version we decide on supports that.

@mysticatea
Copy link
Member

mysticatea commented May 12, 2021

ES modules have gotten stable in ^12.22.0 || ^14.17.0 || >=15.3.0.

Also, we can use class fields as well, except together with optional chaining (obj.#foo is OK, but obj?.#foo isn't).
We still cannot use private methods.

@btmills
Copy link
Member

btmills commented May 12, 2021

Thanks for looking at that, @mysticatea. In addition to those class features, there are a few other features we'll be able to start using:

  • Object.fromEntries().
  • Array.prototype.flat() and flatMap(). There's already a todo comment for this in Chore: Remove lodash #14287.
  • String.prototype.matchAll().
  • Separators in numeric literals.

Those are all supported by every version where ESM is stable.

  • For Node 12, 12.22.0 is the most recent semver-minor release as of writing.
  • For Node 14, 14.17.0 is the most recent release as of writing.
  • For Node 15, I didn't see anything after 15.3.0 that we'd be able to use. There are some improvements to promise-based APIs and workers that have been backported to 14 but not 12, so we couldn't use them.
  • For Node 16, there are syntax features after 16.0.0, but we wouldn't be able to use them because they haven't been backported.

I recommend we adopt @mysticatea's version range proposed above: ^12.22.0 || ^14.17.0 || >=15.3.0.

@ljharb
Copy link
Sponsor Contributor

ljharb commented May 12, 2021

(private methods and accessors only work in node v14.6+, unfortunately)

aladdin-add added a commit to aladdin-add/eslint that referenced this issue May 14, 2021
@mdjermanovic mdjermanovic moved this from Ready to Implement to Pull Request Opened in Triage Jun 8, 2021
@nzakas nzakas changed the title breaking: drop node v10/v13 support breaking: drop node v10/v13v15 support Jun 8, 2021
@nzakas
Copy link
Member

nzakas commented Jun 8, 2021

Per #14592 (comment), we are also dropping support for v15.x, which is EOL this month.

aladdin-add added a commit to eslint/eslintrc that referenced this issue Jun 9, 2021
aladdin-add added a commit to eslint/eslint-visitor-keys that referenced this issue Jun 9, 2021
@mdjermanovic mdjermanovic changed the title breaking: drop node v10/v13v15 support breaking: drop node v10/v13/v15 support Jun 9, 2021
@nzakas nzakas moved this from Pull Request Opened to Ready for Merge in v8.0.0 Jun 17, 2021
nzakas pushed a commit to eslint/eslint-visitor-keys that referenced this issue Jun 24, 2021
aladdin-add added a commit to eslint/eslint-scope that referenced this issue Jun 26, 2021
aladdin-add added a commit to aladdin-add/eslint that referenced this issue Jul 14, 2021
nzakas added a commit to eslint/eslintrc that referenced this issue Aug 4, 2021
* Breaking: drop node v10/v13/v15 (refs eslint/eslint#14023)

* chore: fix a linting problem

Co-authored-by: Nicholas C. Zakas <nicholas@nczconsulting.com>
Triage automation moved this from Pull Request Opened to Complete Aug 5, 2021
nzakas pushed a commit that referenced this issue Aug 5, 2021
* Breaking: drop node v10/v13 (fixes #14023)

* Update .github/workflows/ci.yml

Co-authored-by: Brandon Mills <btmills@users.noreply.github.com>

* Update relative-module-resolver.js

* Update package.json

Co-authored-by: Michaël De Boey <info@michaeldeboey.be>

* Update ci.yml

* Update README.md

* Update getting-started.md

* chore: fs-teardown ^0.1.3

Co-authored-by: Brandon Mills <btmills@users.noreply.github.com>
Co-authored-by: Michaël De Boey <info@michaeldeboey.be>
@nzakas nzakas moved this from Ready for Merge to Done in v8.0.0 Aug 5, 2021
@eslint-github-bot eslint-github-bot bot locked and limited conversation to collaborators Feb 2, 2022
@eslint-github-bot eslint-github-bot bot added the archived due to age This issue has been archived; please open a new issue for any further discussion label Feb 2, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
accepted There is consensus among the team that this change meets the criteria for inclusion archived due to age This issue has been archived; please open a new issue for any further discussion breaking This change is backwards-incompatible core Relates to ESLint's core APIs and features enhancement This change enhances an existing feature of ESLint
Projects
Archived in project
v8.0.0
  
Done
Triage
Complete
Development

Successfully merging a pull request may close this issue.

5 participants