From 8468f8505aef498db5ee2710bf2681df9da76301 Mon Sep 17 00:00:00 2001 From: bbassie <17990055+bbassie@users.noreply.github.com> Date: Sat, 12 Sep 2026 22:54:18 +0000 Subject: [PATCH 1/4] Bump pnpm to 12 pnpm 11 removed onlyBuiltDependencies in favour of allowBuilds and stopped reading non-auth settings from .npmrc, so auto-install-peers moves to pnpm-workspace.yaml. The native publish flow in pnpm 11+ keeps npm trusted publishing working as long as pnpm/action-setup is v6 or later. Co-Authored-By: Claude Fable 5.1 --- .npmrc | 1 - package.json | 4 ++-- pnpm-workspace.yaml | 6 ++++-- 3 files changed, 6 insertions(+), 5 deletions(-) delete mode 100644 .npmrc diff --git a/.npmrc b/.npmrc deleted file mode 100644 index f301fedf..00000000 --- a/.npmrc +++ /dev/null @@ -1 +0,0 @@ -auto-install-peers=false diff --git a/package.json b/package.json index 972d08c9..2d0a3dd4 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "root", "private": true, "files": [], - "packageManager": "pnpm@10.28.1+sha512.7d7dbbca9e99447b7c3bf7a73286afaaf6be99251eb9498baefa7d406892f67b879adb3a1d7e687fc4ccc1a388c7175fbaae567a26ab44d1067b54fcb0d6a316", + "packageManager": "pnpm@12.4.1+sha512.2e81e399d73fe8390dab25e06aa788ab7a5908248d2f5a370f82b481147a6a7a367bf8048f9a6fdb6460f21a66f0542dedb8b94ca2c8723596741920b1656d4c", "type": "module", "scripts": { "build": "tsc --build", @@ -14,7 +14,7 @@ "no-external-test": "NO_EXTERNAL_TEST=y pnpm test", "cover": "nyc pnpm test", "fast-cover": "FAST_TEST=y nyc pnpm test", - "ci-cover": "nyc --reporter=lcovonly pnpm run-script test", + "ci-cover": "nyc --reporter=lcovonly pnpm test", "lint": "eslint packages plugins test", "lint-fix": "eslint --fix packages plugins test", "clean": "node ./clean.js", diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 949418cc..42891c9c 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -36,9 +36,11 @@ catalog: catalogMode: strict +autoInstallPeers: false + linkWorkspacePackages: true -onlyBuiltDependencies: - - '@swc/core' +allowBuilds: + '@swc/core': true shellEmulator: true From 74e8d89081fb6a267de77382d24a72d0bf719c04 Mon Sep 17 00:00:00 2001 From: bbassie <17990055+bbassie@users.noreply.github.com> Date: Sat, 12 Sep 2026 22:54:18 +0000 Subject: [PATCH 2/4] Bump GitHub Actions to current majors checkout, setup-node, upload-artifact and codecov-action to v7, pnpm/action-setup to v6 and action-gh-release to v3. All of them now run on the node24 actions runtime. No inputs changed for how the workflows use them. pnpm/action-setup v6 is also what makes trusted publishing work with pnpm 12. Co-Authored-By: Claude Fable 5.1 --- .github/workflows/lua-lint.yml | 4 ++-- .github/workflows/node.js.yml | 30 +++++++++++++++--------------- .github/workflows/publish.yml | 16 ++++++++-------- 3 files changed, 25 insertions(+), 25 deletions(-) diff --git a/.github/workflows/lua-lint.yml b/.github/workflows/lua-lint.yml index 35b51ad2..f70f40ff 100644 --- a/.github/workflows/lua-lint.yml +++ b/.github/workflows/lua-lint.yml @@ -11,8 +11,8 @@ jobs: lint: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 + - uses: actions/checkout@v7 + - uses: actions/setup-node@v7 with: node-version: lts/* - name: Generate Factorio typedefs diff --git a/.github/workflows/node.js.yml b/.github/workflows/node.js.yml index d2e83e7e..b60da62f 100644 --- a/.github/workflows/node.js.yml +++ b/.github/workflows/node.js.yml @@ -30,10 +30,10 @@ jobs: coverage: true steps: - - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 + - uses: actions/checkout@v7 + - uses: pnpm/action-setup@v6 - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v4 + uses: actions/setup-node@v7 with: node-version: ${{ matrix.node-version }} - name: Prepare and install @@ -48,13 +48,13 @@ jobs: run: pnpm run ci-cover - name: Upload coverage to Codecov if: ${{ matrix.coverage }} - uses: codecov/codecov-action@v4 + uses: codecov/codecov-action@v7 with: files: ./coverage/lcov.info token: ${{ secrets.CODECOV_TOKEN }} - name: Upload test logs for debugging if: ${{ !cancelled() }} - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: logs-${{ matrix.node-version }}-${{ matrix.factorio-version }} path: temp/test/logs @@ -77,9 +77,9 @@ jobs: host: local steps: - - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - - uses: actions/setup-node@v4 + - uses: actions/checkout@v7 + - uses: pnpm/action-setup@v6 + - uses: actions/setup-node@v7 with: node-version: ${{ env.NODE_VERSION }} - name: Prepare and install @@ -97,9 +97,9 @@ jobs: runs-on: ubuntu-latest timeout-minutes: 5 steps: - - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - - uses: actions/setup-node@v4 + - uses: actions/checkout@v7 + - uses: pnpm/action-setup@v6 + - uses: actions/setup-node@v7 with: node-version: ${{ env.NODE_VERSION }} - run: pnpm i --no-frozen-lockfile @@ -109,16 +109,16 @@ jobs: runs-on: ubuntu-latest timeout-minutes: 5 steps: - - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - - uses: actions/setup-node@v4 + - uses: actions/checkout@v7 + - uses: pnpm/action-setup@v6 + - uses: actions/setup-node@v7 with: node-version: ${{ env.NODE_VERSION }} - run: pnpm i --no-frozen-lockfile - run: pnpm run build-mod # Upload build to artifacts - name: Upload build to artifacts - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: clusterio_lib path: ./dist diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 79ff4d83..6ac1cf88 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -15,15 +15,15 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - - uses: actions/setup-node@v4 + - uses: actions/checkout@v7 + - uses: pnpm/action-setup@v6 + - uses: actions/setup-node@v7 with: node-version: 24.x registry-url: https://registry.npmjs.org - run: pnpm install --no-frozen-lockfile - run: pnpm -r --filter='./{plugins,packages}/*' publish --no-git-checks - - uses: softprops/action-gh-release@v2 + - uses: softprops/action-gh-release@v3 with: files: pnpm-lock.yaml @@ -31,9 +31,9 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - - uses: actions/setup-node@v4 + - uses: actions/checkout@v7 + - uses: pnpm/action-setup@v6 + - uses: actions/setup-node@v7 with: node-version: 24.x - run: pnpm install --no-frozen-lockfile @@ -41,6 +41,6 @@ jobs: - run: node ./publish.js factorio ./dist env: FACTORIO_TOKEN: ${{ secrets.FACTORIO_TOKEN }} - - uses: softprops/action-gh-release@v2 + - uses: softprops/action-gh-release@v3 with: files: ./dist/* From c0be963f9cc58c591bd98955a36cfd577f5b5327 Mon Sep 17 00:00:00 2001 From: bbassie <17990055+bbassie@users.noreply.github.com> Date: Sat, 12 Sep 2026 22:54:18 +0000 Subject: [PATCH 3/4] Test against Factorio 2.1.17 and emmylua 0.25.1 2.1.17 is the current experimental release. The lint gate still reports 0 diagnostics over 28 files with emmylua_check 0.25.1. Co-Authored-By: Claude Fable 5.1 --- .github/workflows/lua-lint.yml | 2 +- .github/workflows/node.js.yml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/lua-lint.yml b/.github/workflows/lua-lint.yml index f70f40ff..e1e4f75f 100644 --- a/.github/workflows/lua-lint.yml +++ b/.github/workflows/lua-lint.yml @@ -5,7 +5,7 @@ on: pull_request: env: - EMMYLUA_CHECK_VERSION: "0.24.0" + EMMYLUA_CHECK_VERSION: "0.25.1" jobs: lint: diff --git a/.github/workflows/node.js.yml b/.github/workflows/node.js.yml index b60da62f..f465f8f7 100644 --- a/.github/workflows/node.js.yml +++ b/.github/workflows/node.js.yml @@ -21,12 +21,12 @@ jobs: node-version: [24.x] # Supported factorio versions are latest stable and one minor version before stable (even if from a previous major) - factorio-version: [1.1.110, 2.0.77, 2.1.8] + factorio-version: [1.1.110, 2.0.77, 2.1.17] # Coverage is performed on the older of the supported node versions include: - node-version: 22.x - factorio-version: 2.1.8 + factorio-version: 2.1.17 coverage: true steps: From 9bd12d70e958669d8b6f9c7d733a36c46d40a1d0 Mon Sep 17 00:00:00 2001 From: bbassie <17990055+bbassie@users.noreply.github.com> Date: Sat, 12 Sep 2026 22:54:18 +0000 Subject: [PATCH 4/4] Bump Dockerfile base image to Node 24 Node 20 reached end of life in April 2026. Co-Authored-By: Claude Fable 5.1 --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 4f4832f7..66c296b0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM node:20 as subspace_storage_builder +FROM node:24 AS subspace_storage_builder RUN apt update && apt install -y git WORKDIR / RUN git clone https://github.com/clusterio/subspace_storage.git @@ -6,7 +6,7 @@ WORKDIR /subspace_storage RUN npm install \ && node build -FROM node:20 as clusterio_builder +FROM node:24 AS clusterio_builder RUN apt update \ && apt install -y wget \ && mkdir /clusterio