Skip to content

Conversation

@InvincibleRMC
Copy link
Contributor

Description

Uses new abstract base classes to allow automatic type inference lowering burden to start using pub/sub/server/client/actionserver/actionclient. This can be seen in how the test cases do not require the manual specification of their generic types and that can now be inferred from the msg/srv/action type automatically.

Fixes one task from this main list
ros2/ros2#1735

Is this user-facing behavior change?

The classes inside type_support.py are no longer protocols but, actual generic classes. Users shouldn't need to change anything for this but, a user could in theory now decide to actual instantiate this class at runtime even if that doesn't really serve a point.

Did you use Generative AI?

Additional Information

@christophebedard christophebedard self-requested a review October 2, 2025 17:03
@christophebedard christophebedard self-assigned this Oct 2, 2025
@InvincibleRMC InvincibleRMC marked this pull request as draft October 7, 2025 04:55
@InvincibleRMC
Copy link
Contributor Author

Converted to draft for the moment since ros2/rosidl_python#241 should come first and might require some changes here.

InvincibleRMC and others added 14 commits November 19, 2025 19:42
Signed-off-by: Michael Carlstrom <[email protected]>
Signed-off-by: Barry Xu <[email protected]>
Signed-off-by: Michael Carlstrom <[email protected]>
…ros2#1478)

Closes ros2#1473

Signed-off-by: Brad Martin <[email protected]>
Co-authored-by: Brad Martin <[email protected]>
Co-authored-by: Alejandro Hernandez Cordero <[email protected]>
Signed-off-by: Michael Carlstrom <[email protected]>
Signed-off-by: Tomoya.Fujita <[email protected]>
Signed-off-by: Michael Carlstrom <[email protected]>
Per rclpy:1123 If two seperate client server actions are running in seperate executors the future given to the ActionClient will never complete due to a race condition
This fixes  the calls to rcl handles potentially leading to deadlock scenarios by adding locks to there references
Co-authored-by: Aditya Agarwal <[email protected]>
Co-authored-by: Jonathan Blixt <[email protected]>
Signed-off-by: Jonathan Blixt <[email protected]>

Co-authored-by: Alejandro Hernandez Cordero <[email protected]>
Signed-off-by: Michael Carlstrom <[email protected]>
'param_type' is set but never used

Signed-off-by: Christian Rauch <[email protected]>
Signed-off-by: Michael Carlstrom <[email protected]>
Signed-off-by: Alejandro Hernandez Cordero <[email protected]>
Signed-off-by: Michael Carlstrom <[email protected]>
Signed-off-by: Michael Carlstrom <[email protected]>
A recent change intended to move this logic into a lock context, but
actually ended up duplicating it instead. This fixes that by removing
the duplicated logic outside of the lock. It also preserves the explicit
typing annotation on the future.

Signed-off-by: Nathan Wiebe Neufeldt <[email protected]>
Signed-off-by: Michael Carlstrom <[email protected]>
Signed-off-by: Michael Carlstrom <[email protected]>
Signed-off-by: Michael Carlstrom <[email protected]>
@InvincibleRMC InvincibleRMC marked this pull request as ready for review November 20, 2025 04:13
@InvincibleRMC
Copy link
Contributor Author

@christophebedard Should be ready for review now. Tested it locally with the BaseImpl changes to in rosidl/rosidl_python.

@InvincibleRMC
Copy link
Contributor Author

@christophebedard just a reminder whenever you are free I would appreciate a review.

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.