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: require Node 8 #80

Merged
merged 1 commit into from
May 9, 2019
Merged

feat: require Node 8 #80

merged 1 commit into from
May 9, 2019

Conversation

demurgos
Copy link
Contributor

@demurgos demurgos commented May 9, 2019

Why

  • Align with Node's support policy by targeting oldest LTS.
  • Use promise-based APIs out-of-the box (without having to use bluebird)
  • Remove workarounds for old Node versions
  • Refactor the internals to use ES syntax (scoped variables, spread args, arrow functions, etc.)

Supporting unmaintained Node versions is proving to be an increasing burden as third party libraries drop support for it (e.g. tap). Using ES5 syntax while ES2015 brought a lot of improvements to the language is also a weight on maintenance. Finally, this is a pretty mild breaking change: there is no intent to break API compat. Since it implies a semver major update, it will be opt-in and only affect users explicitly updating their projects. The primary motivations for this PR is improving coverage tools using V8, a feature only present on modern Node versions anyway.

What

  • Update CI to run against the currently supported Node versions: Node 8, 10 and 12.
  • Add engines.node field to package.json to warn users trying to use the library on an unmaintained Node version.

I am sending the PR again because Appveyor and Travis seem to have issues with the previous PR ( #78 )

/cc @isaacs @bcoe

@demurgos demurgos force-pushed the require-node8 branch 2 times, most recently from 92758b8 to 4b5830f Compare May 9, 2019 17:33
@demurgos demurgos mentioned this pull request May 9, 2019
@demurgos demurgos force-pushed the require-node8 branch 2 times, most recently from c966a20 to 21d4fb2 Compare May 9, 2019 17:41
## Why

- Align with Node's support policy by targeting oldest LTS.
- Use promise-based APIs out-of-the box (without having to use bluebird)
- Remove workarounds for old Node versions
- Refactor the internals to use ES syntax (scoped variables, spread args, arrow functions, etc.)

Supporting unmaintained Node versions is proving to be an increasing burden as third party libraries drop support for it (e.g. `tap`). Using ES5 syntax while ES2015 brought a lot of improvements to the language is also a weight on maintenance. Finally, this is a pretty mild breaking change: there is no intent to break API compat. Since it implies a semver major update, it will be opt-in and only affect users explicitly updating their projects. The primary motivations for this PR is improving coverage tools using V8, a feature only present on modern Node versions anyway.

## What

- Update CI to run against the currently supported Node versions: Node 8, 10 and 12.
- Add `engines.node` field to `package.json` to warn users trying to use the library on an unmaintained Node version.
@bcoe bcoe merged commit 19543e7 into istanbuljs:master May 9, 2019
@demurgos demurgos deleted the require-node8 branch May 9, 2019 20:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants