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

drop Node.js v16 (EoL) support #6429

Merged
merged 2 commits into from
Feb 27, 2024
Merged

Conversation

cometkim
Copy link
Member

The official maintenance for Node 16 ended last October. Perfect timing

This won't break anything right away, but it should be marked as a breaking change. Then we can make further improvements in the JS part in the future

@cometkim
Copy link
Member Author

cometkim commented Nov 14, 2023

I understand there are concerns about drastically increasing the supported Node.js version

How about dropping Node.js v15 or lower? We already do testing only on v16. (v16.x has complete ESM support, including support for top-level await)

Gradual Node.js version upgrades will help us maintain a thin JS wrapper as Node.js itself is becoming useful.

@cknitt
Copy link
Member

cknitt commented Jan 31, 2024

@cristianoc @zth How shall we proceed with this?
(For me, it would be fine to merge to master = v12 now.)

@cometkim
Copy link
Member Author

cometkim commented Feb 1, 2024

fyi what are new features in nodejs, useful for rescript peers and compiler itself.

  • ESM support (including TLW since v14.8.0): So we can convert our syntax into fully ES standard
  • conditional exports (added in v12.6.0): which is solution for dual-package hazard in Node.js ecosystem.
  • util.parseArgs (finalized in v18.11.0, v16.19.0): which handle most complex part of our JS wrapper.
  • test runner (added in v16.19.0): which can replace mocha in our dev env with modern APIs
  • fs/promises (v14.0.0): can used without promisify-ing, or unwrapping fs.promises.
  • JS class field syntax (v12.x)
  • JS optional chaning and nullish coalescing (v14.x)
  • Perf & security improvements

@cknitt
Copy link
Member

cknitt commented Feb 7, 2024

@cometkim Could you rebase and move the changelog entry to 12.0.0-alpha.1?

@cometkim
Copy link
Member Author

@cknitt done

Copy link
Member

@cknitt cknitt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

@cknitt cknitt enabled auto-merge (squash) February 27, 2024 17:34
@cometkim
Copy link
Member Author

A lot of follow-up work is possible to modernize our dev env and js wrapper

@cknitt cknitt merged commit c634719 into rescript-lang:master Feb 27, 2024
14 of 15 checks passed
@cometkim cometkim deleted the drop-eol branch February 27, 2024 21:17
JonoPrest pushed a commit to JonoPrest/rescript-compiler that referenced this pull request Mar 21, 2024
* drop Node.js v16 (EoL) support

* add CHANGELOG
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