Skip to content

Commit c941919

Browse files
committed
docs: capture todo - Upgrade Node.js from 18 to latest LTS version
Area: tooling
1 parent e417e45 commit c941919

File tree

2 files changed

+83
-1
lines changed

2 files changed

+83
-1
lines changed

.planning/STATE.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,11 +96,12 @@ See: .planning/MILESTONES.md (v1.0 shipped, v1.1 shipped)
9696

9797
### Pending Todos
9898

99-
**Count:** 1 todo in `.planning/todos/pending/`
99+
**Count:** 2 todos in `.planning/todos/pending/`
100100

101101
| Todo | Area | Created |
102102
| ----------------------------------------------------------------------------------------------------------------------------- | ------- | ---------- |
103103
| [Simplify bot activity table to show total count per repo](.planning/todos/pending/2026-01-27-simplify-bot-activity-table.md) | reports | 2026-01-27 |
104+
| [Upgrade Node.js from 18 to latest LTS version](.planning/todos/pending/2026-01-28-upgrade-node-18-to-latest-lts.md) | tooling | 2026-01-28 |
104105

105106
### Known Blockers
106107

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
---
2+
created: 2026-01-28T01:03
3+
title: Upgrade Node.js from 18 to latest LTS version
4+
area: tooling
5+
files:
6+
- package.json:9-10
7+
- .github/workflows/monthly-reports.yml:31
8+
- .github/workflows/pages.yml
9+
- .github/workflows/update-driver-versions.yml
10+
---
11+
12+
## Problem
13+
14+
Node.js 18 has reached End of Life (EOL) as of April 2025. The project currently specifies:
15+
16+
- `package.json` engines: `"node": ">=18.0"`
17+
- Monthly reports workflow: `node-version: "18"`
18+
- Other workflows mix Node 20 and "latest"
19+
20+
Continuing to use EOL Node versions creates security and compatibility risks:
21+
22+
- No security patches for vulnerabilities
23+
- Incompatibility with newer dependencies
24+
- CI/CD failures as actions drop Node 18 support
25+
- Package managers may deprecate Node 18 in their own tooling
26+
27+
The inconsistency across workflows (18 in monthly-reports, 20 in pages/driver-versions, latest in renovate) suggests the upgrade was partially done but not completed.
28+
29+
## Solution
30+
31+
**Recommended:** Upgrade to Node.js 22 LTS (Active LTS as of October 2024, supported until April 2027)
32+
33+
**Upgrade Plan:**
34+
35+
1. **Update Configuration Files:**
36+
- `package.json`: Change engines to `"node": ">=22.0"`
37+
- `.github/workflows/monthly-reports.yml`: Change to `node-version: "22"`
38+
- Standardize all workflows to use Node 22
39+
40+
2. **Test Locally:**
41+
- Switch to Node 22: `nvm use 22` or equivalent
42+
- Clear node_modules: `rm -rf node_modules package-lock.json`
43+
- Reinstall: `npm install --legacy-peer-deps`
44+
- Run validation suite:
45+
- `npm run typecheck`
46+
- `npm run prettier-lint`
47+
- `npm run build`
48+
- `npm run generate-report -- --month=2026-01`
49+
- Test dev server: `npm start`
50+
51+
3. **Verify All Workflows:**
52+
- Trigger each workflow manually via GitHub Actions
53+
- Verify monthly reports generation still works
54+
- Check driver versions update workflow
55+
- Validate pages deployment
56+
57+
4. **Update Documentation:**
58+
- `AGENTS.md`: Update Node version references (currently mentions 18.x)
59+
- `.planning/STATE.md`: Update technical notes section
60+
- Update any installation docs
61+
62+
5. **Commit Strategy:**
63+
- Single atomic commit with all version bumps
64+
- Test in CI before merging
65+
- Monitor first production build after merge
66+
67+
**Risk Assessment:**
68+
69+
- Low risk: Node 22 is LTS and Docusaurus 3.8.1 supports it
70+
- Potential issues: Dependency peer warnings (already using --legacy-peer-deps)
71+
- Mitigation: Full test suite before commit
72+
73+
**Alternative:** Node 20 LTS (Maintenance mode, supported until April 2026)
74+
75+
- Safer short-term option if Node 22 causes issues
76+
- Would require another upgrade in ~12 months
77+
78+
**References:**
79+
80+
- Node.js release schedule: https://nodejs.org/en/about/previous-releases
81+
- Docusaurus system requirements: https://docusaurus.io/docs/installation#requirements

0 commit comments

Comments
 (0)