Build and publish all packages on Chocolatey

The installation process for new ROS/2 packages on Windows desperately needs to be improved, and providing Chocolatey packages for Windows would solve the problem.

Is this something that the build farm can currently support? What would it take for us to add this?

I think this thread might be what you are looking for.

Thanks Katherine, Dan seems like the right guy to contact. That thread is closed, however.

@IOTDan, are you there?

edit: Seems that @ooeygui and @nuclearsandwich also might be important to have in this discussion.

No, the ros_buildfarm project and related tooling lack support for Windows generally and chocolatey specifically.

In the past, we’ve done some work with chocolatey and several ROS 2 dependencies are distributed as manually packaged chocolatey packages. However, the package and repository formats are both “incomplete” relative to Linux distribution style packages. Notably there is package creation primitive or source package format and binary packages are allowed to be thin wrappers over executable installs rather than true packages. Some work has been done in previous years to use vcpkg as the source package format with a generated chocolatey package but while the work itself was sound, vcpkg and chocolatey together didn’t quite meet our expectations.

The RoboStack project provides ROS builds via Conda, which supports macOS, Windows, and Linux. There is work being done to better integrate RoboStack into the upstream project and long term the OSRF Infrastructure and ROS teams have identified that conda is likely the best candidate for support on Windows, but getting there is not in our immediate plans.

2 Likes

Thank you for the detailed response!

This is exactly what I was looking for! However, it seems that Windows builds aren’t available for a lot of packages. Is this mostly because of dependency issues, lack of maintainers, or what? If I want to add Windows support for a package in the Conda repository, how would I go about that?

Side note, I’ve been using ROS professionally for years now and have never heard of RoboStack before. Perhaps it should be listed in the Installation docs? Installation — ROS 2 Documentation: Humble documentation

Hello! Have you tried installing from ROS 2 Binary Installation - ROS on Windows (ms-iot.github.io)?

does that have packages you are looking for, or at the packages you are looking for outside of the distribution?

thanks
Dan

Hey Dan, thanks for the response. I have used that distribution in the past but it seems to only have the *desktop variants. For simulation, my team right now is using ros-humble-desktop-full, ros-humble-spatio-temporal-voxel-layer, ros-humble-rmw-cyclonedds-cpp, ros-humble-navigation2*, and ros-humble-turtlebot3* in addition to the *desktop packages.

Whereas on Ubuntu I could simply ask them to run apt get install ..., on Windows they would need to download/clone each of those repositories, track down all the dependencies, and then build. This is frustrating and time-consuming for new ROS users. Because of that, I’m having them use WSL, but that comes with its own issues (networking in particular).

In my experience, Windows is an important target for ROS. At multiple institutions now (corporate and academic), Windows has been the OS of choice but we’ve been forced to do most work on Ubuntu because of poor Windows support by ROS.

I really appreciate your work on this so far! I’m just trying to advocate for more resources in this direction to streamline the Windows installation/development process.

Thank you!
Anthony

I guess it is a mix of factor. In some cases, there was an attempt to build a package, but there was no one interesting in fixing the build. In some other cases, simply no one ever tried to build the package.

See the contribution guide: ros-humble/CONTRIBUTING.md at main · RoboStack/ros-humble · GitHub . If you have any doubt, feel free to open an issue at Issues · RoboStack/ros-humble · GitHub, thanks!

fyi @Tobias_Fischer