Closed sloretz closed 1 year ago
lol omg i was so confused for 30 mins there just now. I literally just had a test start failing on me because I was using these. I was like "how is something possibly passing on Humble but not in Rolling??". I hadn't pulled locally, and Rpr
was fine - but the CI started failing.
https://github.com/ros2/rosbag2/pull/1341
Funny that you did this on the exact week I decided to start depending on it.
I see the motivation to clean up a dangling thing... now I need to reconsider how I'm going to handle getting "implicit subinterface" schemas more generally - I was just going to punt on actions and handle services since the .msg
was already there.
It used to be that rosidl generators acted on ROS IDL (.msg/.srv/.action) files directly, and generated code from them. This removes now purposeless code that used to be part of that pipeline.
IIUC, how this used to work is the
rosidl_generate_interfaces()
macro would split.srv
files into two: one for the request and one for the response. The generators would then generate code for the split.msg
files. Notice in the past the request and response messages were put into a variable called_idl_files
, meaning ROS IDL, and which was then passed to the generators.This code seems to have survived the transition to OMG IDL, but it no longer has a purpose. Notice the split services are now put into a variable called
_non_idl_files
, (now meaning they're not OMG IDL files). These files aren't passed to the generators. They do get installed - but AFAIK that's just so other's can see what the original ROS IDL of a message was. Nothing actually uses these..._Request.msg
and..._Response.msg
files anymore.With the OMG IDL pipeline,
.srv
files are converted to OMG IDL files. The service still gets split into two in a way.rosidl_adapter
parses the.srv
file to produce a python object representing the request and the response, and then uses one of the.msg
templates for the request and response in the OMG IDL file, but the generators downstream only see that as an OMG IDL file containing Request and Response structs.