Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
name: Pull Request
about: Submit changes to the RTMS SDK
Description
This PR introduces significant improvements across multiple areas of the RTMS SDK:
🔧 Build System Enhancements
package.json(binary.napi_versions), eliminating hardcoded values and maintaining a single source of truth📚 Documentation Overhaul
docs/VERSION_REQUIREMENTS.mdanddocs/PLATFORM_SUPPORT.mdas single sources of truth for version and platform informationpackage.jsonandpyproject.toml🐍 Python SDK Improvements
🟢 Node.js SDK Improvements
Related Issues
This PR addresses issues related to:
Type of Change
Affected Components
Changes Made
Build System (
scripts/common/build.js)fs,join,getProjectRootfor reading package.jsongetNapiVersions()function: Dynamically reads N-API versions frompackage.json→binary.napi_versionsfieldprebuildNodeJS()function:uploadNodeJS()function:Documentation Files
README.MD (8 locations updated):
CONTRIBUTING.md (3 locations updated):
PUBLISHING.md (2 locations updated):
New Documentation Files Created:
docs/VERSION_REQUIREMENTS.md: Single source of truth for Node.js and Python version requirements, EOL policy, N-API versions, upgrade instructions, and troubleshootingdocs/PLATFORM_SUPPORT.md: Comprehensive platform and architecture documentation, supported platforms, requirements by platform, cross-platform building, and troubleshootingTesting Performed
Build System Testing
getNapiVersions()correctly reads from package.jsonNAPI_VERSIONSis populated with[9, 10]Documentation Verification
Expected Behavior
npm run prebuild:js:linuxwill create prebuilds for both N-API v9 and v10 (linux-x64)npm run upload:js:linuxwill upload both N-API v9 and v10 to GitHub releasesnpm run prebuild:js:darwinwill create prebuilds for both N-API v9 and v10 (darwin-arm64)npm run upload:js:darwinwill upload both N-API v9 and v10 to GitHub releasesChecklist
Additional Context
Why These Changes Matter
N-API Multi-Version Support: Previously, only N-API v10 prebuilds were being uploaded, leaving Node.js 20.3.0-20.x users without optimized prebuilds. This PR ensures both N-API v9 (Node.js 20.3.0+) and N-API v10 (Node.js 22+) users get prebuilt binaries for faster installation.
Documentation Accuracy: Outdated version references (Node.js 18.17.0, Python 3.8/3.9) were causing confusion and potentially leading developers to use unsupported versions. All documentation now reflects the actual minimum requirements from package.json and pyproject.toml.
Single Source of Truth: By creating shared documentation files and having build scripts read from package.json, future version updates will be easier to maintain and less error-prone.
EOL Policy Alignment: The 6-month post-EOL support policy is now clearly documented and consistently applied across all materials.
Breaking Changes
None - These changes are entirely internal to the build/documentation system and do not affect the public API or existing installations.
Migration Guide
For Users: No action required. New installations will automatically benefit from the improved prebuild availability.
For Maintainers:
package.jsonengines/binary fields andpyproject.tomlrequires-python fielddocs/VERSION_REQUIREMENTS.mdto reflect any policy changesFuture Enhancements
Consider adding: