Conversation
alphaDuration: 'P5M',
betaDuration: 'P1M',
currentDuration: 'P6M',
activeDuration: 'P12M',
maintenanceDuration: 'P18M',
currentDuration: ['P6M', 'P12M'], activeDuration: ['P18M', false], maintenanceDuration: ['P24M', 'P2M'],
currentDuration: 'P6M', activeDuration: ['P24M', false, false, false], maintenanceDuration: ['P18M', 'P2M', 'P2M', 'P2M'],
currentDuration: 'P12M', activeDuration: false, maintenanceDuration: 'P18M',
Added tentative release schedule for version 27.0.0 and related changes.
Added definitions for Alpha and Beta phases, including stability expectations and release frequency details.
Updated instructions for adding proposals and clarified release schedule details.
3fc159a to
fda2937
Compare
fda2937 to
01fefb6
Compare
|
During the last release meeting, it was mentioned that we also include the total LTS lifespan, for those who don't install unstable and current releases. |
richardlau
left a comment
There was a problem hiding this comment.
Since the changes will break this tool for general users of https://www.npmjs.com/package/lts I'm going to pre-emptively request changes to prevent it landing by accident.
I think we will never land this PR. We agreed to open this PR just to debate on proposals and define trade-offs for further discussion. |
| - for even-numbered releases: 12 months | ||
| - for odd-numbered releases: 0 months | ||
| 3. maintenance duration: | ||
| - for even-numbered releases: 24 months |
There was a problem hiding this comment.
| - for even-numbered releases: 24 months | |
| - for even-numbered releases: 18 months |
Status quo for LTS releases is 18 months in maintenance. For example Node.js 22 enters maintenance on 21 October 2025 and End-of-Life on 30 April 2027.
| - for odd-numbered releases: 3 months | ||
|
|
||
| Total life span (from start of beta until end of maintenance): | ||
| - for even-numbered releases: 42 months |
There was a problem hiding this comment.
| - for even-numbered releases: 42 months | |
| - for even-numbered releases: 36 months |
| ```sh | ||
| node ./bin/lts.js >> release-schedule-proposal/README.md | ||
| ``` | ||
|
|
There was a problem hiding this comment.
Don't know if this the appropriate place to record this, but this is feedback I have from talking to IBM/RH teams:
| ## Enterprise feedback | |
| * Current releases are generally ignored (including the even-numbered releases). | |
| * Prefer to keep (i.e. do not shorten) 30 month LTS support window (from start of Active LTS through to End-of-Life). | |
| * Several teams asked if the LTS support window could be extended (5 years was quoted for other software (e.g. OpenSSL) LTS). | |
| * Want predictable cadence for forward planning. | |
| * Want LTS support window overlap to aid migration from one LTS release line to another. |
(I called it Enterprise, but it may not be too dissimilar to general feedback for users deploying apps they are relying on into production.)
| ```sh | ||
| node ./bin/lts.js >> release-schedule-proposal/README.md | ||
| ``` | ||
|
|
There was a problem hiding this comment.
More "I have no idea where to put this, but useful context" (maybe security section?):
(non-exhaustive)
| ## Dependency lifecycles | |
| Dependency | LTS policy | Notes | |
| ---|---|--- | |
| c-ares | Unknown | | |
| ICU4C | Unknown | Releases historically appear to be April and October. We have generally updated within release lines as ICU does not consider changes to localized output to be breaking, but we have had issues raised against Node.js when output changes. | |
| libuv | None | Has historically accommodated Node.js due to overlap of collaborators/maintainers. | |
| npm | None | https://github.com/npm/cli/wiki/Integrating-with-node | |
| OpenSSL | [Policy](https://openssl-library.org/policies/releasestrat/index.html). New LTS every 2 years. Each LTS supported minimum of 5 years. | "In essence that means an LTS will be released every April in odd-numbered years." so may just miss new LTS versions for Node.js semver-majors if we keep to April releases. | |
| Undici | Unknown | Overlap of collaborators/maintainers with Node.js. | |
| V8 | None. Does not follow semver. | V8 updates are generally considered semver-major as the V8 ABI is part of Node.js'. | |
| zlib | Unknown | Node.js is using Chromium's fork of zlib. |
As discussed in the last release wg meeting, let's use this PR for comments and suggestions
https://github.com/aduh95/lts-schedule/tree/release-proposals/release-schedule-proposal
cc: @nodejs/releasers