Checks
Reproducible example
Hey team, got one more for you
We’re trying to make our ROS node packages a bit more self-describing.
Each node depends on a private conda package, , from our http://prefix.dev/ channel. That package isn’t a rosdep key, so the idea was to declare it in package.xml and use extra-package-mappings to map it to the conda package directly, instead of having the backend turn it into ros-humble-....
This works fine when the package that carries the mapping is a direct dependency. But once it comes in transitively. In our case, the deploy/prod env depends on a leaf launch package, and that exec_depends the node packages, the mapping seems to disappear. The backend falls back to ros-humble-, and the solve fails because there are no candidates.
So in prod, the node packages are only ever resolved transitively, which is exactly the path where the mapping drops out.
I’ve put together a minimal repro, attached here. It only uses public packages, so no creds needed. pixi lock reproduces it. If I swap the root dep to the mapped member directly, it passes, which seems to point pretty clearly at the transitive resolution path dropping the mapping. README has the details.
pixi-ros-mapping-repro.zip
Issue description
No response
Expected behavior
Transitively resolved dependencies with extra-package-mappings are correctly resolved.
Checks
I have checked that this issue has not already been reported.
I have confirmed this bug exists on the latest version of pixi, using
pixi --version.Reproducible example
Hey team, got one more for you
We’re trying to make our ROS node packages a bit more self-describing.
Each node depends on a private conda package, , from our http://prefix.dev/ channel. That package isn’t a rosdep key, so the idea was to declare it in package.xml and use extra-package-mappings to map it to the conda package directly, instead of having the backend turn it into ros-humble-....
This works fine when the package that carries the mapping is a direct dependency. But once it comes in transitively. In our case, the deploy/prod env depends on a leaf launch package, and that exec_depends the node packages, the mapping seems to disappear. The backend falls back to ros-humble-, and the solve fails because there are no candidates.
So in prod, the node packages are only ever resolved transitively, which is exactly the path where the mapping drops out.
I’ve put together a minimal repro, attached here. It only uses public packages, so no creds needed. pixi lock reproduces it. If I swap the root dep to the mapped member directly, it passes, which seems to point pretty clearly at the transitive resolution path dropping the mapping. README has the details.
pixi-ros-mapping-repro.zip
Issue description
No response
Expected behavior
Transitively resolved dependencies with extra-package-mappings are correctly resolved.