Skip to content

Add rclpy node generator - #90

Draft
lsy3 wants to merge 8 commits into
ros-tooling:mainfrom
lsy3:lsy3/python
Draft

Add rclpy node generator#90
lsy3 wants to merge 8 commits into
ros-tooling:mainfrom
lsy3:lsy3/python

Conversation

@lsy3

@lsy3 lsy3 commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Summary

  • add an importable Python generator and thin CLI for producing rclpy base-node modules from NoDL documents
  • expose generation through CMake and setup.py helpers
  • support publishers, subscriptions, services, actions, lifecycle nodes, QoS, and typed parameters
  • add focused unit fixtures plus a separate downstream package that validates the exported CMake interface with a real ROS pub/sub round trip
  • include both Python generator packages in the existing five-distro CI matrix

Why

NoDL currently provides C++ generation but no equivalent reusable Python path. This adds the Python generator while keeping the generation core single-sourced and the downstream integration fixture separate from the production package.

The parameter dependency is intentionally limited to generate_parameter_library_py; the Python generator does not need the C++ umbrella package or its runtime stack.

Validation

  • ROS Jazzy colcon build --packages-up-to nodl_generator_py test_nodl_generator_py --symlink-install
  • ROS Jazzy colcon test --packages-select nodl_generator_py test_nodl_generator_py
  • colcon result: 20 tests, 0 errors, 0 failures, 0 skipped
  • generator unit suite: 17 passed
  • generated pub/sub integration round trip: passed
  • Ruff on source and generated outputs
  • CMake lint, XML validation, and git diff --check

CI exercises Humble, Jazzy, Kilted, Lyrical, and Rolling.

lsy3 added 2 commits July 22, 2026 05:25
Signed-off-by: Luke Sy <sylukewicent@gmail.com>
Signed-off-by: Luke Sy <sylukewicent@gmail.com>
@read-the-docs-community

read-the-docs-community Bot commented Jul 21, 2026

Copy link
Copy Markdown

Documentation build overview

📚 nodl | 🛠️ Build #33892927 | 📁 Comparing 8dbdc44 against latest (54c6203)

  🔍 Preview build  

4 files changed
+ generating_python.html
± index.html
± roadmap.html
± schema.html

lsy3 added 6 commits July 22, 2026 06:33
Signed-off-by: Luke Sy <sylukewicent@gmail.com>
Signed-off-by: Luke Sy <sylukewicent@gmail.com>
Signed-off-by: Luke Sy <sylukewicent@gmail.com>
Signed-off-by: Luke Sy <sylukewicent@gmail.com>
Signed-off-by: Luke Sy <sylukewicent@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant