Skip to content

Commit 5651948

Browse files
Copilotpethers
andauthored
docs: fix EOL dates, nightly version, toolchain versions, and FUTURE_WORKFLOWS phases
Agent-Logs-Url: https://github.com/Hack23/game/sessions/ed6b0996-e2c8-4bc8-9bb5-f40234bfb2fe Co-authored-by: pethers <1726836+pethers@users.noreply.github.com>
1 parent b04c378 commit 5651948

2 files changed

Lines changed: 42 additions & 50 deletions

File tree

docs/End-of-Life-Strategy.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,22 +12,22 @@ This document defines the strategy for managing Node.js runtime and TypeScript c
1212

1313
| Node.js | Release Date | Status | Bug Fixes Until | Security Fixes Until |
1414
|---------|-------------|--------|-----------------|----------------------|
15-
| **26 (Current)** | Apr 22, 2026 |**Active — in use** | Oct 2026 | Oct 2027 |
15+
| **26 (Current)** | Apr 22, 2026 |**Active — in use** | Oct 2027 | Apr 2029 |
1616
| 25 | Oct 15, 2025 | ⚠️ Security-only | N/A | Jun 1, 2026 |
1717
| 24 (LTS – Krypton) | May 2025 | Active LTS | Oct 2026 | Apr 28, 2028 |
1818
| 22 (LTS – Jod) | Apr 2024 | Maintenance | Oct 2025 | Apr 30, 2027 |
1919

20-
> **Note:** Node.js 26 is an even-numbered release that will graduate to **Active LTS in October 2026**. It was released on April 22, 2026. We use Node.js 27 nightly builds in the forward-compatibility workflow (`test-and-report-latest-node.yml`) to validate readiness for the next release.
20+
> **Note:** Node.js 26 is an even-numbered release that will graduate to **Active LTS in October 2026**. It was released on April 22, 2026. The forward-compatibility workflow (`test-and-report-latest-node.yml`) currently uses `26.0.0-nightly` to validate upcoming Node.js 26 patch releases. It will be updated to `27.0.0-nightly` once Node.js 27 nightly builds are published (expected October 2026).
2121
2222
### TypeScript
2323

2424
| TypeScript | Release Date | Status | Support Until |
2525
|-----------|-------------|--------|---------------|
26-
| **6.0.2** | Mar 2026 |**Active — in use** | Until 7.0 release (~12 months) |
26+
| **6.0.3** | Mar 2026 |**Active — in use** | Until 7.0 release (~12 months) |
2727
| 5.9.x | Feb 2026 | Previous stable | Limited — security patches only |
2828
| 5.8.x | Dec 2025 | End of life | ❌ No support |
2929

30-
> **Note:** TypeScript 6.0 is a major release with breaking changes including stricter module resolution with `moduleResolution: "bundler"`, removal of implicit `global` namespace, and stricter `NodeJS` namespace handling. The project uses `@typescript-eslint 8.58.0` which supports `typescript >=4.8.4 <6.1.0`.
30+
> **Note:** TypeScript 6.0 is a major release with breaking changes including stricter module resolution with `moduleResolution: "bundler"`, removal of implicit `global` namespace, and stricter `NodeJS` namespace handling. The project uses `@typescript-eslint 8.59.2` which supports `typescript >=4.8.4 <6.1.0`.
3131
3232
---
3333

@@ -113,7 +113,7 @@ TS 7.0 | ~2027 | Future | Requires @typescript-eslint update
113113

114114
### ✅ Completed — Upgraded to Node.js 26: May 2026
115115

116-
All CI/CD workflows, devcontainer configuration, and `package.json` have been updated to Node.js 26. The forward-compatibility workflow (`test-and-report-latest-node.yml`) now targets Node.js 27 nightly.
116+
All CI/CD workflows, devcontainer configuration, and `package.json` have been updated to Node.js 26. The forward-compatibility workflow (`test-and-report-latest-node.yml`) currently uses `26.0.0-nightly` — it will switch to `27.0.0-nightly` once Node.js 27 nightly builds are published (expected October 2026).
117117

