Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for NodeJS 23 #47

Draft
wants to merge 47 commits into
base: main
Choose a base branch
from
Draft
Changes from 1 commit
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
b5a1162
Squashed commit of the following:
NorthernMan54 Nov 12, 2024
0cb6bb2
Maybe
NorthernMan54 Nov 13, 2024
08d21c3
Update package.json
NorthernMan54 Nov 13, 2024
412eba1
Remove support for NodeJS 16
NorthernMan54 Nov 13, 2024
f1aa55b
Remove ARMv6 support
NorthernMan54 Nov 13, 2024
953f3a8
armv6 to armv7
NorthernMan54 Nov 13, 2024
6ae7261
linux-arm64
NorthernMan54 Nov 13, 2024
71428f2
Update Prepare prebuild environment.yml
NorthernMan54 Nov 13, 2024
0004b55
Update package.json
NorthernMan54 Nov 14, 2024
3efd0f9
What does this do
NorthernMan54 Nov 18, 2024
98f56c8
Create stage-1_build_prerelease.yml
NorthernMan54 Nov 26, 2024
8265be2
Update stage-1_build_prerelease.yml
NorthernMan54 Nov 26, 2024
3c16cd2
Downgrade based image back to buster
NorthernMan54 Nov 26, 2024
5f148d1
Update Prepare prebuild environment.yml
NorthernMan54 Nov 26, 2024
9d87c29
Try this
NorthernMan54 Nov 26, 2024
a07a1d5
Update Stage 2 - Validate.yml
NorthernMan54 Nov 26, 2024
9ff31e3
Update Stage 2 - Validate.yml
NorthernMan54 Nov 26, 2024
5ece998
Update Stage 2 - Validate.yml
NorthernMan54 Nov 26, 2024
976c137
Update Stage 2 - Validate.yml
NorthernMan54 Nov 26, 2024
d6a14c3
Update Stage 2 - Validate.yml
NorthernMan54 Nov 26, 2024
c3eeb4d
Update Stage 2 - Validate.yml (#49)
NorthernMan54 Nov 26, 2024
6481fd7
Update Stage 2 - Validate.yml
NorthernMan54 Nov 26, 2024
55535db
Update Stage 2 - Validate.yml
NorthernMan54 Nov 26, 2024
e71e5ee
Validate
NorthernMan54 Nov 26, 2024
370abf4
Update Dockerfile.debian
NorthernMan54 Nov 26, 2024
7cf2972
Try this
NorthernMan54 Nov 27, 2024
9fe5706
Update Dockerfile.debian
NorthernMan54 Nov 27, 2024
ea41cc8
Update Prepare prebuild environment.yml
NorthernMan54 Nov 27, 2024
911e546
Update Prepare prebuild environment.yml
NorthernMan54 Nov 27, 2024
8980450
Update Prepare prebuild environment.yml
NorthernMan54 Nov 27, 2024
bb755c3
Update Prepare prebuild environment.yml
NorthernMan54 Nov 27, 2024
5253882
TRy this
NorthernMan54 Nov 27, 2024
d4ba6cb
Update Prepare prebuild environment.yml
NorthernMan54 Nov 27, 2024
c43ad80
Update Prepare prebuild environment.yml
NorthernMan54 Nov 27, 2024
898d991
Update Prepare prebuild environment.yml
NorthernMan54 Nov 27, 2024
220b3d6
Update Prepare prebuild environment.yml
NorthernMan54 Nov 27, 2024
68c928f
Update Prepare prebuild environment.yml
NorthernMan54 Nov 27, 2024
c6ef97a
Update Prepare prebuild environment.yml
NorthernMan54 Nov 28, 2024
a94a36f
Update Prepare prebuild environment.yml
NorthernMan54 Nov 28, 2024
a0d9ab8
Ok
NorthernMan54 Nov 28, 2024
21e75f5
Update Prepare prebuild environment.yml
NorthernMan54 Nov 28, 2024
8faaa9b
Update Prepare prebuild environment.yml
NorthernMan54 Nov 28, 2024
d29227d
Update Prepare prebuild environment.yml
NorthernMan54 Nov 28, 2024
faa4dda
Update Prepare prebuild environment.yml
NorthernMan54 Nov 28, 2024
6634a02
Update Prepare prebuild environment.yml
NorthernMan54 Nov 28, 2024
4d9ff3e
Create event_logger.yml
NorthernMan54 Nov 28, 2024
3a00dd0
Update event_logger.yml
NorthernMan54 Nov 28, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Maybe
NorthernMan54 committed Nov 13, 2024
commit 0cb6bb2d8e2333c8351df06c88ecab0a80e2f9cd
18 changes: 9 additions & 9 deletions .github/workflows/Prepare prebuild environment.yml
Original file line number Diff line number Diff line change
@@ -16,8 +16,8 @@ on:
env:
# Order reversed so newer versions are built first - Add new versions to the front (fail fast)
# electronBuildTargets version 28 has an issue
oldNodeBuildTargets: -t 18.0.0 -t 17.0.1 -t 16.0.0
nodeBuildTargets: -t 22.0.0 -t 21.0.0 -t 20.0.0 -t 19.0.0
oldNodeBuildTargets: -t 17.0.1 -t 16.0.0
currentNodeBuildTargets: -t 23.0.0 -t 22.0.0 -t 21.0.0 -t 20.0.0 -t 19.0.0 -t 18.0.0
oldElectronBuildTargets: -t 19.0.0 -t 18.0.0 -t 17.0.0 -t 16.0.0
electronBuildTargets: -t 29.0.0 -t 27.0.0 -t 26.0.0 -t 25.0.0 -t 24.0.0 -t 23.0.0 -t 22.0.0 -t 21.0.0 -t 20.0.0
winIA32nodeBuildTargets: -t 17.0.1 -t 16.0.0
@@ -246,11 +246,11 @@ jobs:
echo "BuildOldCMD=\"./.prebuild/build.sh .prebuild/prebuild.js ${oldNodeBuildTargets} && \
./.prebuild/build.sh .prebuild/prebuildify.js ${oldNodeBuildTargets} && \
./.prebuild/build.sh .prebuild/electron.js ${oldElectronBuildTargets}\"" >> $GITHUB_ENV
echo "BuildNewCMD=\"./.prebuild/build.sh .prebuild/prebuild.js ${nodeBuildTargets} && \
./.prebuild/build.sh .prebuild/prebuildify.js ${nodeBuildTargets}&& \
echo "BuildNewCMD=\"./.prebuild/build.sh .prebuild/prebuild.js ${currentNodeBuildTargets} && \
./.prebuild/build.sh .prebuild/prebuildify.js ${currentNodeBuildTargets}&& \
./.prebuild/build.sh .prebuild/electron.js ${electronBuildTargets}\"" >> $GITHUB_ENV
echo "BuildAllCMD=\"./.prebuild/build.sh .prebuild/prebuild.js ${nodeBuildTargets} ${oldNodeBuildTargets} && \
./.prebuild/build.sh .prebuild/prebuildify.js ${nodeBuildTargets} ${oldNodeBuildTargets} && \
echo "BuildAllCMD=\"./.prebuild/build.sh .prebuild/prebuild.js ${currentNodeBuildTargets} ${oldNodeBuildTargets} && \
./.prebuild/build.sh .prebuild/prebuildify.js ${currentNodeBuildTargets} ${oldNodeBuildTargets} && \
./.prebuild/build.sh .prebuild/electron.js ${electronBuildTargets} ${oldElectronBuildTargets}\"" >> $GITHUB_ENV
echo "CMD=${{ matrix.CMD }}" >> $GITHUB_ENV

@@ -279,7 +279,7 @@ jobs:
run: |
python3 -m pip install packaging setuptools
npm ci --ignore-scripts
env JOBS=max node .prebuild/prebuild.js ${nodeBuildTargets} ${oldNodeBuildTargets}
env JOBS=max node .prebuild/prebuild.js ${currentNodeBuildTargets} ${oldNodeBuildTargets}
env JOBS=max node .prebuild/electron.js ${electronBuildTargets} ${oldElectronBuildTargets}
# buildify doesn't work on Mac due to missing spawn_helper
# env JOBS=max node .prebuild/buildify.js
@@ -292,7 +292,7 @@ jobs:
python3 -m pip install packaging setuptools
brew install python-setuptools
npm ci --ignore-scripts
env JOBS=max node .prebuild/prebuild.js ${nodeBuildTargets} ${oldNodeBuildTargets}
env JOBS=max node .prebuild/prebuild.js ${currentNodeBuildTargets} ${oldNodeBuildTargets}
env JOBS=max node .prebuild/electron.js ${electronBuildTargets} ${oldElectronBuildTargets}
# buildify doesn't work on Mac due to missing spawn_helper
# env JOBS=max node .prebuild/buildify.js
@@ -312,7 +312,7 @@ jobs:
shell: bash
run: |
npm ci --ignore-scripts
env JOBS=max node_modules/.bin/prebuild ${nodeBuildTargets} ${oldNodeBuildTargets} --include-regex "\.(node|exe|dll|pdb)" --arch ${{ matrix.arch }}
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 }}

