ROS2 Monorepo best practices #6275
Replies: 1 comment 3 replies
-
|
Maybe I am wrong, but I start to think When I work on a ROS2 workspace, I typically modify ROS2 packages source files (code, config, launch), re-compile specific packages with extra compile flags. Sometimes I even break one package and but keep testing other packages with But this is not what pixi packaging system is designed for. With Basically, there are 2 different worlds:
Maybe the solution is to leverage pixi's multi-environment, and create a " |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
I am working on a ROS2 project with both python and c++ packages. The project is structured as a monorepo. I have seen a number of discussions about pixi with monorepos on the internet, but some of the discussions are dated given the rapid pace of pixi development. I also saw workspace dependencies (discussed #5940 (comment)) just landed in recent versions. I want to make sure I am taking advantage of current best practices.
My current setup:
I have a workspace level pixi.toml with all package dependencies.
pixi installfrom the top level builds everything and gives me a pixi environment I can work with any package from.The pixi.toml is along the lines of:
The main issue with this setup is that individual apps, the context developers work in most frequently, only use a subset of packages, but they have to build everything to work with the environment. I would like to work with the packages independently and only have to build the necessary dependencies. Something along the lines of what was discussed here: #387 (comment).
It would be nice from a CI perspective to only test what you change (and downstream dependencies). I was also trying to figure out the best way to deploy a single application (+ dependencies) from the monorepo. Does anyone have examples of what this looks like (especially with c++ packages depending on other c++ packages in the monorepo) given the current pixi state of the art? I am currently using pixi-build-ros in each of the packages currently, a pixi.toml like:
I appreciate any guidance. Excited about where pixi is headed!
Beta Was this translation helpful? Give feedback.
All reactions