mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-08 11:46:35 +00:00
Debian trixie ships nodejs 20.19, whose release line reached its end of life on 2026-04-30. `@mermaid-js/mermaid-cli` 12 and its puppeteer declare `node >=22.13.0`, so `make install-lint` failed in every fresh Debian stack container with `All providers failed for chrome-headless-shell` (#1088). `ensure_node_present()` still installs the distro package first, then reads the release line of `node` on PATH and looks it up in the nodejs/Release schedule. A line past its `end` date is replaced by the newest LTS from nodejs.org/dist/index.json: SHASUMS256.txt is verified with gpgv against the active Node.js release keys from nodejs/release-keys, the tarball against its SHA-256 entry, and the release is unpacked into /usr/local, after which `node` on PATH must be that release. Nothing pins a major: the next LTS line is picked up the same way. Ubuntu 26.04's Node.js 22, supported until 2027-04-30, stays. `ensure_npm_present()` calls it first, so a container that already holds the end-of-life node is upgraded too rather than skipped because npm exists. The call runs once per process. Closes #1088 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>