GoogleChromeLabs / jsvu

JavaScript (engine) Version Updater
https://mths.be/jsvu
Apache License 2.0
1.9k stars 92 forks source link

Consider revising node 18 requirement #134

Open kg opened 1 year ago

kg commented 1 year ago

Users of Debian 11 (stable) don't have access to Node 18 from system packages, only Node 17.2:

npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: 'jsvu@2.0.1',
npm WARN EBADENGINE   required: { node: '>=18.0.0' },
npm WARN EBADENGINE   current: { node: 'v17.2.0', npm: '8.19.2' }
npm WARN EBADENGINE }

While 18 is LTS it might make sense to keep the requirement at 17.x until both debian and ubuntu have it, unless there's some specific reason why jsvu is complex enough to need 18. I'm still able to use the current version of jsvu to update v8, but we also have some CI machines on older distributions that are unable to use jsvu at all due to the increased requirements. Maybe there's something I don't understand about jsvu that explains why it needs a node release from 10 months ago. Thanks!

mathiasbynens commented 1 year ago

Thanks for the feedback. At some point we decided on the policy in the README:

jsvu follows the latest active LTS version of Node.js.

The reason behind this was simply to keep the maintenance burden minimal by making it clear we won’t actively / officially support old versions of Node.js.

I’m open to revising this, and you make a strong case. Is there an easy way to figure out the min(node_lts_version, debian_node_version, ubuntu_node_version)?

kg commented 1 year ago

I don't know how to determine it for ubuntu, but for debian you can look at the page for the package: https://tracker.debian.org/pkg/nodejs I know very little about their internal processes, but it looks like they've been putting node 18.x builds into unstable/experimental/testing repeatedly for a while but none have graduated to stable.

I see a link to https://repology.org/project/nodejs/packages on that page, and if you search for 'debian 11' it says Node 12.22 there (odd, I have 17 from system packages, I don't have an explanation for this), and it says that debian 12 is on Node 18.13. You can also search for 'Ubuntu 22' there and see Node 18.7, while Ubuntu 23.04 lists Node 18.13.

Sadly now that I looked into it more I can't explain how I got Node 17.2 from system packages, but it at least makes sense that I don't have Node 18 on Debian 11. Maybe one of my other package sources is offering 17.x.

karlhorky commented 11 months ago

Should be updated in any case now, since Node.js v20 is now active LTS