Skip to content

Commit 24c1705

Browse files
committed
feat: add Upgrading Node.js info page and navigation
1 parent e35206c commit 24c1705

6 files changed

Lines changed: 91 additions & 2 deletions

File tree

apps/site/mdx/components.mjs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import AlertBox from '@node-core/ui-components/Common/AlertBox';
44
import BadgeGroup from '@node-core/ui-components/Common/BadgeGroup';
55
import Blockquote from '@node-core/ui-components/Common/Blockquote';
6+
import NodeSourceLogo from '@node-core/ui-components/Icons/PartnerLogos/NodeSource/Logo';
67
import MDXCodeTabs from '@node-core/ui-components/MDX/CodeTabs';
78
import {
89
MDXTooltip,
@@ -102,4 +103,5 @@ export default {
102103
Button,
103104
Link,
104105
LinkWithArrow,
106+
NodeSourceLogo,
105107
};

apps/site/navigation.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,10 @@
141141
"eol": {
142142
"link": "/about/eol",
143143
"label": "components.navigation.about.links.eol"
144+
},
145+
"upgradeAdvisor": {
146+
"link": "/about/upgrading-nodejs",
147+
"label": "components.navigation.about.links.upgradeAdvisor"
144148
}
145149
}
146150
},

apps/site/pages/en/about/eol.mdx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ description: Understand Node.js End-of-Life, what it means for security, tooling
1111
Major versions of Node.js are released, patched, and designated End-Of-Life on a predictable schedule. As it's not feasible to maintain all release lines in perpetuity, after a planned maintenance period, a Node.js major release line will stop being maintained by the project.
1212

1313
<div className="flex flex-col items-start gap-4 xl:flex-row xl:items-center">
14-
<Button kind="primary" href="/download" className="flex-1">
14+
<Button kind="primary" href="/about/upgrading-nodejs" className="flex-1">
1515
<span>Upgrade to the latest LTS Node.js®</span>
1616
</Button>
1717
<span>or</span>
@@ -42,3 +42,7 @@ Despite the obvious downsides of using EOL releases, in practice, organizations
4242
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.
4343

4444
Using EOL releases through commercial support should be viewed as a temporary solution—the goal should always be to upgrade to actively supported versions.
45+
46+
## Need help upgrading?
47+
48+
If you are planning an upgrade from an EOL version, you can utilize the [Upgrading Node.js](/about/upgrading-nodejs) page to get a free assessment of your application's readiness and a migration roadmap.
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
---
2+
title: Upgrading Node.js
3+
layout: about
4+
description: Get a free assessment to upgrade your Node.js applications with confidence.
5+
---
6+
7+
# Upgrading Node.js
8+
9+
Keeping your Node.js applications up-to-date is crucial for security, performance, and accessing the latest features. However, migrating from legacy versions can be challenging due to breaking changes, deprecated APIs, and dependency conflicts.
10+
11+
Node.js itself is and always will be free, open source software. The guidance below is designed to help you plan and execute upgrades, whether you do it yourself or work with one of the service providers in our ecosystem.
12+
13+
## Why Upgrade?
14+
15+
- **Security**: Insight into vulnerabilities affecting your specific codebase.
16+
- **Performance**: Leverage the latest V8 engine improvements and Node.js optimizations.
17+
- **Support**: Ensure your applications are on supported release lines (LTS).
18+
19+
## How to Upgrade
20+
21+
Upgrading a Node.js application typically involves the following steps:
22+
23+
1. **Assessment of Node.js versions, dependencies, and risk**: Identify outdated or supported versions and potential security risks in your environment.
24+
2. **Review Changelogs & Plan**: Look for breaking changes and create a phased upgrade plan for supported LTS releases.
25+
3. **Update Dependencies**: Ensure your third-party packages are compatible with the new Node.js version.
26+
4. **Hands-on execution**: Refactor code to address deprecations and breaking changes.
27+
5. **Run Tests**: Execute your test suite to identify any immediate regressions.
28+
6. **Deploy**: Roll out the upgrade to your staging and production environments.
29+
30+
Take the first step and download the latest Node.js version.
31+
32+
<div className="my-8 flex w-full justify-center">
33+
<Button kind="primary" href="/download">
34+
<span>Download the latest LTS Node.js®</span>
35+
</Button>
36+
</div>
37+
38+
## Risks Determining the Upgrade Complexity
39+
40+
<AlertBox level="warning">
41+
While necessary, upgrades can introduce risks that need to be managed
42+
carefully.
43+
</AlertBox>
44+
45+
- **Breaking Changes**: APIs may have changed or been removed, causing runtime errors.
46+
- **Dependency Incompatibility**: Critical libraries might not yet support the new Node.js version.
47+
- **Silent Failures**: Subtle behavior changes in the runtime can lead to difficult-to-debug issues.
48+
49+
## Ecosystem Support Programs
50+
51+
The OpenJS Foundation has established an LTS Upgrade & Modernization framework to help organizations move safely off legacy and end-of-life (EOL) Node.js versions. As the nonprofit steward of Node.js, the Foundation defines the program standards, ensures alignment with the upstream project, and works with qualified service providers who deliver tools and technical support under this framework.
52+
53+
The following service providers participate in the OpenJS Foundation's LTS Upgrade & Modernization program:
54+
55+
### NodeSource
56+
57+
<div className="my-8 flex w-full justify-center">
58+
<NodeSourceLogo className="h-12 w-auto dark:text-white" />
59+
</div>
60+
61+
[NodeSource](https://nodesource.com/products/nodejs-upgrade) provides upgrade assessment tools and expert-guided modernization services under the Foundation's framework. Their program offers a structured path to modernization:
62+
63+
- **Scan Your App (Free)**: NodeSource's public "Upgrade Discovery CLI" tool scans your project's environment for dependencies, C++ addons, and static API usage.
64+
- **AI-Powered Analysis (Free)**: Receive deep insights including executive scores for security and upgrade risk, identification of critical blockers, and a complete scan for deprecated APIs and vulnerabilities.
65+
- **Custom Modernization Plan**: Access a tailored roadmap, specialized tools, and technical support from NodeSource experts to ensure a safe and efficient migration.
66+
67+
<div className="my-8 flex w-full justify-center">
68+
<Button
69+
kind="primary"
70+
href="https://nodesource.com/products/nodejs-upgrade"
71+
target="_blank"
72+
>
73+
<span>Learn more about NodeSource's upgrade services</span>
74+
</Button>
75+
</div>
76+
77+
The OpenJS Foundation's Ecosystem Support Programs connect the Node.js community with qualified service providers. If your organization is interested in becoming a program participant, [contact the Foundation](https://openjsf.org/).

packages/i18n/src/locales/en.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,8 @@
5555
"releases": "Node.js Releases",
5656
"security": "Security Reporting",
5757
"partners": "Partners & Supporters",
58-
"eol": "End-of-Life (EOL)"
58+
"eol": "End-of-Life (EOL)",
59+
"upgradeAdvisor": "Upgrading Node.js"
5960
}
6061
},
6162
"getInvolved": {

pnpm-workspace.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ allowBuilds:
99
sharp: true
1010
unrs-resolver: true
1111
workerd: true
12+
'@nodejs/doc-kit': true
1213

1314
catalog:
1415
'@types/node': ^24.10.1

0 commit comments

Comments
 (0)