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

Comments

@aladdin-add
Copy link
Member

@aladdin-add 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

@nzakas
Copy link
Member

@nzakas 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 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 moved this from Evaluating to Ready to Implement in Triage Mar 27, 2021
@btmills btmills removed the accepted label Mar 27, 2021
@btmills btmills moved this from Ready to Implement to Evaluating in Triage Mar 27, 2021
@btmills
Copy link
Member

@btmills 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 moved this from Evaluating to Ready to Implement in Triage Apr 12, 2021
@btmills
Copy link
Member

@btmills btmills commented Apr 12, 2021

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

@nzakas
Copy link
Member

@nzakas 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 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 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 #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 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
@aladdin-add aladdin-add moved this from Planned to Pull Request Opened in v8.0.0 May 17, 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 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>
@nzakas nzakas closed this in #14592 Aug 5, 2021
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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Triage
Complete
v8.0.0
  
Done
Linked pull requests

Successfully merging a pull request may close this issue.

5 participants