118118
### ⚠️ Upcoming — Node.js 25 Security EOL: June 1, 2026
119119

@@ -124,11 +124,11 @@ Node.js 25 reaches full end-of-life on **June 1, 2026**. This project has alread
124124
When Node.js 26 enters Active LTS, it becomes the recommended production runtime. At this point:
125125

126126
- Node.js 24 transitions from Active LTS to Maintenance LTS
127-
- Update `test-and-report-latest-node.yml` to Node.js 27 (already done) or 28 nightly
127+
- Update `test-and-report-latest-node.yml` to `27.0.0-nightly` (once available) or `28.0.0-nightly`
128128

129129
### 📅 Future — Node.js 27 Release: October 2026
130130

131-
Node.js 27 will be released in **October 2026** as an odd-numbered "Current" release. The forward-compatibility workflow (`test-and-report-latest-node.yml`) already targets Node.js 27 nightly builds.
131+
Node.js 27 will be released in **October 2026** as an odd-numbered "Current" release (no LTS). When Node.js 27 nightly builds are published, update `test-and-report-latest-node.yml` from `26.0.0-nightly` to `27.0.0-nightly`. Primary workflows remain on Node.js 26 LTS.
132132

133133
### 📅 Future — Node.js 24 EOL: April 2028
134134

@@ -145,7 +145,7 @@ The project maintains two parallel test workflows and tracks toolchain versions:
145145
| Workflow | Purpose | Current Node Version |
146146
|----------|---------|----------------------|
147147
| `test-and-report.yml` | Primary CI — stable, production-ready | **26** |
148-
| `test-and-report-latest-node.yml` | Forward-compat — tests next version | **27 nightly** |
148+
| `test-and-report-latest-node.yml` | Forward-compat — tests next version | **26 nightly** (`26.0.0-nightly`) |
149149

150150
When a new Node.js version is released:
151151
1. Update `test-and-report-latest-node.yml` to the new version first
@@ -156,8 +156,8 @@ When a new Node.js version is released:
156156

157157
| Tool | Current Version | Peer Constraint | Upgrade Path |
158158
|------|----------------|-----------------|-------------|
159-
| TypeScript | **6.0.2** || Follow quarterly releases |
160-
| @typescript-eslint | **8.58.0** | `typescript >=4.8.4 <6.1.0` | Must update before TS 6.1 |
159+
| TypeScript | **6.0.3** || Follow quarterly releases |
160+
| @typescript-eslint | **8.59.2** | `typescript >=4.8.4 <6.1.0` | Must update before TS 6.1 |
161161
| Vite | **8.0.3** || Follow major releases |
162162
| Vitest | **4.1.2** || Keep aligned with Vite |
163163

docs/FUTURE_WORKFLOWS.md

Lines changed: 32 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
## Overview
44

5-
This document describes the planned upgrade of all CI/CD workflows, devcontainer configuration, and documentation from **Node.js 26** to **Node.js 27**.
5+
This document describes the plan to track **Node.js 27** in the forward-compatibility workflow (`test-and-report-latest-node.yml`) as a canary for the eventual **Node.js 28 LTS** upgrade.
66

7-
Node.js 27 is expected in **October 2026**. This upgrade plan is designed to be executed immediately after the official Node.js 27 release.
7+
Node.js 27 is expected in **October 2026**. Because Node.js 27 is an **odd-numbered non-LTS release**, the primary CI, devcontainer, and `package.json` will **remain on Node.js 26 LTS** throughout. Only `test-and-report-latest-node.yml` will advance to `27.0.0-nightly` once those builds are published.
88

