Skip to content

feat: support Node.js 26 LTS - #360

Merged
donavanbecker merged 1 commit into
latestfrom
ci/node-26
Nov 6, 2026
Merged

donavanbecker merged 1 commit into
latestfrom
ci/node-26

Conversation

@donavanbecker

Copy link
Copy Markdown
Contributor

What

  • engines.node: ^22 || ^24 → ^22 || ^24 || ^26.
  • CI matrix: Node 22, 24 and 26.
  • CI actions: actions/checkout@v4 → @v7 and actions/setup-node@v4 → @v7. The v4 actions run on Node 20, which GitHub removed from runners on 2026-09-23; they only still work because runners force them onto Node 24.
  • The contributor guide and BLE.md list the new Node range. BLE.md still said ^20.

Why

Node 26 became LTS on 2026-10-28. Homebridge 2.4.0 already declares ^22 || ^24 || ^26.

Checks

Build, test (462 passed) and lint pass on Node 22.23.4 and on Node 26.13.0.

Nothing is dropped and the minimum is unchanged. Node 22 reaches end of life in April 2027; dropping it is left for a later decision.


Generated by Claude Code

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 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LzktUt9rqfrSfRydbWruTR
donavanbecker added a commit to OpenWonderLabs/homebridge-switchbot that referenced this pull request Nov 6, 2026
## What

- `engines.node`: `^22 || ^24` → `^22 || ^24 || ^26`.
`engines.homebridge` stays `^2.0.0`.
- CI matrix: Node 22, 24 and 26.
- Workflows: `actions/checkout` and `actions/setup-node` move to `@v7`
(`ci.yml` was on v4, `manual-e2e.yml` on v6). The v4 actions run on Node
20, which GitHub [removed from runners on
2026-09-23](https://github.blog/changelog/2026-01-12-deprecation-of-node-20-on-github-actions-runners/).
- The contributor guide lists the new Node range.

## Why

Node 26 became [LTS on
2026-10-28](https://www.linuxcompatible.org/story/nodejs-26130-lithium-reaches-lts-support-through-april-2029/).
Homebridge 2.4.0 already declares `^22 || ^24 || ^26`, so users on Node
26 currently get an engines warning for this plugin only.

The matching node-switchbot change is OpenWonderLabs/node-switchbot#360.
The plugin's `engines` doesn't depend on it.

## Checks

Build, test (219 passed, 1 skipped) and lint pass on Node 22.23.4 and on
Node 26.13.0.

## Target branch

No `beta-*` branch exists, and this session wasn't allowed to create
`beta-5.2.11` (the next patch after the published 5.2.10, since there
are no labels). So, as the guide's fallback says, this targets `latest`.
Retarget to a beta branch if you'd rather ship it as a beta first.

No config migration needed.

---
_Generated by [Claude
Code](https://claude.ai/code/session_01LzktUt9rqfrSfRydbWruTR)_

Co-authored-by: Claude <noreply@anthropic.com>
@donavanbecker
donavanbecker merged commit b238e78 into latest Nov 6, 2026
3 checks passed
@donavanbecker
donavanbecker deleted the ci/node-26 branch November 6, 2026 15:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants