Skip to content

fix(dynamic): preserve ROS byte identity in message schemas - #368

Draft
0x53A wants to merge 1 commit into
ZettaScaleLabs:mainfrom
0x53A:fix/dynamic-byte-type
Draft

0x53A wants to merge 1 commit into
ZettaScaleLabs:mainfrom
0x53A:fix/dynamic-byte-type

Conversation

@0x53A

@0x53A 0x53A commented Oct 6, 2026

Copy link
Copy Markdown
Contributor

Description

I'm trying out the support for get_type_description and hit a bug where rcl_interfaces/msg/ParameterEvent fails with a hash mismatch between the advertised topic and the service’s registered schema.

ROS distinguishes byte and uint8 in type descriptions, even though their binary representation is the same. ROS maps uint8 (and char) to IDL uint8, while byte maps to IDL octet.

Checklist

  • Ran ./scripts/check-local.sh successfully
  • Added/updated tests/documentation (if applicable)

there's a pre-existing clippy failure on main


External contributors: Please open as draft initially. See CONTRIBUTING.md.

Dynamic schemas represented ROS byte fields as uint8, producing a different type hash despite identical CDR encoding. This made GetTypeDescription reject the canonical ParameterEvent hash advertised by parameterized nodes.

Add a distinct Byte schema variant across code generation, runtime loading, type-description conversion, and value handling. Correct the built-in ParameterValue schema and extend existing tests and codegen snapshots.

Validation: scripts/check-local.sh passed 605 tests, formatting, builds, examples, and rustdoc links. Clippy fails on a lifecycle recursion-depth diagnostic reproduced on unchanged upstream. Optional Nushell and mdbook checks were unavailable.
@0x53A
0x53A force-pushed the fix/dynamic-byte-type branch from 6030d79 to 953a7c3 Compare October 6, 2026 22:42

This branch has not been deployed

No deployments
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