Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion apps/site/components/EOL/EOLReleaseTable/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ const EOLReleaseTable: FC = async () => {
const releaseData = await provideReleaseData();
const vulnerabilities = await provideVulnerabilities();

const eolReleases = releaseData.filter(release => release.status === 'EOL');
const eolReleases = releaseData.filter(release => release.status === 'EoL');

const t = await getTranslations();

Expand Down
2 changes: 1 addition & 1 deletion apps/site/components/withReleaseAlertBox.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ const WithReleaseAlertBox: FC<WithReleaseAlertBoxProps> = ({ status }) => {
const t = useTranslations();

switch (status) {
case 'EOL':
case 'EoL':
return (
<AlertBox
title={t('components.common.alertBox.warning')}
Expand Down
10 changes: 5 additions & 5 deletions apps/site/next-data/generators/__tests__/releaseData.test.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ describe('generateReleaseData', () => {
return generateReleaseData();
};

it('returns EOL when release is on or past EOL date', async t => {
it('returns EoL when release is on or past EoL date', async t => {
const result = await runWithNodevuData(t, '2024-10-18', {
14: {
releases: {
Expand All @@ -43,10 +43,10 @@ describe('generateReleaseData', () => {
},
});

assert.equal(result[0]?.status, 'EOL');
assert.equal(result[0]?.status, 'EoL');
});

it('returns Current when release is not EOL and latest is not LTS', async t => {
it('returns Current when release is not EoL and latest is not LTS', async t => {
const result = await runWithNodevuData(t, '2026-04-14', {
20: {
releases: {
Expand Down Expand Up @@ -74,7 +74,7 @@ describe('generateReleaseData', () => {
assert.equal(result[0]?.status, 'Current');
});

it('returns LTS when release is not EOL and latest is flagged as LTS', async t => {
it('returns LTS when release is not EoL and latest is flagged as LTS', async t => {
const result = await runWithNodevuData(t, '2026-04-14', {
22: {
releases: {
Expand Down Expand Up @@ -102,7 +102,7 @@ describe('generateReleaseData', () => {
assert.equal(result[0]?.status, 'LTS');
});

it('returns Current when release is not EOL and LTS date has passed but latest is not LTS', async t => {
it('returns Current when release is not EoL and LTS date has passed but latest is not LTS', async t => {
const result = await runWithNodevuData(t, '2026-04-14', {
24: {
releases: {
Expand Down
2 changes: 1 addition & 1 deletion apps/site/next-data/generators/releaseData.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ const getNodeReleaseStatus = (latest, eol) => {
const now = new Date();

if (eol && now >= new Date(eol)) {
return 'EOL';
return 'EoL';
}

if (latest.lts.isLts) {
Expand Down
2 changes: 1 addition & 1 deletion apps/site/next.constants.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -210,7 +210,7 @@ export const SEVERITY_KIND_MAP = {
* @type {Record<import('./types/releases').NodeReleaseStatus, import('@node-core/ui-components/Common/Badge').BadgeKind>}
*/
export const STATUS_KIND_MAP = {
EOL: 'warning',
EoL: 'warning',
LTS: 'info',
Current: 'default',
};
Expand Down
20 changes: 10 additions & 10 deletions apps/site/pages/en/about/eol.mdx
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
---
title: End-Of-Life
layout: about
description: Understand Node.js End-of-Life, what it means for security, tooling, and compliance, plus EOL version details and commercial support options.
description: Understand Node.js End-of-Life, what it means for security, tooling, and compliance, plus EoL version details and commercial support options.
---

# End-Of-Life (EOL)
# End-Of-Life (EoL)

## Why and how Node.js releases reach End-Of-Life

Expand All @@ -16,29 +16,29 @@ Major versions of Node.js are released, patched, and designated End-Of-Life on a
</Button>
<span>or</span>
<Button as="a" kind="warning" href="#commercial-support" className="flex-1">
<span>Get security support for EOL versions</span>
<span>Get security support for EoL versions</span>
</Button>
</div>

[View the Node.js release schedule](/about/releases/).

## What Happens When a Release Line Reaches EOL
## What Happens When a Release Line Reaches EoL

When a version reaches End-Of-Life, it means that it will no longer receive updates, including security patches. This can leave applications running on these versions vulnerable to security issues and bugs that will never be fixed.

- **No more vulnerability fixes**: When new security releases reveal issues and patches in newer major lines, even if the same vulnerability affects EOL release lines, there will not be any new releases for them. Users still clinging on to EOL release lines and using affected code paths will be immediately vulnerable to attacks exploiting these disclosed vulnerabilities.
- **Tool-chain breakage**: EOL releases may no longer dynamically link to newer versions of the shared libraries they depend on, blocking or breaking system updates.
- **Ecosystem drift**: Many popular user-land packages drop support for EOL Node.js releases over time. When an application clings onto outdated packages, it may suffer from even more unfixed vulnerabilities and bugs, further drifting away from ecosystem norm.
- **No more vulnerability fixes**: When new security releases reveal issues and patches in newer major lines, even if the same vulnerability affects EoL release lines, there will not be any new releases for them. Users still clinging on to EoL release lines and using affected code paths will be immediately vulnerable to attacks exploiting these disclosed vulnerabilities.
- **Tool-chain breakage**: EoL releases may no longer dynamically link to newer versions of the shared libraries they depend on, blocking or breaking system updates.
- **Ecosystem drift**: Many popular user-land packages drop support for EoL Node.js releases over time. When an application clings onto outdated packages, it may suffer from even more unfixed vulnerabilities and bugs, further drifting away from ecosystem norm.
- **Compliance red flags**: Many industry audits forbid unmaintained runtimes.

## EOL Versions
## EoL Versions

<EOLReleaseTable />

## Commercial Support

Despite the obvious downsides of using EOL releases, in practice, organizations face constraints that prevent immediate upgrades, such as legacy codebases, compliance requirements, or complex dependency chains. Through the [OpenJS Foundation Ecosystem Sustainability Program](https://openjsf.org/blog/ecosystem-sustainability-program), Node.js is supported by HeroDevs and NodeSource to provide commercial services for security fixes.
Despite the obvious downsides of using EoL releases, in practice, organizations face constraints that prevent immediate upgrades, such as legacy codebases, compliance requirements, or complex dependency chains. Through the [OpenJS Foundation Ecosystem Sustainability Program](https://openjsf.org/blog/ecosystem-sustainability-program), Node.js is supported by HeroDevs and NodeSource to provide commercial services for security fixes.

HeroDevs provides [Never-Ending Support (NES)](https://nodejs.org/esp/herodevs) for Node.js versions past their official maintenance phase. This includes security patches, compliance assistance, and technical support to help bridge the gap while you plan your upgrade strategy.

Using EOL releases through commercial support should be viewed as a temporary solution—the goal should always be to upgrade to actively supported versions.
Using EoL releases through commercial support should be viewed as a temporary solution—the goal should always be to upgrade to actively supported versions.
6 changes: 3 additions & 3 deletions apps/site/pages/en/about/partners.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -29,13 +29,13 @@ Supporters are individuals and organizations that provide financial support thro

## Ecosystem Sustainability Program (ESP)

Do you run a node.js version on End-of-Life (EOL)? The OpenJS Ecosystem Sustainability Program (ESP)
is a program that helps organizations to maintain their Node.js applications on EOL versions.
Do you run a node.js version on End-of-Life (EoL)? The OpenJS Ecosystem Sustainability Program (ESP)
is a program that helps organizations to maintain their Node.js applications on EoL versions.
The program provides access to security patches, compliance assistance, and technical support
to help bridge the gap while you plan your upgrade strategy. For more information about
End-Of-Life versions, please visit [End-Of-Life Node.js Releases](/about/eol)

> Using EOL releases through commercial support should be viewed as a temporary solution, the goal should always
> Using EoL releases through commercial support should be viewed as a temporary solution, the goal should always
> be to upgrade to actively supported versions.

<PartnersList size="large" category="esp" />
Expand Down
2 changes: 1 addition & 1 deletion apps/site/pages/en/about/previous-releases.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ Installation methods designated as “Official” must meet the following requir

Community installation methods included on the self-service download page (located at /download) must also adhere to a minimum set of criteria:

- **Version Support:** Must support all currently supported, non-End-of-Life (EOL) Node.js versions.
- **Version Support:** Must support all currently supported, non-End-of-Life (EoL) Node.js versions.
- **OS Compatibility:** Must function on at least one officially supported Operating System (OS).
- **Broad OS Support:** Cannot be limited to a subset of OS distributions or versions.
- For example, an installation method claiming compatibility with “Windows” must function on “Windows 10”, “Windows 11”, and all their editions (including server versions).
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,9 +63,9 @@ As of October 2026:
| Alpha | 6 months | Oct to Mar. Early testing, semver-major allowed |
| Current | 6 months | Apr to Oct. Stabilization |
| LTS | 30 months | Long-term support with security fixes |
| EOL | Infinity | The project no longer provides any support |
| EoL | Infinity | The project no longer provides any support |

Total support: 36 months from first Current release to [End of Life (EOL)](https://nodejs.org/en/about/eol).
Total support: 36 months from first Current release to [End of Life (EoL)](https://nodejs.org/en/about/eol).

### About the Alpha Channel

Expand Down
2 changes: 1 addition & 1 deletion apps/site/pages/en/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ layout: home
<Button kind="secondary" className="!block" href="/about/eol">
<span>Get security support</span>
<br />
<small className="!text-xs">for EOL Node.js versions</small>
<small className="!text-xs">for EoL Node.js versions</small>
</Button>

<div className="flex justify-center ml:mt-3">
Expand Down
20 changes: 10 additions & 10 deletions apps/site/pages/es/about/eol.mdx
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
---
title: Fin de Vida Útil
layout: about
description: Entender la fase fin de vida útil de Node.js, su significado para seguridad, herramientas, y cumplimiento, junto con detalles de las versiones EOL y opciones para soporte comercial.
description: Entender la fase fin de vida útil de Node.js, su significado para seguridad, herramientas, y cumplimiento, junto con detalles de las versiones EoL y opciones para soporte comercial.
---

# Fin de Vida Útil (EOL)
# Fin de Vida Útil (EoL)

## Cómo y por qué los lanzamientos de Node.js tienen un fin de vida útil

Expand All @@ -18,29 +18,29 @@ Existe un horario regular para lanzar, remendar, y pasar al fin de vida útil la
<span>o</span>

<Button as="a" kind="warning" href="#commercial-support" className="flex-1">
<span>Obtener soporte de seguridad para versiones EOL</span>
<span>Obtener soporte de seguridad para versiones EoL</span>
</Button>
</div>

[Ve el calendario de lanzamientos de Node.js](/about/releases/).

## Que sucede cuando un lanzamiento pasa su fin de vida útil

Cuando una versión pasa su fin de vida útil (EOL), deja de recibir actualizaciones como remiendas de seguridad. Como resultado, las aplicaciones que usan estas versiones pueden volver vulnerables a defectos de seguridad y otros errores que nunca serán arreglados.
Cuando una versión pasa su fin de vida útil (EoL), deja de recibir actualizaciones como remiendas de seguridad. Como resultado, las aplicaciones que usan estas versiones pueden volver vulnerables a defectos de seguridad y otros errores que nunca serán arreglados.

- **No más correcciones de vulnerabilidades**: Cuando se publiquen nuevas versiones de seguridad que revelen problemas y parches en líneas principales más recientes, no habrá nuevas versiones para líneas de lanzamiento EOL, incluso si la misma vulnerabilidad afecta a líneas de lanzamiento EOL. Los usuarios que aún se aferran a líneas de lanzamiento EOL y utilizan rutas de código afectadas serán inmediatamente vulnerables a ataques que exploten estas vulnerabilidades divulgadas.
- **Errores en la cadena de herramientas**: Los lanzamientos EOL pueden dejar de vincular con versiones nuevas de dependencias externas, el cual podría impedir actualizaciones futuras.
- **Cambios en el ecosistema**: Varios paquetes populares dejan de funcionar con versiones EOL de Node.js. Cuando una aplicación depende de paquetes anticuados, puede sufrir de más vulnerabilidades y fallos, volviéndose más difícil de reconciliar con el ecosistema actual.
- **No más correcciones de vulnerabilidades**: Cuando se publiquen nuevas versiones de seguridad que revelen problemas y parches en líneas principales más recientes, no habrá nuevas versiones para líneas de lanzamiento EoL, incluso si la misma vulnerabilidad afecta a líneas de lanzamiento EoL. Los usuarios que aún se aferran a líneas de lanzamiento EoL y utilizan rutas de código afectadas serán inmediatamente vulnerables a ataques que exploten estas vulnerabilidades divulgadas.
- **Errores en la cadena de herramientas**: Los lanzamientos EoL pueden dejar de vincular con versiones nuevas de dependencias externas, el cual podría impedir actualizaciones futuras.
- **Cambios en el ecosistema**: Varios paquetes populares dejan de funcionar con versiones EoL de Node.js. Cuando una aplicación depende de paquetes anticuados, puede sufrir de más vulnerabilidades y fallos, volviéndose más difícil de reconciliar con el ecosistema actual.
- **Incumplimiento**: A menudo, las auditorías prohíben sistemas de runtime no mantenidos.

## Versiones EOL
## Versiones EoL

<EOLReleaseTable />

## Soporte Comercial

A pesar de las desventajas obvias de usar versiones EOL, en la práctica, las organizaciones enfrentan restricciones que impiden actualizaciones inmediatas, como bases de código heredadas, requisitos de cumplimiento o cadenas de dependencias complejas. A través del [Programa de Sostenibilidad del Ecosistema de la Fundación OpenJS](https://openjsf.org/blog/ecosystem-sustainability-program), Node.js cuenta con el apoyo de HeroDevs y NodeSource para proporcionar servicios comerciales para correcciones de seguridad.
A pesar de las desventajas obvias de usar versiones EoL, en la práctica, las organizaciones enfrentan restricciones que impiden actualizaciones inmediatas, como bases de código heredadas, requisitos de cumplimiento o cadenas de dependencias complejas. A través del [Programa de Sostenibilidad del Ecosistema de la Fundación OpenJS](https://openjsf.org/blog/ecosystem-sustainability-program), Node.js cuenta con el apoyo de HeroDevs y NodeSource para proporcionar servicios comerciales para correcciones de seguridad.

HeroDevs ofrece un [Soporte Interminable (NES)](https://nodejs.org/esp/herodevs) para versiones de Node.js que ya no tienen soporte oficial. Esto incluye parches de seguridad, ayuda con cumplimiento y soporte técnico para darte tiempo mientras planificas tu actualización.

Usar versiones EOL con soporte comercial debería verse como una solución temporal, el objetivo siempre debería ser actualizar a versiones con soporte activo.
Usar versiones EoL con soporte comercial debería verse como una solución temporal, el objetivo siempre debería ser actualizar a versiones con soporte activo.
2 changes: 1 addition & 1 deletion apps/site/pages/es/about/previous-releases.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ Para considerarse "Oficial", métodos de instalación deben cumplir con los sigu

Para ser incluida en la página de descargas (/download), los métodos de instalación de comunidad deben cumplir con unos requisitos mínimos:

- **Apoyo de versiones:** Debe proveer instalaciones de cada versión de Node.js apoyado oficialmente que no ha pasado el fin de su vida útil (EOL).
- **Apoyo de versiones:** Debe proveer instalaciones de cada versión de Node.js apoyado oficialmente que no ha pasado el fin de su vida útil (EoL).
- **Compatibilidad con Sistemas Operativos**: Debe operar en uno o más sistemas operativos oficialmente compatible.
- **Apoyo amplio de Sistemas Operativos:** No se puede limitar a una fracción de distribuciones o versiones del sistema operativo.
- Por ejemplo, si un método de instalación declara compatibilidad con "Windows", debe funcionar en cada edición de "Windows 10" y "Windows 11" (incluso versiones para servidores).
Expand Down
Loading
Loading