Skip to content

Spring 2026 Update#62

Draft
NorthernMan54 wants to merge 41 commits into
mainfrom
beta-0.14.1
Draft

Spring 2026 Update#62
NorthernMan54 wants to merge 41 commits into
mainfrom
beta-0.14.1

Conversation

@NorthernMan54

@NorthernMan54 NorthernMan54 commented Jul 6, 2025

Copy link
Copy Markdown

Changes

  • Added support for Windows ARM, and shipping support for NodeJS 20, 21, 22, 23, 24, and 25
  • Added support for NodeJS 25

Breaking Change

  • Support for NodeJS 17 and 18 has been removed

@NorthernMan54 NorthernMan54 requested a review from Copilot July 6, 2025 04:50
@NorthernMan54 NorthernMan54 linked an issue Jul 6, 2025 that may be closed by this pull request

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 --platform flag was removed from the docker build command, 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-latest alongside explicit Ubuntu versions (ubuntu-24.04, ubuntu-22.04) duplicates runs since ubuntu-latest currently maps to ubuntu-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-arm is 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]

Comment thread .prebuild/Dockerfile.alpine Outdated
@NorthernMan54 NorthernMan54 marked this pull request as draft July 6, 2025 04:51
Copilot AI and others added 6 commits April 27, 2026 12:34
…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>

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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/ and deps/ (removed from the files allowlist), but the install script still falls back to node scripts/install.js, which runs node-gyp rebuild and requires those sources. This will make installs fail on any platform/Node ABI where a prebuild isn't available. Either include src/ and deps/ 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.

Comment on lines +43 to +47
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

Copilot AI Apr 30, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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).

Suggested change
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]

Copilot uses AI. Check for mistakes.
Comment on lines +311 to 316
- 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 }}

Copilot AI Apr 30, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copilot uses AI. Check for mistakes.
Comment thread .github/dependabot.yml
time: "09:00"
# Create PRs for out-of-date actions
open-pull-requests-limit: 10
target-branch: "latest"

Copilot AI Apr 30, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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).

Suggested change
target-branch: "latest"
target-branch: "main"

Copilot uses AI. Check for mistakes.
Comment thread .npmignore
Comment on lines 2 to +5
*.test.ts

deps/
src/ No newline at end of file

Copilot AI Apr 30, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Suggested change
*.test.ts
deps/
src/
*.test.ts

Copilot uses AI. Check for mistakes.
@NorthernMan54 NorthernMan54 changed the title Simplified and faster build process with Windows Arm Support Spring 2026 Update Apr 30, 2026
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.

Windows arm64 Support

3 participants