99
> **✅ Node.js 26 upgrade completed May 2026.** All workflows, devcontainer, and `package.json` have been updated. The forward-compatibility workflow (`test-and-report-latest-node.yml`) currently uses `26.0.0-nightly` (Node.js 27 nightly builds do not yet exist; they will be published once Node.js 27 development starts, expected October 2026). Update the forward-compat workflow to `27.0.0-nightly` once those builds are available.
1010
@@ -25,66 +25,58 @@ Node.js 27 is an **odd-numbered** release and will **not** become LTS. We use it
2525

2626
## Upgrade Checklist
2727

28-
When Node.js 27 is officially released, execute the following steps in a single PR:
28+
### Phase 1 — Forward-Compat Workflow (when Node.js 27 nightly builds are published)
2929

30-
### Phase 1 — Core Configuration (Day 1)
30+
> **Prerequisite:** Confirm `27.0.0-nightly` builds are available on [nodejs.org/download/nightly](https://nodejs.org/download/nightly/) before running these changes.
3131
32-
- [ ] **`package.json`** — Update `engines.node` from `>=26` to `>=27`
33-
- [ ] **`.devcontainer/devcontainer.json`** — Update image from `javascript-node:26-trixie` to `javascript-node:27-trixie`, and node feature version from `"26"` to `"27"`
32+
- [ ] **`.github/workflows/test-and-report-latest-node.yml`** — 4 occurrences: change `node-version: "26.0.0-nightly"``node-version: "27.0.0-nightly"` (prepare, build-validation, unit-tests, e2e-tests)
3433

35-
### Phase 2 — GitHub Actions Workflows (Day 1)
34+
> **Note:** Primary workflows (`test-and-report.yml`, `release.yml`, `codeql.yml`, Copilot setup), `package.json` engines, and the devcontainer **remain on Node.js 26 LTS** for this phase. The full migration to Node.js 27 does not apply — Node.js 27 is odd-numbered and non-LTS. The next primary-workflow upgrade will happen when **Node.js 28 LTS** is released (April 2027).
3635
37-
Update `node-version` from `"26"` to `"27"` in each of the following files:
36+
### Phase 2 — Documentation (same PR as Phase 1)
3837

39-
- [ ] **`.github/workflows/test-and-report.yml`** — 4 occurrences (prepare, build-validation, unit-tests, e2e-tests)
40-
- [ ] **`.github/workflows/release.yml`** — 2 occurrences (prepare, build)
41-
- [ ] **`.github/workflows/codeql.yml`** — 1 occurrence (analyze)
42-
- [ ] **`.github/workflows/copilot-setup-steps.yml`** — 1 occurrence
43-
- [ ] **`.github/workflows/copilot-setup.yml`** — 1 occurrence in `node-version`, 1 occurrence in setup report text (`Node.js 26``Node.js 27`)
44-
- [ ] **`.github/workflows/test-and-report-latest-node.yml`** — 4 occurrences (update from `"26.0.0-nightly"` to `"27.0.0-nightly"` once Node.js 27 nightly builds are published; then advance to `"28.0.0-nightly"` once Node.js 28 nightly builds exist)
38+
- [ ] **`docs/End-of-Life-Strategy.md`** — Update version matrix forward-compat row to "27 nightly (`27.0.0-nightly`)", update note text
39+
- [ ] **`docs/WORKFLOWS.md`** — Update forward-compat Node.js version to "27 nightly"
40+
- [ ] **`docs/FUTURE_WORKFLOWS.md`** (this file) — Update to reflect Node.js 28 LTS as the next planned primary upgrade
4541

46-
### Phase 3 — Documentation (Day 1–2)
42+
### Phase 3 — Validation (same PR)
4743

48-
- [ ] **`docs/End-of-Life-Strategy.md`** — Update "Current Status" table, highlight Node.js 27 as active
49-
- [ ] **`docs/WORKFLOWS.md`** — Update "Current Node.js version" and all version references
50-
- [ ] **`docs/FUTURE_WORKFLOWS.md`** (this file) — Update to reflect Node.js 28 as the next planned upgrade
51-
- [ ] **`README.md`** — Update any Node.js version badges or requirements section if present
52-
53-
### Phase 4 — Validation (Day 2)
54-
55-
- [ ] Verify all CI jobs pass on the PR before merging
56-
- [ ] Confirm `test-and-report-latest-node.yml` passes
57-
- [ ] Confirm `release.yml` dry-run succeeds
58-
- [ ] Confirm devcontainer builds successfully with Node.js 27
59-
- [ ] Run `npm audit` to check for any dependency advisories under Node.js 27
60-
- [ ] Check `npm run test:licenses` passes
44+
- [ ] Verify `test-and-report-latest-node.yml` passes on the PR
45+
- [ ] Confirm all other CI jobs continue to pass (they all remain on Node.js 26)
46+
- [ ] Run `npm audit` to check for any dependency advisories
6147

6248
---
6349

6450
## Sed Commands for Automation
6551

66-
The following commands can be run to perform the bulk of the Node.js 26 → 27 migration:
52+
The following command updates the forward-compat workflow to Node.js 27 nightly. Run only after confirming `27.0.0-nightly` builds are available on [nodejs.org/download/nightly](https://nodejs.org/download/nightly/):
6753

6854
```bash
69-
# Update all workflow node-version references (double-quoted)
70-
find .github/workflows -name "*.yml" -exec sed -i 's/node-version: "26"/node-version: "27"/g' {} +
71-
7255
# Update the forward-compat nightly workflow from 26.0.0-nightly to 27.0.0-nightly
73-
# (run only after Node.js 27 nightly builds are confirmed available on nodejs.org/download/nightly)
7456
sed -i 's/node-version: "26.0.0-nightly"/node-version: "27.0.0-nightly"/g' .github/workflows/test-and-report-latest-node.yml
57+
```
7558

76-
# Update copilot-setup.yml (single-quoted)
77-
sed -i "s/node-version: '26'/node-version: '27'/g" .github/workflows/copilot-setup.yml
59+
> **Note:** The commands below are for the **future Node.js 28 LTS upgrade** (April 2027), not for Node.js 27. Primary workflows, `package.json`, and the devcontainer stay on Node.js 26 until Node.js 28 LTS.
7860
79-
# Update text references
80-
sed -i 's/Node\.js 26/Node.js 27/g' .github/workflows/copilot-setup.yml
61+
```bash
62+
# === Node.js 28 LTS upgrade (April 2027) — DO NOT run for Node.js 27 ===
63+
64+
# Update all workflow node-version references (double-quoted)
65+
find .github/workflows -name "*.yml" -exec sed -i 's/node-version: "26"/node-version: "28"/g' {} +
66+
67+
# Update the forward-compat nightly to 28.0.0-nightly (once available)
68+
sed -i 's/node-version: "27.0.0-nightly"/node-version: "28.0.0-nightly"/g' .github/workflows/test-and-report-latest-node.yml
69+
70+
# Update copilot-setup.yml (single-quoted)
71+
sed -i "s/node-version: '26'/node-version: '28'/g" .github/workflows/copilot-setup.yml
72+
sed -i 's/Node\.js 26/Node.js 28/g' .github/workflows/copilot-setup.yml
8173

8274
# Update package.json engines field
83-
sed -i 's/"node": ">=26"/"node": ">=27"/' package.json
75+
sed -i 's/"node": ">=26"/"node": ">=28"/' package.json
8476

8577
# Update devcontainer image
86-
sed -i 's/javascript-node:26-trixie/javascript-node:27-trixie/' .devcontainer/devcontainer.json
87-
sed -i 's/"version": "26"/"version": "27"/' .devcontainer/devcontainer.json
78+
sed -i 's/javascript-node:26-trixie/javascript-node:28-trixie/' .devcontainer/devcontainer.json
79+
sed -i 's/"version": "26"/"version": "28"/' .devcontainer/devcontainer.json
8880
```
8981

9082
---

0 commit comments

Comments
 (0)