This project is a parallel fork of node-pty
providing prebuilt packages for certain Node.js and Electron versions.
Inspired by daviwil/node-pty-prebuilt.
Thanks to the excellent prebuild
, prebuild-install
modules, and prebuildify
using this module is extremely easy.
You merely have to change your node-pty
dependency to @homebridge/node-pty-prebuilt-multiarch
and then change any require
statements in your code from require('node-pty')
to require('@homebridge/node-pty-prebuilt-multiarch')
.
We maintain a parallel fork of the node-pty
codebase that will be updated as new releases are shipped.
When we merge new updates to the code into the prebuilt-multiarch
branch, new prebuilt packages for our supported Node.js and Electron versions are updated to the corresponding GitHub release.
When @homebridge/node-pty-prebuilt-multiarch
is installed as a package dependency, the installation script checks to see if there's a prebuilt package on this repo for the OS, ABI version, and architecture of the current process and then downloads it, extracting it into the module path.
If a corresponding prebuilt package is not found, node-gyp
is invoked to build the package for the current platform.
OS | Architectures |
---|---|
macOS | x64, arm64 |
Linux (glibc) | ia32, x64, armv6, aarch64 |
Linux (musl) | x64, armv6, aarch64 |
Windows | ia32, x64 |
We only provide prebuilt binaries for Node.js 17 and Electron 17.0.0 or higher. Pls note that prebuilds for Electron 28 are not supplied due to build issues.
Please note releasing this package uses GitHub actions.
This flows takes the branch selected from the workflow start drop down, and creates a GitHub and NPM Release containing the prebuild artifacts.
The version of the Release comes from the package.json, and in the case of a BETA release automatically appends the beta release version.
During processing, it leverages a branch called release-candidate
as a holding area for prebuilds.
When running the job, most times a couple of the instances of the sub step Commit & Push Changes
within Prebuild NPM and GitHub Release artifacts
fails.
When this occurs just re-run. This is due to concurrency issues between the steps and GitHub.
A typical run has 3-4 steps fail.
- Create branch
release-candidate
if not existing (the script deletes it before starting and will fail if it isn't present) - Ensure version tag within package.json reflects version you want to publish, please note beta tags are added by the action.
- Run Action
Run prebuild's and Create GitHub and NPM release
, and select branch you wish to publish, and if it needs to be BETA tagged and versioned - This will run for about an hour, and create a GitHub release with the prebuild artifacts attached, and a npm release with the prebuild artifacts attached
- Copyright (c) 2012-2015, Christopher Jeffrey (MIT License).
- Copyright (c) 2016, Daniel Imms (MIT License).
- Copyright (c) 2018, Microsoft Corporation (MIT License).
- Copyright (c) 2018, David Wilson (MIT License).
- Copyright (c) 2018, oznu (MIT License).
- Copyright (c) 2023, Homebridge (MIT License).