Skip to content

Conversation

@saikishor
Copy link
Member

I've updated with the Pimpl approach to protect the ABI stability in the future

@saikishor saikishor added backport-jazzy Triggers PR backport to ROS 2 jazzy. backport-kilted Triggers PR backport to ROS 2 kilted. labels Dec 10, 2025
@codecov
Copy link

codecov bot commented Dec 10, 2025

Codecov Report

❌ Patch coverage is 83.93939% with 53 lines in your changes missing coverage. Please review.
✅ Project coverage is 89.45%. Comparing base (eaee0da) to head (62968dc).

Files with missing lines Patch % Lines
...are_interface/src/hardware_component_interface.cpp 81.10% 44 Missing and 4 partials ⚠️
...roller_interface/src/controller_interface_base.cpp 94.52% 0 Missing and 4 partials ⚠️
...controller_interface/controller_interface_base.hpp 66.66% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #2898      +/-   ##
==========================================
- Coverage   89.50%   89.45%   -0.05%     
==========================================
  Files         155      156       +1     
  Lines       18534    18545      +11     
  Branches     1489     1486       -3     
==========================================
+ Hits        16588    16589       +1     
- Misses       1346     1347       +1     
- Partials      600      609       +9     
Flag Coverage Δ
unittests 89.45% <83.93%> (-0.05%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
...ardware_interface/hardware_component_interface.hpp 55.55% <ø> (-19.54%) ⬇️
...controller_interface/controller_interface_base.hpp 90.90% <66.66%> (-0.76%) ⬇️
...roller_interface/src/controller_interface_base.cpp 86.22% <94.52%> (+2.01%) ⬆️
...are_interface/src/hardware_component_interface.cpp 81.10% <81.10%> (ø)

... and 8 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Copy link
Member

@christophfroehlich christophfroehlich left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks!

@christophfroehlich christophfroehlich added the check-prerelease-downstream Runs the pre-release workflow with 1st level downstream dependencies label Dec 10, 2025
// check if node is initialized and we still have a valid context
if (
node_.get() &&
impl_->node_.get() &&
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just for my knowledge, would impl_ ever become null ?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nope, it would never, it is initialied in the init or the constructor

*/
HardwareComponentInterface(const HardwareComponentInterface & other) = delete;

HardwareComponentInterface(HardwareComponentInterface && other) = delete;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is outside the scope of this PR. HardwareComponentInterface explicitly deletes move operations, but we don't have a similar setup in ControllerInterfaceBase. Would this be an issue because unique_ptr is moveable ?

Copy link
Member Author

@saikishor saikishor Dec 11, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IIRC, it is done due to the rule of five in C++. We can check if that applies to the controller base class

Copy link
Contributor

@Juliaj Juliaj left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport-jazzy Triggers PR backport to ROS 2 jazzy. backport-kilted Triggers PR backport to ROS 2 kilted. check-prerelease-downstream Runs the pre-release workflow with 1st level downstream dependencies

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants