Fast Forward Merging rosbag2 master API to Foxy

1st of all, great work :+1: we will be catching up with this :slightly_smiling_face:

but about the backport, i am so negative on this…

If we want people to build on a product, it needs to be stable. In my opinion, that is more important than features trickling back to a stable release.

agree, that is a really basic policy. THAT GUARANTEES WE DO NOT BREAK THE USERSPACE.

if data corruption or security issue to be addressed, we end up changing those (as less as possible), but not for a feature. i think i do even the opposite, like we degrade the performance to keep the userspace.

This feels like a bit of a false point. If that’s true, why have a public API at all? I don’t mean that rhetorically-- you made the decision in the past to have a public API. Should that decision be revisited so that you have the freedom to make these kinds of changes if you truly believe rosbag is a leaf application?

agree, if we do this, the same thing will happen and break the userspace again and again.

i think we’ve reached a point where rosbag2 is considered unusable in Foxy due to performance concerns

that is exactly why we came up with leveldb

where we are standing is,

  • rosbag2 / sqlite3 backend is not really fast enough for some use cases.
  • release distro keeps the ABI/API for release. which is really okay for the application.
  • we may as well create backend to support the requirement that we have. (luckily there is interface!)
  • then we did create backend implementation! which works with our use cases.
  • mainline changes their mind all the sudden :frowning_face: that is gonna break our implementation… :sob:
  • what should we do??? how can we trust the interfaces???

to be clear, i am not mentioning leveldb specifically. there will be other approaches and implementation which are not public or vendor controlled internally. if we change the interfaces, we literally break the promises.

if we change the interfaces in foxy, could anyone explain what we should’ve done really? no pressure, but i really do not know…

This suggests to me that rosbag2 hadn’t reached a point of maturity by the time of the Foxy release that anybody has been willing to use it beyond the CLI. I would love to see counterexamples, though!

above is my opinion. once we release the public API, i think there is no way to know who uses or relies on that if we think about application as open source perspective.

I’d also like to ask if rosbag2_storage_plugins is any more reusable as a base plugin now?

Good point, +1 on this

btw, i’d like to know if this kind of discussion about breaking API/ABI in release happened before?

thanks :slightly_smiling_face:

3 Likes