CHANGELOG
Changelog for package rosx_introspection
3.1.0 (2026-05-30)
Upstream DDS-correctness fixes that previously existed only in the PlotJuggler-vendored copy of this library:
Bounded sequences: parse the ROS2
T[<=N]syntax as a length-prefixed sequence and expose the declared bound viaROSField::isUpperBound()/maxSize().DDS enum
@value()compatibility: a@value(N)annotation sets the display value while the CDR wire value stays the sequential ordinal (EnumValue::ddsCompatValue()); enum name resolution now matches the wire ordinal.PL_CDR optional alignment: 4-byte align the optional member header relative to the CDR origin and bounds-check its size, fixing corruption of two or more consecutive unset optional members.
Multiple
@keyfields now all contribute to the field path (the suffixes accumulate instead of overwriting), preventing path collisions between samples that differ only in an earlier key.Tests: added BoundedSequence, DDSEnumCompatValue, DDSEnumKeyValueAnnotation, TwoConsecutiveUnsetOptionals and MultipleKeyFields.
Contributors: Davide Faconti
3.0.1 (2026-05-29)
Fix a crash (out-of-bounds tree access) when deserializing a DDS union whose active case is a struct. The field tree models a union as a single leaf node, so walking the resolved case struct indexed a non-existent child node. The case struct is now walked safely to keep the CDR cursor aligned.
Add regression test IDLDeserialize.UnionWithStructCase
Contributors: Davide Faconti
3.0.0 (2026-05-26)
Add IDL schema support and message-writer based deserialization
Mark the breaking API update with a major version bump
Contributors: Davide Faconti
2.3.0 (2026-04-06)
Add Ubuntu CI workflow for non-ROS builds
Use ament_cmake_gtest for tests in ROS2 builds
Fix review issues: throw on bracket overflow, fix reserve, use num_brackets for estimate
Split CI into per-distro workflows and add badges to README
Add Rolling to CI matrix
Add Kilted to CI matrix and bump checkout to v4
Optimize toStr with precomputed path templates and segment table
Make MCAP benchmark ROS-independent and add enable_testing()
Contributors: Davide Faconti
2.2.1 (2026-04-06)
Merge pull request #39 from gasmith/fix-test-deps
cmake: Don’t export test dependencies to downstream consumers
Update variant.hpp
Contributors: Davide Faconti, Greg Smith
2.1.0 (2026-02-21)
Fix multiple bugs in serialization, deserialization, and JSON handling - Fix missing throw in ROS_Deserializer::deserialize for unsupported types - Fix NanoCDR_Deserializer::deserializeByteSequence crash on empty sequences - Fix ROS_Serializer buffer resize logic and UB (const-cast, type-punning) - Fix Tree::find using &_root instead of _root.get() on unique_ptr - Fix msgpack pointer invalidation after vector resize for large messages - Fix blob detection in deserialize() (was restricted to OTHER type only) - Fix deserializeIntoJson blob skip not advancing the deserializer - Fix serializeFromJson: add JSON parse error checking, type-safe value reading with range validation, proper null handling for missing fields - Add complete ROS_Serializer implementation (serialize, serializeString, etc.) - Add comprehensive test coverage for all fixes Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Merge pull request #29 from agxeed/fix/time-duration-nsec-serialization fix: correct nsecs duration serialization
Merge pull request #22 from amarburg/bugfix_ament_export_testing_dependencies Add sensor_msgs, geometry_msgs as ament dependencies when BUILD_TESTING is true
Merge pull request #27 from jorritolthuis/msgpack_cpp Make convertToMsgPack() available in C++
Merge pull request #30 from agxeed/fix/compiler-warnings fix: compiler warnings
Merge pull request #32 from konsim83/feature/replace_rosbag2_cpp_with_rclcpp Use rclcpp type support instead of rosbag2_cpp
fix: compiler warnings
fix: correct nsecs duration serialization
Make convertToMsgPack() available in C++
Add sensor_msgs, geometry_msgs as ament dependencies when BUILD_TESTING
remove ament_target_dependencies
Contributors: Davide Faconti, Jorrit Olthuis, Konrad Simon, Rein Appeldoorn, admin
2.0.1 (2025-10-01)
Merge pull request #21 from bryzhao/fix/scikit-build-core-compatibility Fix CMakeLists to support scikit-build-core installations
Fix CMakeLists to support scikit-build-core installations
Merge pull request #20 from nealtanner/bugfix/mac-compliation fix compilation errors on mac
replace sprintf with snprintf
inline vs constexpr
Contributors: Bryan Zhao, Davide Faconti, Neal Tanner
2.0.0 (2025-09-24)
optionally remove JSON support
new formatting
fix memory and add README
add python binding
NanoCDR
Merge pull request #16 from traversaro/patch-1 Add missing include of functional header in message_definition_cache.cpp
Fix issue #13
Merge pull request #11 from valgur/bugfix/clang Fix ros_parser.cpp compilation failures on Clang
Contributors: Davide Faconti, Martin Valgur, Silvio Traversaro
1.0.2 (2024-07-28)
bug fix
add unit tests
Contributors: Davide Faconti
1.0.1 (2024-06-29)
use CPM to download dependenies
Merge pull request #9 from valgur/feature/cmake-improvements
Contributors: Davide Faconti, Martin Valgur
1.0.0 (2024-06-26)
New version including JSON conversion
Contributors: Basavaraj-PN, Davide Faconti, ahmad-ra