Skip to content

OpenSSL LTS strategy alignment with future Node majors #1869

@panva

Description

@panva

Summary

Node.js 27.x and OpenSSL 4.2 LTS are both scheduled for April 2027. Because the releases land within weeks of each other, we need to decide how Node.js 27.x should handle OpenSSL before it enters LTS in October 2027.

The decision affects whether Node.js 27.x ships with OpenSSL 3.5 LTS, moves to OpenSSL 4.2 LTS before LTS promotion, ships first with a non-LTS OpenSSL 4.x release and updates to 4.2, or adjusts its release/support dates.

Note

Given the schedules aligning on April every 2nd year is a topic for us to solve every two years, hence opening this to set a pattern.

Refs: OpenSSL Release Strategy updated as of 07 May 2026 and its roadmap.

Relevant dates

Project Version Milestone Date
Node.js 27.x Alpha begins Oct 2026
Node.js 27.x Initial Current release Apr 2027
Node.js 27.x Enters LTS Oct 2027
Node.js 27.x EOL 2030-04-30
OpenSSL 3.5 LTS supported until 2030-04-08
OpenSSL 4.1 non-LTS release before 4.2
OpenSSL 4.2 LTS release ~Apr 2027
OpenSSL 4.2 Supported until ~Apr 2032

Option 1: Postpone Node.js 27.0.0 for OpenSSL 4.2

Note

Initial release delays are not unheard of for us.

Delay the initial Node.js 27.x Current release long enough to include OpenSSL 4.2 LTS from the start.

Pros:

  • Node.js 27.x carries the intended next OpenSSL LTS for its full lifecycle.
  • Avoids a major OpenSSL upgrade during the 27.x Current phase.
  • Avoids shortening Node.js 27.x support.

Cons:

  • Delays the first release under the new annual schedule.
  • Reduces the stabilization window before October 2027 LTS.
  • Depends on OpenSSL 4.2 release timing and readiness.

Option 2: Release Node.js 27.0.0 with OpenSSL 3.5, then upgrade to 4.2 before LTS

Note

We've done this during 24.x: it was released initially with 3.0 and upgraded to 3.5 before LTS. That was not an OpenSSL major-version upgrade.

Ship Node.js 27.0.0 on schedule with OpenSSL 3.5 LTS, then update to OpenSSL 4.2 LTS during Current before October 2027 LTS promotion.

This is different from 24.x because it would move between OpenSSL major versions. We already have 4.0.0 compatibility, but it is not without minor breakage and observable behavior changes.

Pros:

  • Preserves the Node.js 27.x April 2027 release target.
  • Allows Node.js 27.x LTS to be covered by OpenSSL 4.2 through EOL.
  • Gives some time to absorb OpenSSL 4.2 after its release.

Cons:

  • Requires a major OpenSSL upgrade during the Current phase.
  • Leaves less time to validate OpenSSL 4.2 before LTS.
  • May create compatibility, build, test, or ecosystem risk close to LTS promotion.

Option 3: Keep Node.js 27.x on OpenSSL 3.5 and shorten Node.js 27.x support

Note

We've shortened LTS for Node.js 16.x by ~7 months to align with EOL of OpenSSL 1.1.1. Node.js 8.x was also shortened by ~3 months to align with EOL of OpenSSL 1.0.2.

Keep Node.js 27.x on OpenSSL 3.5 LTS, but end Node.js 27.x support no later than OpenSSL 3.5's support end date. This would lose ~1 month worth of LTS.

Pros:

  • Avoids an OpenSSL major-version upgrade in Node.js 27.x.
  • Keeps Node.js 27.x on the already-established OpenSSL 3.5 LTS line.
  • Lowest dependency-change risk for 27.x.

Cons:

  • Current Node.js 27.x EOL is 2030-04-30, while OpenSSL 3.5 support ends 2030-04-08.
  • Node.js 27.x support would need to be shortened by roughly one month.
  • Creates an exception to the new 30-month LTS expectation.

Option 4: Release Node.js 27.0.0 with OpenSSL 4.1, then upgrade to 4.2 before LTS

Ship Node.js 27.0.0 with OpenSSL 4.1, a non-LTS OpenSSL 4.x release, then update to OpenSSL 4.2 LTS during Current before October 2027 LTS promotion.

This avoids moving from OpenSSL 3.x to 4.x during the Node.js 27.x Current phase. The remaining update before LTS would still need validation, but it would be within the same OpenSSL major version.

Pros:

  • Preserves the Node.js 27.x April 2027 release target.
  • Avoids an OpenSSL major-version upgrade during Node.js 27.x Current.
  • Allows Node.js 27.x LTS to be covered by OpenSSL 4.2 through EOL.
  • Gives Node.js 27.x earlier exposure to OpenSSL 4.x before LTS.

Cons:

  • Ships Node.js 27.0.0 with a non-LTS OpenSSL release. Still a supported one though. Not really a con.

References

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions