We are pleased to announce rclnodejs v1.8.2! This patch release focuses on improving ROS 2 Rolling compatibility, extending ROSIDL message support, and enhancing Electron Forge packaging for all demos.
🐛 Bug Fixes
ROS 2 Rolling Compilation (#1392)
- Fixed a compilation error when building against ROS 2 Rolling caused by a breaking API change in
rcl_lifecycle_state_machine_init, which now requires a clock parameter. Added a version-specific code path (ROS_VERSION >= 5000) and updated JavaScript code to pass the node's clock handle to the native lifecycle state machine creation function.
Hyphenated ROSIDL Subdirectory Support (#1390)
- Fixed
generate-ros-messagesfailure for packages with hyphenated subdirectory names (e.g.,msg-common,msg-ros2inmrpt_msgs). UpdatedgetSubFolder()to normalize hyphenated subdirectory names to their base interface types (msg,srv,action).
✨ Improvements
Electron Forge Packaging (#1387)
- Configured Electron Forge packaging across all four Electron demos (topics, turtle_tf2, manipulator, car) to enable distributable application creation.
- Added ASAR unpack configuration for rclnodejs, which requires file system access to generated code and native bindings.
- Migrated manipulator demo from CDN-based Three.js to npm package and added GPU rendering workarounds.
- Added comprehensive packaging documentation to all demo READMEs.
Compiler Warnings (#1385)
- Replaced the broad
<node.h>include with the more targeted<node_version.h>inrcl_bindings.cppto mitigate compiler warnings from unnecessary Node C++ API exposure.
🔧 Infrastructure
- Windows Rolling CI: Re-enabled rolling builds on Windows by updating the download URL to the new GitHub Releases location for ROS 2 Rolling nightly binaries (#1382).
- Dependencies: Updated
@eslint/jsto ^10.0.1 andeslintto ^10.0.2 (#1396).
Full Changelog: 1.8.1...1.8.2