-
Notifications
You must be signed in to change notification settings - Fork 5
Switch to using the vendored zstd library. #59
Conversation
We already have it vendored in the core as necessary. Signed-off-by: Chris Lalancette <clalancette@openrobotics.org>
5bd9aac
to
b5ece09
Compare
6102fc4
to
aec68d2
Compare
- Add unit test to check that rosbag2_mcap_storage plugin can write mcap file with zstd compression configured via storage config yaml file Signed-off-by: Michael Orlov <michael.orlov@apex.ai>
aec68d2
to
03350bd
Compare
@clalancette I rebased your branch on top of latest @jhurliman and @james-rms It seems nothing blocks us from moving forward and merge this PR to be able to use |
Gist: https://gist.githubusercontent.com/MichaelOrlov/f5d47c37320c4c60a213a11c5b1035c1/raw/778a5ec3f21820aea7ec54eb81e65406d6fbeed1/ros2.repos |
I do think that it would be a good idea for us to update zstd_vendor to 1.4.8; that will make it match what is in Ubuntu 22.04. But I leave it to you whether you want to do that. |
@clalancette CI builds fails with error messages
It seems some problem with finding header files from |
On my local machine |
So, there are 2 different things going on here. The first thing is that https://ci.ros2.org doesn't use rosdep to install dependencies (yet). So that means that we are building zstd from source during the build of The second problem seems to be in finding the headers that a built-from-source zstd_vendor installed. That should work, so I'm not quite sure why this package can't find them. One thing to try would be to replace:
with
And see if that is any different. |
- Replace target_link_libraries(mcap PRIVATE zstd::zstd) with ament_target_dependencies(mcap zstd) Signed-off-by: Michael Orlov <michael.orlov@apex.ai>
@clalancette Thanks for the details and suggestion.
Will see if CI will pass green with it |
@clalancette CI fails again with the same error. Which is fairly strange because it compiles with no errors on my local machine in ether way. I have no idea why it can't find zstd header on CI. I need someone help with this issue. |
@clalancette I've figured out why it fails on CI. The proper fix would be to remove this patch, or upgrade to the 1.4.8 and remove this patch. I created PR for bumping zstd to the 1.4.8 |
cc @emersonknapp RE zstd_errors.h |
Failure on Windows build is unrelated to this PR and it seems exists on baseline.
@jhurliman @james-rms @emersonknapp Wouldn't you mind to review and approve this PR if you don't have any concern? |
Sigh. Our Windows workers are just unstable right now, and we haven't been able to figure out why. I'd suggest running a couple of more times, you should be able to get through it eventually. That said, this isn't (yet) a core package, so you can go ahead without it if you want. |
So that last Windows run showed a real failure:
I'm not sure why that didn't fail before, but it is definitely a problem. I'll suggest renaming the |
@clalancette This failure on Windows CI build actually a known issue #60. I think |
…ge_mcap#59) * Switch to using the vendored zstd library. We already have it vendored in the core as necessary. Signed-off-by: Chris Lalancette <clalancette@openrobotics.org> * Add `can_write_mcap_with_zstd_configured_from_yaml` test - Add unit test to check that rosbag2_mcap_storage plugin can write mcap file with zstd compression configured via storage config yaml file Signed-off-by: Michael Orlov <michael.orlov@apex.ai> * Address build failure on CI related to the missing header from zstd lib - Replace target_link_libraries(mcap PRIVATE zstd::zstd) with ament_target_dependencies(mcap zstd) Signed-off-by: Michael Orlov <michael.orlov@apex.ai> Signed-off-by: Chris Lalancette <clalancette@openrobotics.org> Signed-off-by: Michael Orlov <michael.orlov@apex.ai> Co-authored-by: Michael Orlov <michael.orlov@apex.ai> Signed-off-by: James Smith <james@foxglove.dev>
Depends on:
We already have it vendored in the core as necessary.
Signed-off-by: Chris Lalancette clalancette@openrobotics.org
Note that this is currently targeting the
emersonknapp/set-read-order
branch, because it won't build without that against the latest Rolling code. Once that one is merged I'll go ahead and rebase/retarget this to main.Also note that I only tested this out on Rolling so far, but this is the kind of thing I think we should do. @MichaelOrlov FYI.