Node-slack-sdk: Define ES2015 compatibility plan

Created on 12 Jul 2016  路  5Comments  路  Source: slackapi/node-slack-sdk

So PRs that use ES6 features don't get accidentally approved.

discussion

Most helpful comment

Wouldn't it be better to slowly move towards only supporting Node 4 and upwards? This is similar to what libraries like ESLint has done recently. Both Node 0.10 and 0.12 are after all going out of maintenance mode during 2016.

Then node-slack-sdk could incrementally start using ES2015+ features as supported by the latest LTS release (currently version 4).

Also see the LTS schedule: https://github.com/nodejs/LTS#lts_schedule

All 5 comments

Wouldn't it be better to slowly move towards only supporting Node 4 and upwards? This is similar to what libraries like ESLint has done recently. Both Node 0.10 and 0.12 are after all going out of maintenance mode during 2016.

Then node-slack-sdk could incrementally start using ES2015+ features as supported by the latest LTS release (currently version 4).

Also see the LTS schedule: https://github.com/nodejs/LTS#lts_schedule

@DEGoodmanWilson correct me if i'm wrong, but it seems like Travis will invoke npm test, npm test will invoke npm lint, npm lint will invoke eslint, and our current .eslintrc configuration is on "airbnb/legacy", which is just ES5.

Doesn't that mean Travis is already checking?

Similar to @ekmartin, I'd also like to start planning how to move to ES2015 and later. We should come up with and document a migration plan. If you agree that the first issue is accomplished, I'd like to rename this issue "Define ES2015 compatibility plan".

I honestly do not recall why I opened this issue. I think this was meant as a reminder to myself to check that we are doing this? 鈽癸笍 馃

here's my proposal:

  • v3.x versions are the last to support node < 4.2 (the oldest LTS at the moment).
  • v4.x versions and beyond are authored in the latest accepted ECMAScript syntax (ES2017 at the moment). a transpiler (most likely typescript, or possibly babel) is used to output syntax that is compatible with node v4.2.0 and above (the oldest LTS at the moment).
  • after the release of v4.0.0, the v3.x versions are marked as deprecated, and a branch is maintained only for absolutely critical security fixes. 6 months later, that branch gets marked as unsupported.
  • each time an LTS release's maintenance period ends, we evaluate what is to be gained by ending support for that version in this package, and are able to drop support so long as we increment the major version number.

the above proposal is how we've decided to proceed in our roadmap. thanks for the discussion y'all!

Was this page helpful?
0 / 5 - 0 ratings

Related issues

lrettig picture lrettig  路  21Comments

aoberoi picture aoberoi  路  10Comments

bobrik picture bobrik  路  25Comments

freder picture freder  路  12Comments

hckhanh picture hckhanh  路  21Comments