-
Notifications
You must be signed in to change notification settings - Fork 8
Fix Node.js 32-bit architecture compatibility and add alpha/stable build streams with selective Node.js 24 for 64-bit #172
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
Conversation
… 32-bit builds Co-authored-by: NorthernMan54 <19808920+NorthernMan54@users.noreply.github.com>
…t constraints Co-authored-by: NorthernMan54 <19808920+NorthernMan54@users.noreply.github.com>
@copilot Pls create two build streams for the stable release package, similar to how the beta stream is doing the same with the 32bit and 64bit package.json files. |
- Add stable/32bit/ and stable/64bit/ directories with package.json configs - Update build.sh to use architecture-specific configs for stable builds - Update validation and test scripts to handle new stable configurations - Update Dependabot config to monitor new stable package.json files - Update BUILD.md with package configuration documentation - Update workflows to trigger on stable package.json changes Co-authored-by: NorthernMan54 <19808920+NorthernMan54@users.noreply.github.com>
I've created two build streams for the stable release package, similar to the beta stream structure: New Structure:
Key Changes:
This provides the same architecture-specific benefits as the beta streams while ensuring Node.js version compatibility constraints are properly maintained. Commit: 4287cc6 |
@copilot Pls fix conflicts with build.sh |
@copilot At this time, pls keep the 64bit stream on NodeJS 22. Launch of NodeJS will be in the future |
…t branch changes Co-authored-by: NorthernMan54 <19808920+NorthernMan54@users.noreply.github.com>
Fixed the build.sh conflicts by adding alpha support from the latest branch. The conflict occurred because the latest branch added alpha release type support while my changes added stable build streams. I've now merged both features: Changes made:
All three release types now work correctly:
Commit: f81cbdf |
Co-authored-by: NorthernMan54 <19808920+NorthernMan54@users.noreply.github.com>
Updated all 64-bit build streams to use Node.js 22.19.0 instead of Node.js 24. The changes affect:
All configurations now use Node.js 22 across both 32-bit and 64-bit architectures. Node.js 24 launch can be implemented in the future when ready. Commit: 6652ed0 |
@copilot For beta and alpha 64 bit streams, pls use NodeJS 24 |
Co-authored-by: NorthernMan54 <19808920+NorthernMan54@users.noreply.github.com>
@copilot dependabot config is missing the ignore for 64bit NodeJS versions. |
Co-authored-by: NorthernMan54 <19808920+NorthernMan54@users.noreply.github.com>
Added the missing Node.js version ignore rule for stable 64-bit stream. The Dependabot configuration now correctly prevents automatic updates to Node.js >22.x for all stable builds (32-bit, 64-bit, and legacy), ensuring stable releases stay on Node.js 22 as requested. Commit: 27c342d |
@copilot move test-nodes-validation and validate-config to the test directory Also when should these be used ? |
Co-authored-by: NorthernMan54 <19808920+NorthernMan54@users.noreply.github.com>
Moved both scripts to the test directory. Commit: 11a298a When to use these scripts: test/validate-config.sh - Run this to validate package configurations:
test/test-nodejs-validation.sh - Run this for comprehensive testing:
Both scripts run quickly (< 30 seconds) and provide clear validation feedback with detailed error messages when issues are found. |
This PR addresses the build failures that occur when Node.js 24+ is used with 32-bit architectures (ARM32/i386), which dropped 32-bit support starting with Node.js 23, and implements architecture-specific build streams for all release types (alpha, beta, stable) with strategic Node.js version deployment.
Problem
The original issue manifested as build failures when attempting to download Node.js 24 binaries for 32-bit ARM:
+ curl -SLO https://nodejs.org/dist/v24.2.0/node-v24.2.0-linux-armv7l.tar.gz # Results in 404 - file doesn't exist because Node.js 24 doesn't support 32-bit architectures
While the build script had some logic to prevent this, the error handling was not robust enough and error messages were unclear. Additionally, only beta builds had architecture-specific configurations, limiting the ability to use consistent Node.js versions across all release types.
Solution
Enhanced Build Script Validation
Architecture-Specific Build Streams for All Release Types
Extended the beta build pattern to all release types with strategic Node.js version deployment:
alpha/32bit/package.json
(Node.js 22) andalpha/64bit/package.json
(Node.js 24)beta/32bit/package.json
(Node.js 22) andbeta/64bit/package.json
(Node.js 24)stable/32bit/package.json
(Node.js 22) andstable/64bit/package.json
(Node.js 22)This approach enables bleeding-edge Node.js 24 for alpha/beta 64-bit builds while maintaining stability with Node.js 22 for stable releases.
Build System Integration
.github/homebridge-alpha-bot.json
for automated alpha dependency managementalpha-stage-1
andalpha-stage-2
workflows for alpha release automationbuild.sh
to automatically select appropriate config based on release type and target architectureValidation Tools
Documentation Improvements
Key Changes
test/
directory for better project organizationValidation
All tests pass successfully, confirming:
The fix ensures that the download failures described in the original issue cannot occur while providing clear guidance when misconfigurations are detected. The architecture-specific build streams enable strategic Node.js version deployment across all release types while maintaining compatibility for 32-bit systems and enabling cutting-edge development for alpha/beta releases.
Fixes #82.
💬 Share your feedback on Copilot coding agent for the chance to win a $200 gift card! Click here to start the survey.