From 707f1636085e6646b83420123b9676cdb47d0f6b Mon Sep 17 00:00:00 2001 From: RCLL Date: Fri, 28 Aug 2026 09:39:24 +0300 Subject: [PATCH] =?UTF-8?q?ci(publish):=20build=20on=20Node=2022=20?= =?UTF-8?q?=E2=80=94=20npm@latest=20(12.x)=20refuses=20to=20install=20on?= =?UTF-8?q?=20Node=2020?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit npm 12 declares engines ^22.22.2 || ^24.15.0 || >=26.0.0. The workflow pinned node-version 20 and then ran 'npm install -g npm@latest', so the engine check would fail and the publish step would never run — with the GitHub Release already public and the tag burnt. Caught before the first tag exists. Package engines (node >=18) unchanged; this pins the build runner only. --- .github/workflows/publish.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 205f21c5..88ef652b 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -27,9 +27,15 @@ jobs: steps: - uses: actions/checkout@v7 + # Node 22, not 20: the upgrade step below pulls npm@latest, and npm 12 + # declares engines node ^22.22.2 || ^24.15.0 || >=26. On Node 20 that + # install fails the engine check and the publish step never runs — after + # the GitHub Release is already public. The published package itself + # still supports Node >=18 (mcp-server/package.json engines); this pins + # only the build runner. - uses: actions/setup-node@v7 with: - node-version: '20' + node-version: '22' registry-url: 'https://registry.npmjs.org' # Trusted Publishing + provenance require npm >= 11.5.1