Spring 2026 Update#62
Conversation
There was a problem hiding this comment.
Pull Request Overview
This PR streamlines the build pipeline, drops legacy Debian 9 support, and adds Windows ARM64 build support.
- Bumps package version and Node engine requirement to 20+
- Removes the old Debian Dockerfile and tweaks Alpine build to constrain JOBS
- Updates GitHub workflows to include Windows ARM runners and refactors the build matrix
Reviewed Changes
Copilot reviewed 7 out of 8 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| package.json | Version bump to 0.14.1 and requires Node ≥20.0.0 |
| .prebuild/Dockerfile.oldDebian | Removed outdated Debian 9 build recipe |
| .prebuild/Dockerfile.alpine | Added ENV JOBS=1 to limit parallelism |
| .npmignore | Ignoring deps/ and src/ to match published files |
| .github/workflows/Stage 2 - Validate.yml | Expanded OS matrix (including Windows ARM), adjusted branches |
| .github/workflows/Prepare prebuild environment.yml | Updated node targets and added Windows ARM prebuild step |
| .github/workflows/Alternate Approach.yml | Refactored matrix for multi-platform builds and simplified steps |
Comments suppressed due to low confidence (5)
package.json:55
- Bumping the engines field to Node >=20 drops support for Node 18 and 19; please confirm this breaking change is intended or provide compatibility notes.
"node": ">=20.0.0 <25.0.0"
.github/workflows/Alternate Approach.yml:126
- The
--platformflag was removed from thedocker buildcommand, which may cause incorrect builds on non-native targets. Reintroduce${{ matrix.PLATFORM }}or an equivalent to ensure correct cross-platform builds.
docker build -f .prebuild/${{ matrix.DOCKERFILE }} --build-arg BASE_IMAGE=${{ matrix.BASE_IMAGE }} --build-arg QEMU_ARCH=${{ matrix.QEMU_ARCH }} -t multiarch-build .
.github/workflows/Alternate Approach.yml:136
- There's an unexpected tab/whitespace in
runner.arch == 'X64'that may break YAML parsing. Replace with a single space before==.
if: ${{ (runner.os == 'macOS') && (runner.arch == 'X64') }}
.github/workflows/Stage 2 - Validate.yml:44
- [nitpick] Including
ubuntu-latestalongside explicit Ubuntu versions (ubuntu-24.04,ubuntu-22.04) duplicates runs sinceubuntu-latestcurrently maps toubuntu-22.04; consider removing redundancy.
os: [ubuntu-latest, ubuntu-24.04, ubuntu-22.04, macos-latest, macos-15, macos-14, macos-13, windows-latest, windows-2025, windows-2022, windows-11-arm]
.github/workflows/Stage 2 - Validate.yml:44
windows-11-armis not a standard GitHub Actions runner label; please verify runner availability or update to a supported label for ARM builds on Windows.
os: [ubuntu-latest, ubuntu-24.04, ubuntu-22.04, macos-latest, macos-15, macos-14, macos-13, windows-latest, windows-2025, windows-2022, windows-11-arm]
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…80) * Initial plan * Add Node 25 (ABI 141) prebuild support and bump engines upper bound to <26.0.0 Agent-Logs-Url: https://github.com/homebridge/node-pty-prebuilt-multiarch/sessions/fca0e9db-8c83-4936-8a4a-5c14bb698e60 Co-authored-by: NorthernMan54 <19808920+NorthernMan54@users.noreply.github.com> * Tweaks to scripts --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: NorthernMan54 <19808920+NorthernMan54@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 9 out of 10 changed files in this pull request and generated 4 comments.
Comments suppressed due to low confidence (1)
package.json:25
- The published package no longer includes
src/anddeps/(removed from thefilesallowlist), but theinstallscript still falls back tonode scripts/install.js, which runsnode-gyp rebuildand requires those sources. This will make installs fail on any platform/Node ABI where a prebuild isn't available. Either includesrc/anddeps/in the published package again, or remove/replace the node-gyp fallback with a clear error (and document the lack of source-build support).
"files": [
"binding.gyp",
"lib/",
"scripts/",
"typings/",
"prebuilds/linux-x64",
"prebuilds/linux-ia32",
"prebuilds/linux-arm",
"prebuilds/linux-arm64",
"third_party/conpty"
],
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| node-version: [18.x, 20.x, 22.x, 23.x, 24.x, 25.x] | ||
| os: [ubuntu-latest, ubuntu-24.04, ubuntu-22.04, ubuntu-24.04-arm, macos-latest, macos-15, macos-14, macos-15-intel, windows-latest, windows-2025, windows-2022, windows-11-arm] | ||
| exclude: | ||
| - node-version: 18.x | ||
| os: windows-11-arm |
There was a problem hiding this comment.
This workflow still tests Node 18.x, but the package now declares engines.node as >=20.0.0 and the Stage 1 build matrix no longer builds Node 18 prebuilds. Keeping 18.x in the validation matrix is likely to produce false failures (or validate an unsupported runtime). Update the matrix to match the supported Node range (or adjust engines if Node 18 is still supported).
| node-version: [18.x, 20.x, 22.x, 23.x, 24.x, 25.x] | |
| os: [ubuntu-latest, ubuntu-24.04, ubuntu-22.04, ubuntu-24.04-arm, macos-latest, macos-15, macos-14, macos-15-intel, windows-latest, windows-2025, windows-2022, windows-11-arm] | |
| exclude: | |
| - node-version: 18.x | |
| os: windows-11-arm | |
| node-version: [20.x, 22.x, 23.x, 24.x, 25.x] | |
| os: [ubuntu-latest, ubuntu-24.04, ubuntu-22.04, ubuntu-24.04-arm, macos-latest, macos-15, macos-14, macos-15-intel, windows-latest, windows-2025, windows-2022, windows-11-arm] |
| - name: Windows ${{matrix.arch}} - Prebuild Binaries | ||
| if: ${{ (runner.os == 'Windows') && (matrix.arch == 'x64') }} | ||
| shell: bash | ||
| run: | | ||
| env JOBS=max node_modules/.bin/prebuild ${currentNodeBuildTargets} ${oldNodeBuildTargets} --include-regex "\.(node|exe|dll|pdb)" --arch ${{ matrix.arch }} | ||
| env JOBS=max node_modules/.bin/prebuild ${electronBuildTargets} ${oldElectronBuildTargets} --include-regex "\.(node|exe|dll|pdb)" -r electron --arch ${{ matrix.arch }} |
There was a problem hiding this comment.
PR description says Electron support has been removed, but this workflow still builds Electron prebuilds for Windows x64 (-r electron ...). If Electron is truly being dropped, remove the Electron build targets/steps (and any related counts/artifacts). If Electron remains supported, the PR description should be updated to avoid a breaking-change mismatch.
| time: "09:00" | ||
| # Create PRs for out-of-date actions | ||
| open-pull-requests-limit: 10 | ||
| target-branch: "latest" |
There was a problem hiding this comment.
target-branch is set to latest, but workflows in this PR were updated to use main as the primary branch. If the repository default branch has moved to main, Dependabot PRs targeting latest will be opened against a non-primary branch (or fail if it doesn't exist). Consider changing target-branch to main (or confirm that latest is still the intended maintenance branch).
| target-branch: "latest" | |
| target-branch: "main" |
| *.test.ts | ||
|
|
||
| deps/ | ||
| src/ No newline at end of file |
There was a problem hiding this comment.
Ignoring deps/ and src/ here prevents them from being shipped in the tarball, which breaks the node-gyp rebuild fallback in scripts/install.js when prebuilds are missing. If source builds are still intended to work, these directories should not be excluded from the published package.
| *.test.ts | |
| deps/ | |
| src/ | |
| *.test.ts |
Changes
Breaking Change