From 40389ff9849f1385b2475c403046c25c00f655c5 Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 1 Nov 2026 13:41:47 +0000 Subject: [PATCH] feat: support Node.js 26 LTS Node 26 became LTS on 2026-10-28, and Homebridge 2.4 already allows ^22 || ^24 || ^26. Add it to engines and the CI matrix (build, test and lint pass on 26.13.0), and move CI to actions/checkout@v7 and actions/setup-node@v7, which run on Node 24 now that runners have dropped Node 20. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01LzktUt9rqfrSfRydbWruTR --- .github/copilot-instructions.md | 4 ++-- .github/workflows/ci.yml | 6 +++--- BLE.md | 2 +- package-lock.json | 2 +- package.json | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index 6d769369..6505d8e3 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -58,7 +58,7 @@ OpenAPI command names and parameters must match the device pages in ## Commands -Node `^22 || ^24`. Run in this order; every step must pass before committing: +Node `^22 || ^24 || ^26`. Run in this order; every step must pass before committing: ```bash npm ci @@ -120,7 +120,7 @@ test/ # Vitest: apis/, devices/, types/, utils/ - Conventional Commits (`feat:`, `fix:`, `docs:`, `test:`, `chore:`). Use `feat!:` with a `BREAKING CHANGE:` footer when public identities, enums or behaviour change. - Default branch is `latest`. PRs are squash-merged, so the PR title becomes the commit message. -- `.github/workflows/ci.yml` runs build, test and lint on Node 22 and 24 for every PR to `latest` +- `.github/workflows/ci.yml` runs build, test and lint on Node 22, 24 and 26 for every PR to `latest` or `beta-*`. Run the full check locally first anyway. - `.github/workflows/release.yml`: - push to `beta-*`: build, test, lint, then publish a beta to npm; diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e67a79db..fdcf42aa 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,13 +17,13 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - node-version: [22, 24] + node-version: [22, 24, 26] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - name: Setup Node.js - uses: actions/setup-node@v4 + uses: actions/setup-node@v7 with: node-version: ${{ matrix.node-version }} cache: npm diff --git a/BLE.md b/BLE.md index bd063306..2459f7a0 100644 --- a/BLE.md +++ b/BLE.md @@ -38,7 +38,7 @@ The `SwitchBot` class allows you to interact with SwitchBot devices using the Sw ## Requirements - - Node.js `^20 || ^22 || ^24` + - Node.js `^22 || ^24 || ^26` - `@stoprocent/noble` is included as a dependency ## Prerequisites diff --git a/package-lock.json b/package-lock.json index 65c77d6a..a678b51f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -25,7 +25,7 @@ "vitest": "^4.1.4" }, "engines": { - "node": "^22 || ^24" + "node": "^22 || ^24 || ^26" }, "optionalDependencies": { "@stoprocent/bluetooth-hci-socket": "^2.2.5" diff --git a/package.json b/package.json index c8df0c80..cbe4e2c9 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,7 @@ "dist/" ], "engines": { - "node": "^22 || ^24" + "node": "^22 || ^24 || ^26" }, "scripts": { "check": "npm install && npm outdated",