# Start of Checks
4 changes: 2 additions & 2 deletions .prebuild/Dockerfile.debian
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
ARG BASE_IMAGE
FROM ${BASE_IMAGE:-library/debian:buster-slim}
FROM ${BASE_IMAGE:-library/debian:bookworm-slim}

ARG QEMU_ARCH
ENV QEMU_ARCH=${QEMU_ARCH:-x86_64}
@@ -13,7 +13,7 @@ RUN [ "$(uname -m)" = "x86_64" ] && apt-get install -y g++-multilib gcc-multilib

## Linux 32 bit support was dropped with NodeJS 18.4.0

ENV NODE_VERSION 18.18.2
ENV NODE_VERSION 22.11.0

RUN case "${QEMU_ARCH}" in \
x86_64) NODE_ARCH='x64';; \
281 changes: 0 additions & 281 deletions .prebuild/abi_registry.json

This file was deleted.

4 changes: 2 additions & 2 deletions .prebuild/electron.js
Original file line number Diff line number Diff line change
@@ -8,8 +8,8 @@ const child_process = require('child_process');
const prebuildPkgPath = path.dirname(require.resolve('prebuild'));
const nodeAbiPkgPath = path.dirname(require.resolve('node-abi'));
const prebuildPath = path.resolve(prebuildPkgPath, 'bin.js');
const abiRegistryJsonPath = path.resolve(nodeAbiPkgPath, 'abi_registry.json');
fs.copyFileSync(path.resolve(__dirname, 'abi_registry.json'), abiRegistryJsonPath);
// const abiRegistryJsonPath = path.resolve(nodeAbiPkgPath, 'abi_registry.json');
// fs.copyFileSync(path.resolve(__dirname, 'abi_registry.json'), abiRegistryJsonPath);

