Conversation
- Update engines.node in package.json: >=25 -> >=26 - Update devcontainer image: javascript-node:24-trixie -> 26-trixie - Update devcontainer node feature version: 25 -> 26 - Update all GitHub Actions workflows to use node-version: "26" (test-and-report.yml, release.yml, codeql.yml, copilot-setup.yml, copilot-setup-steps.yml) - Update test-and-report-latest-node.yml to node-version: "27-nightly" - Update docs/End-of-Life-Strategy.md: Node 26 as active, 27 nightly - Update docs/WORKFLOWS.md: all version references to Node 26/27 nightly - Update docs/FUTURE_WORKFLOWS.md: rewrite as Node 27 upgrade plan
| | Harden runner | `step-security/harden-runner` (egress-policy: audit) | | ||
| | Checkout | `actions/checkout@v6.0.2` | | ||
| | Setup Node.js 25 | `actions/setup-node@v6.3.0` with `cache: npm` | | ||
| | Setup Node.js 26 | `actions/setup-node@v6.3.0` with `cache: npm` | |
| | Get version | Extracts from tag or input | | ||
| | Install system deps | xvfb, Chrome, D-Bus | | ||
| | Setup Node.js 25 | `actions/setup-node@v6.3.0` | | ||
| | Setup Node.js 26 | `actions/setup-node@v6.3.0` | | ||
| | Install + build + test | `npm ci`, `npm run build`, E2E, coverage | |
| | Step | Action | | ||
| |------|--------| | ||
| | Setup Node.js 25 | `actions/setup-node@v6.3.0` | | ||
| | Setup Node.js 26 | `actions/setup-node@v6.3.0` | | ||
| | Build | `npm run build` | |
|
|
||
| - [End-of-Life-Strategy.md](./End-of-Life-Strategy.md) — Node.js version lifecycle management | ||
| - [FUTURE_WORKFLOWS.md](./FUTURE_WORKFLOWS.md) — Planned Node.js 26 upgrade | ||
| - [FUTURE_WORKFLOWS.md](./FUTURE_WORKFLOWS.md) — Node.js 26 upgrade (completed) |
| |--------|--------------|----------------| | ||
| | Node.js 26 Active LTS | October 2026 | Already on 26; no action needed | | ||
| | Node.js 27 release | October 2026 | Update primary workflow to 27 | | ||
| | Node.js 28 LTS | April 2027 | Next LTS — update `test-and-report-latest-node.yml` to 28 nightly | |
|
|
||
| **Current Node.js version: 25** | ||
| **Current Node.js version: 26** | ||
| **Current TypeScript version: 6.0.2** |
|
@copilot apply changes based on the comments in this thread also used correct version for 27 nightly see old pattern for 26 |
…ersion, and roadmap in docs Agent-Logs-Url: https://github.com/Hack23/game/sessions/06e31b54-b3d7-467e-8676-4d04b5413444 Co-authored-by: pethers <1726836+pethers@users.noreply.github.com>
Applied all changes in commit
|
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 11 out of 11 changed files in this pull request and generated 4 comments.
Comments suppressed due to low confidence (1)
docs/WORKFLOWS.md:61
- The workflow step table still documents
actions/cache@v5.0.3for the apt and Cypress caches, but the actual workflows are pinned toactions/cachev5.0.5 (by SHA). Please update these doc entries so they match the versions in.github/workflows/test-and-report*.yml.
| Setup Node.js 26 | `actions/setup-node@v6.4.0` with `cache: npm` |
| Cache apt packages | `actions/cache@v5.0.3` ⚠️ |
| Install system deps | xvfb, libgtk, Chrome dependencies |
| Install dependencies | `npm install` |
| Cache Cypress binary | `actions/cache@v5.0.3` (`~/.cache/Cypress`) |
| "engines": { | ||
| "node": ">=25" | ||
| "node": ">=26" | ||
| }, |
| **Current Node.js version: 25** | ||
| **Current TypeScript version: 6.0.2** | ||
| **Current Node.js version: 26** | ||
| **Current TypeScript version: 6.0.3** |
| | Node.js 27 release | October 2026 | Update `test-and-report-latest-node.yml` to 27.0.0-nightly; primary workflow stays on Node.js 26 LTS | | ||
| | Node.js 28 LTS | April 2027 | Next LTS — update primary workflow to 28; update `test-and-report-latest-node.yml` to 28 nightly | |
| | Node.js | Release Date | Status | Bug Fixes Until | Security Fixes Until | | ||
| |---------|-------------|--------|-----------------|----------------------| | ||
| | **25 (Current)** | Oct 15, 2025 | ✅ **Active — in use** | Apr 1, 2026 | Jun 1, 2026 | | ||
| | **26 (Current)** | Apr 22, 2026 | ✅ **Active — in use** | Oct 2026 | Oct 2027 | |
|
@copilot analyse and fix Test and Report Latest Node / prepare (pull_request) |
…t available Agent-Logs-Url: https://github.com/Hack23/game/sessions/1e087847-9149-41d2-a4d9-57efefc9629a Co-authored-by: pethers <1726836+pethers@users.noreply.github.com>
Fixed in commit |
| > **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. | ||
|
|
| ### ✅ Completed — Upgraded to Node.js 26: May 2026 | ||
|
|
||
| Node.js 25 receives its final bug-fix release around **April 1, 2026**. Security-only patches continue until **June 1, 2026**. | ||
| 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. | ||
|
|
| | Workflow | Purpose | Current Node Version | | ||
| |----------|---------|----------------------| | ||
| | `test-and-report.yml` | Primary CI — stable, production-ready | **25** | | ||
| | `test-and-report-latest-node.yml` | Forward-compat — tests next version | **25** (will become 26) | | ||
| | `test-and-report.yml` | Primary CI — stable, production-ready | **26** | | ||
| | `test-and-report-latest-node.yml` | Forward-compat — tests next version | **27 nightly** | | ||
|
|
| ### Phase 1 — Core Configuration (Day 1) | ||
|
|
||
| - [ ] **`package.json`** — Update `engines.node` from `>=25` to `>=26` | ||
| - [ ] **`.devcontainer/devcontainer.json`** — Update image from `javascript-node:25-trixie` to `javascript-node:26-trixie`, and node feature version from `"25"` to `"26"` | ||
| - [ ] **`package.json`** — Update `engines.node` from `>=26` to `>=27` | ||
| - [ ] **`.devcontainer/devcontainer.json`** — Update image from `javascript-node:26-trixie` to `javascript-node:27-trixie`, and node feature version from `"26"` to `"27"` | ||
|
|
| ### Phase 2 — GitHub Actions Workflows (Day 1) | ||
|
|
||
| Update `node-version` from `"25"` to `"26"` in each of the following files: | ||
| Update `node-version` from `"26"` to `"27"` in each of the following files: | ||
|
|
||
| - [ ] **`.github/workflows/test-and-report.yml`** — 4 occurrences (prepare, build-validation, unit-tests, e2e-tests) | ||
| - [ ] **`.github/workflows/release.yml`** — 2 occurrences (prepare, build) | ||
| - [ ] **`.github/workflows/codeql.yml`** — 1 occurrence (analyze) | ||
| - [ ] **`.github/workflows/copilot-setup-steps.yml`** — 1 occurrence | ||
| - [ ] **`.github/workflows/copilot-setup.yml`** — 1 occurrence in `node-version`, 1 occurrence in setup report text (`Node.js 25` → `Node.js 26`) | ||
| - [ ] **`.github/workflows/test-and-report-latest-node.yml`** — 4 occurrences (update to next version beyond 26, e.g., `"27"` once it exists, or keep at `"26"` until 27 ships) | ||
| - [ ] **`.github/workflows/copilot-setup.yml`** — 1 occurrence in `node-version`, 1 occurrence in setup report text (`Node.js 26` → `Node.js 27`) | ||
| - [ ] **`.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) |
| | Tool | Current Version | Peer Constraint | Upgrade Path | | ||
| |------|----------------|-----------------|--------------| | ||
| |------|----------------|-----------------|-------------| | ||
| | TypeScript | **6.0.2** | — | Follow quarterly releases | | ||
| | @typescript-eslint | **8.58.0** | `typescript >=4.8.4 <6.1.0` | Must update before TS 6.1 | | ||
| | Vite | **8.0.3** | — | Follow major releases | |
|
@copilot apply changes based on the comments in this thread |
…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>
Applied all changes in commit
|
26.0.0-nightly26.0.0-nightly(not 27 nightly)26.0.0-nightly, will switch to27.0.0-nightlywhen available26.0.0-nightly)"test-and-report-latest-node.ymlchanges (26.0.0-nightly → 27.0.0-nightly)