Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

enable CI for the ROS2 branch #140

Open
wants to merge 5 commits into
base: ros2
Choose a base branch
from

Conversation

berndpfrommer
Copy link
Contributor

This PR enables Continuous Integration testing for the ROS2 branch.

  • Advantages:
    • catch broken commits before PR is accepted
    • standard formatting (and formatting checks) before committing
    • get a step closer to distributing this package via rosdistro
  • Disadvantages:
    • Large amount of diffs to get clang formatting compliance without any real benefit to the end user, aka "capricious changes".

Unfortunately I was unable to get clang-format to skip the vnproglib directory. I tried for hours and eventually gave up and reformatted the vnproglib directory.

Generally cosmetic changes are to be strictly avoided, but AFAICT right now there is no coding standard set or enforced, and that is also sub optimal. Right now there are no outstanding PRs, so this is as good a time as any to make such drastic changes to the code base.

I prefer clang-format over uncrustify because uncrustify in some cases reformats code so cpplint croaks.

This PR makes no changes to the logic of the driver code.

@dawonn
Copy link
Owner

dawonn commented Jun 25, 2024

Please do not modify the content of the vectornav library. This is a copy of the upstream library and when updates occur, we want to be able to replace the library and look at the diff to easily see what changed.

@dawonn
Copy link
Owner

dawonn commented Jun 25, 2024

This is awesome otherwise tho!! I hope you can figure out how to bypass that directory.

@berndpfrommer
Copy link
Contributor Author

I'm not sure there is any way to skip that directory. I tried for hours and ran out of ideas.
But the question is if it needs to be there in the first place. The usual ways of dealing with such libraries are:

  1. Create a ROS "vendor" package (e.g. ros-rolling-vnproglib-vendor) upon which the driver then depends
  2. Alternatively, use CMake's fetch_content() mechanism to download the desired version of vnproglib on the fly and build/install it along with the driver
    Where are the upstream sources for vnproglib located?

@dawonn
Copy link
Owner

dawonn commented Jun 25, 2024 via email

@berndpfrommer
Copy link
Contributor Author

Would you be willing to put the library into a separate, clean github repo so the driver can use it from there?

@dawonn
Copy link
Owner

dawonn commented Jun 25, 2024 via email

@berndpfrommer
Copy link
Contributor Author

If you want to I can also prepare a repo and transfer ownership to you once done.

@berndpfrommer
Copy link
Contributor Author

@dawonn let me contact vectornav to see if I can make a vnproglib vendor package for ROS2. I think that would be the cleanest solution.

@berndpfrommer
Copy link
Contributor Author

Got a reply from Vectornav saying that they are updating the SDK and will release a ROS2 driver with it!

@dawonn
Copy link
Owner

dawonn commented Aug 8, 2024 via email

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.

2 participants