if (os.platform() === 'win32') {
process.exit(0);
4 changes: 2 additions & 2 deletions .prebuild/prebuild.js
Original file line number Diff line number Diff line change
@@ -8,8 +8,8 @@ const child_process = require('child_process');
const prebuildPkgPath = path.dirname(require.resolve('prebuild'));
const nodeAbiPkgPath = path.dirname(require.resolve('node-abi'));
const prebuildPath = path.resolve(prebuildPkgPath, 'bin.js');
const abiRegistryJsonPath = path.resolve(nodeAbiPkgPath, 'abi_registry.json');
fs.copyFileSync(path.resolve(__dirname, 'abi_registry.json'), abiRegistryJsonPath);
// const abiRegistryJsonPath = path.resolve(nodeAbiPkgPath, 'abi_registry.json');
// fs.copyFileSync(path.resolve(__dirname, 'abi_registry.json'), abiRegistryJsonPath);

if (os.platform() === 'win32') {
process.exit(0);
4 changes: 2 additions & 2 deletions .prebuild/prebuildify.js
Original file line number Diff line number Diff line change
@@ -8,8 +8,8 @@ const child_process = require('child_process');
const prebuildPkgPath = path.dirname(require.resolve('prebuildify'));
const nodeAbiPkgPath = path.dirname(require.resolve('node-abi'));
const prebuildPath = path.resolve(prebuildPkgPath, 'bin.js');
const abiRegistryJsonPath = path.resolve(nodeAbiPkgPath, 'abi_registry.json');
fs.copyFileSync(path.resolve(__dirname, 'abi_registry.json'), abiRegistryJsonPath);
// const abiRegistryJsonPath = path.resolve(nodeAbiPkgPath, 'abi_registry.json');
// fs.copyFileSync(path.resolve(__dirname, 'abi_registry.json'), abiRegistryJsonPath);

if (os.platform() === 'win32') {
process.exit(0);
8 changes: 4 additions & 4 deletions build.sh
Original file line number Diff line number Diff line change
@@ -6,7 +6,7 @@
set -e

export oldNodeBuildTargets='-t 10.0.0 -t 11.0.0 -t 12.0.0 -t 13.0.0 -t 14.0.0 -t 15.0.0 -t 16.0.0 -t 17.0.1 -t 18.0.0'
export nodeBuildTargets='-t 19.0.0 -t 20.0.0 -t 21.0.0 -t 22.0.0'
export nodeBuildTargets='-t 23.0.0 -t 19.0.0 -t 20.0.0 -t 21.0.0 -t 22.0.0'

export oldElectronBuildTargets='-t 5.0.0 -t 6.0.0 -t 7.0.0 -t 8.0.0 -t 9.0.0 -t 10.0.0 -t 11.0.0 -t 12.0.0 -t 13.0.0 -t 14.0.0 -t 15.0.0 -t 16.0.0 -t 17.0.0 -t 18.0.0 -t 19.0.0'
export electronBuildTargets='-t 20.0.0 -t 21.0.0 -t 22.0.0 -t 23.0.0 -t 24.0.0 -t 25.0.0 -t 26.0.0 -t 27.0.0 -t 28.0.0'
@@ -45,12 +45,12 @@ export CMD=$RunCMD
echo
echo "--------------------------- $QEMU_ARCH - $DOCKERFILE -------------------------------"
echo
#docker build -f .prebuild/$DOCKERFILE --build-arg QEMU_ARCH=${QEMU_ARCH} -t multiarch-build .
#docker run --rm -v $(pwd):/node-pty multiarch-build bash -c "$CMD"
docker build -f .prebuild/$DOCKERFILE --build-arg QEMU_ARCH=${QEMU_ARCH} -t multiarch-build .
docker run --rm -v $(pwd):/node-pty multiarch-build bash -c "$CMD"

#docker run -v $(pwd):/node-pty multiarch-build ./.prebuild/build.sh .prebuild/prebuild.js ${nodeBuildTargets}
#docker run --rm -v $(pwd):/node-pty multiarch-build ./.prebuild/build.sh .prebuild/prebuildify.js ${nodeBuildTargets}

exit 0
# Older

export BASE_IMAGE=balenalib/raspberry-pi-debian:bullseye
10,245 changes: 4,452 additions & 5,793 deletions package-lock.json

Large diffs are not rendered by default.

8 changes: 6 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -48,7 +48,8 @@
"prepublishOnly": "npm run build"
},
"dependencies": {
"node-addon-api": "^7.1.0"
"node-addon-api": "^7.1.0",
"prebuild-install": "^7.1.2"
},
"devDependencies": {
"@types/mocha": "^7.0.2",
@@ -57,8 +58,11 @@
"@typescript-eslint/parser": "^2.27.0",
"cross-env": "^5.1.4",
"eslint": "^6.8.0",
"node-abi": "^3.71.0",
"mocha": "10",
"node-gyp": "^10.0.1",
"node-gyp": "=10.1.0",
"prebuild": "^13.0.1",
"prebuildify": "^5.0.1",
"ps-list": "^6.0.0",
"typescript": "^3.8.3"
}