Description
.github/workflows/release.yml still pins actions/setup-node@v3 with node-version: 18. Both are behind the rest of the repo and carry real costs:
actions/setup-node@v3 depends on the Node 16 Actions runtime, which GitHub has deprecated. @v4 runs on Node 20.
- Node.js 18 reached end-of-life on 2025-04-30 and no longer receives security updates. Node 20 is Active LTS.
- This is the workflow that runs
semantic-release to cut every spec release, so the toolchain it runs on is particularly sensitive.
Sister workflows in this repo already use the modern versions:
.github/workflows/validate-examples.yml — setup-node@v4, node-version: '20'
.github/workflows/validate-embedded-examples.yml — setup-node@v4, node-version: '20'
This issue tracks aligning release.yml with them.
Proposed change
In .github/workflows/release.yml:
actions/setup-node@v3 → actions/setup-node@v4
node-version: 18 → node-version: 20
semantic-release@21.0.7 (the version pinned in the workflow) and conventional-changelog-conventionalcommits@6.1.0 both support Node 20, so this is a drop-in bump.
Scope
Description
.github/workflows/release.ymlstill pinsactions/setup-node@v3withnode-version: 18. Both are behind the rest of the repo and carry real costs:actions/setup-node@v3depends on the Node 16 Actions runtime, which GitHub has deprecated.@v4runs on Node 20.semantic-releaseto cut every spec release, so the toolchain it runs on is particularly sensitive.Sister workflows in this repo already use the modern versions:
.github/workflows/validate-examples.yml—setup-node@v4,node-version: '20'.github/workflows/validate-embedded-examples.yml—setup-node@v4,node-version: '20'This issue tracks aligning
release.ymlwith them.Proposed change
In
.github/workflows/release.yml:actions/setup-node@v3→actions/setup-node@v4node-version: 18→node-version: 20semantic-release@21.0.7(the version pinned in the workflow) andconventional-changelog-conventionalcommits@6.1.0both support Node 20, so this is a drop-in bump.Scope