Skip to content

feat(dynamic): extended message schema#142

Draft
schmidma wants to merge 6 commits into
ZettaScaleLabs:mainfrom
schmidma:extended-message-schema
Draft

feat(dynamic): extended message schema#142
schmidma wants to merge 6 commits into
ZettaScaleLabs:mainfrom
schmidma:extended-message-schema

Conversation

@schmidma
Copy link
Copy Markdown
Contributor

@schmidma schmidma commented Mar 16, 2026

Description

GitHub shows this PR against main, but the intended review base is #139 and #164.

This PR adds optional extended schema discovery for Rust-native message types that cannot be represented in the standard ROS 2 type description language, such as Option<T> and enums.

The existing MessageTypeInfo path remains strict and unchanged. ROS-compatible structs continue to use the standard ROS 2 schema service, while richer Rust shapes can use the separate extended schema mechanism between ros-z nodes.

Checklist

  • Ran ./scripts/check-local.sh successfully
  • Added or updated tests and documentation when applicable

@schmidma schmidma force-pushed the extended-message-schema branch from c55bd69 to 3bdcf0c Compare March 16, 2026 14:10
@codecov
Copy link
Copy Markdown

codecov Bot commented Mar 16, 2026

Codecov Report

❌ Patch coverage is 63.88022% with 579 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
crates/ros-z/src/extended_schema.rs 64.32% 178 Missing ⚠️
crates/ros-z/src/dynamic/serialization/cdr.rs 28.92% 86 Missing ⚠️
crates/ros-z/src/dynamic/value.rs 0.00% 63 Missing ⚠️
crates/ros-z/src/node.rs 68.86% 33 Missing ⚠️
crates/ros-z/src/service.rs 77.77% 32 Missing ⚠️
crates/ros-z/src/action/client.rs 11.76% 30 Missing ⚠️
crates/ros-z/src/graph.rs 72.89% 29 Missing ⚠️
crates/ros-z/src/dynamic/schema.rs 43.47% 26 Missing ⚠️
crates/ros-z/src/dynamic/discovery.rs 80.76% 25 Missing ⚠️
crates/ros-z/src/dynamic/type_description.rs 13.33% 13 Missing ⚠️
... and 9 more
Files with missing lines Coverage Δ
crates/ros-z/src/action/server.rs 74.38% <ø> (ø)
crates/ros-z/src/config.rs 81.62% <ø> (ø)
crates/ros-z/src/context.rs 51.19% <100.00%> (+0.59%) ⬆️
...ates/ros-z/src/dynamic/type_description_service.rs 61.61% <100.00%> (+30.93%) ⬆️
crates/ros-z/src/encoding.rs 95.37% <ø> (ø)
crates/ros-z/src/event.rs 87.57% <100.00%> (+0.25%) ⬆️
crates/ros-z/src/lib.rs 100.00% <ø> (ø)
crates/ros-z/src/parameter/client.rs 98.38% <100.00%> (ø)
crates/ros-z/src/parameter/service.rs 78.74% <100.00%> (ø)
crates/ros-z/src/ros_msg.rs 48.64% <100.00%> (+4.53%) ⬆️
... and 20 more

... and 3 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@schmidma schmidma force-pushed the extended-message-schema branch from 3bdcf0c to ca7141f Compare April 2, 2026 13:32
@schmidma schmidma force-pushed the extended-message-schema branch 3 times, most recently from d21bd23 to 4dba437 Compare April 2, 2026 20:58
@schmidma schmidma force-pushed the extended-message-schema branch from 4dba437 to 05ec823 Compare April 2, 2026 21:33
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