I would also like to add that that change violated one promise (API/ABI) in order to remedy another (No GUI dependencies in the
robot metapackage) - Kinda stuck between a rock and a hard place, you’re violating a promise one way or another.
In this case, it’s violating a (slightly less rigid, as @emersonknapp pointed out) promise to remedy usability. I’m not saying the situations are entirely dissimilar, but they are slightly different.
I don’t know the ROS2 landscape well enough to give a well informed opinion here, but given the leafy-ness of the package, my opinion leans towards prefering the break.
I disagree, I think @gavanderhoorn is correct that fragmentation is a worse evil here. Given how currently unusable
rosbag2 is and the (reasonable?) assumption that the package is fairly leaf-like, an API break seems more reasonable to me.