[test] replace node-libgpiod with serialport in electron-rebuild workflow (#3945)

`node-libgpiod` uses deprecated NAN which is incompatible with Electron
v39+. `serialport` uses N-API ensuring compatibility with current and
future Electron versions.

`node-libgpiod` is only used by 1 of ~1300 3rd-party-modules
(MMM-PresenceScreenControl), while serialport is used by at least 4
modules (MMM-Serial-Notification, MMM-RadarPresence, MMM-LKY-TIC and
MMM-Gestures), making it a better test candidate.

Also updates Electron to v39.

Fixes #3933
This commit is contained in:
Kristjan ESPERANTO
2025-11-04 22:46:20 +01:00
committed by GitHub
parent 67fead74b4
commit 9d713ffd69
4 changed files with 8 additions and 11 deletions

View File

@@ -21,12 +21,8 @@ jobs:
run: node --run install-mm
- name: Install @electron/rebuild
run: npm install @electron/rebuild
- name: Install node-libgpiod deps
run: |
sudo apt-get update
sudo apt-get install gpiod libgpiod2 libgpiod-dev
- name: Install test library (node-libgpiod) to be rebuilded
run: npm install node-libgpiod
- name: Install test library (serialport) to be rebuilt
run: npm install serialport
- name: Run electron-rebuild
run: npx electron-rebuild
continue-on-error: false

View File

@@ -24,6 +24,7 @@ planned for 2026-01-01
- [calendar] chore: remove `requiresVersion: "2.1.0"` (#3932)
- [tests] migrate from `jest` to `vitest` (#3940, #3941)
- [ci] Add concurrency to automated tests workflow to cancel outdated runs (#3943)
- [tests] replace `node-libgpiod` with `serialport` in electron-rebuild workflow (#3945)
### Fixed

8
package-lock.json generated
View File

@@ -62,7 +62,7 @@
"node": ">=22.20.0 <23 || >=24"
},
"optionalDependencies": {
"electron": "^38.3.0"
"electron": "^39.0.0"
}
},
"node_modules/@acemir/cssom": {
@@ -4801,9 +4801,9 @@
"license": "MIT"
},
"node_modules/electron": {
"version": "38.5.0",
"resolved": "https://registry.npmjs.org/electron/-/electron-38.5.0.tgz",
"integrity": "sha512-dbC7V+eZweerYMJfxQldzHOg37a1VdNMCKxrJxlkp3cA30gOXtXSg4ZYs07L5+QwI19WOy1uyvtEUgbw1RRsCQ==",
"version": "39.0.0",
"resolved": "https://registry.npmjs.org/electron/-/electron-39.0.0.tgz",
"integrity": "sha512-UejnuOK4jpRZUq7MkEAnR/szsRWLKBJAdvn6j3xdQLT57fVv13VSNdaUHHjSheaqGzNhCGIdkPsPJnGJVh5kiA==",
"hasInstallScript": true,
"license": "MIT",
"optional": true,

View File

@@ -121,7 +121,7 @@
"vitest": "^4.0.6"
},
"optionalDependencies": {
"electron": "^38.3.0"
"electron": "^39.0.0"
},
"engines": {
"node": ">=22.20.0 <23 || >=24"