Bringing Forward the End-of-Life Date for Node.js 16
nodejs.org
nodejs.org
I think to expect perfection in timing and aligning work done by humans, even where someone could make reasonable foresight arguments, is overlooking how challenging this wide level of supporting an ecosystem is.
The response they made is in regards to security and making ut clear to users that they are expected to be anti-fragile to change. Even if the roadmap itself changes.
I've changed decisions, even flip-flopped several times due to uncertainty. When at the heart of the message they are acting with positive intent, I applaud their short, sweet, and to the point message along with their reasoning.
I worked with an organization that allowed TLS 1.1 for far too long because customers systems hadn't been updated. If they paid enough money, we had to allow it. Meanwhile we were getting beat up by the competition because, "Why would any good development company allow this?!?"
[0]: https://docs.aws.amazon.com/lambda/latest/dg/lambda-nodejs.h...
[1]: https://cloud.google.com/functions/docs/concepts/nodejs-runt...
Their latest version of Cloud Functions is actually using Cloud Run under the hood already.
Cloud Functions/Lambda are very nice in a company where you don't necessarily have access to making your own AMI, or container image etc.
At least that's what we used them for at my old job. Still had to deal with some level of corporate tech indirection (E.G. We couldn't make the API gateway however we wanted, our account had no access to route53 etc.), but much less than with containers. It was just a quicker way to get code running.
I hope they add Node 18 sooner than that.
> We recognize that customers have been waiting for some time for this runtime release. We hear your feedback and plan to release the next Node.js runtime version in a timelier manner.
https://aws.amazon.com/blogs/compute/node-js-16-x-runtime-no...
Here’s our choices. Here’s our thinking. Here’s what we decided and why.
Not ideal but it’s still over a year from now which gives folks time to plan.
[0] https://www.github.developerdan.com/node-version-audit/
[1] https://raw.githubusercontent.com/nodejs/Release/main/schedu...
But let's be real, everyone on Node 16 is going to forget about this and panic next August. Then it'll take a Herculean effort by a few heroes in each company to pull off the migration under a tight deadline of a few weeks.
If you don't work in tech, it's hard to explain to the higher-ups why some big software upgrade that will result in no user-facing improvements needs to take months off your million-dollar product launch.
Besides, given the turnover these days in both people and frameworks, you're lucky if you're even still on the same stack 15 months later, lol
Its a sad reality of web development unfortunately
Upgrading from 16 to 18 on Windows or Linux took me like 2 minutes of resolving some conflicts. That same repo took several days of investigation on M1, and eventually I gave up...
[0] http://web.archive.org/web/20210403090336/https://www.openss... -- this is prior to Node.js 16's release
> The OpenSSL 3.0 release schedule is documented on the OpenSSL 3.0 Release Schedule wiki page. We expect the final release to be in early Q4 2020.
Node 16 Release date:
> 2021-04-20
They gave themselves 3-6 months buffer from 3.0 release to Node 16 release, and decided to move forward when OpenSSL was 4-6 months behind schedule, with no idea when 3.0 would release
OpenSSL was then released in SEPTEMBER of 2021, nearly a year late, and 4 months after Node 16's LTS start date.... As of April, the Node team could not know if OpenSSL was going to be released tomorrow, next month, or next year
I think they made the right choice to keep moving forward instead of halting work waiting on OpenSSL to get back on schedule... by April 2021, when SSL 3.0 was already ~5-6 months behind, I would have expected them to extend support for 1.1.1 for another few months... they didn't but that's mostly a moot point -- OpenSSL has committed to security fixes through the Node 16 end-of-life.. but the Node team isn't comfortable with that, so they made a change
https://github.com/nodejs/TSC/issues/1222 https://github.com/nodejs/TSC/pull/859
It's not impossible. They just have to support more.
If they’d move to LTS a month earlier, not a whole lot of people would gain something from it.
With the canonical schedule you can do an upgrade every 2 years, skipping over every other LTS. eg you could go from Node 14 to Node 18 to Node 22.
But with the early EOL, if you're on Node 16 you can't jump to Node 20, so you have to do an extra upgrade.
For companies with big production codebases it can be a lot of work to qualify new releases.
It would be great if the Node team pulls forward Node 20 LTS by 6 months to preserve the skip-every-other pattern.