I know, it's the title of their own post, but making it sound like pixi is only for robotics is underselling pixi quite heavily.
Pixi is basically uv but for the conda ecosystem in the sense that it has all the goodness (fast and reliable dependency solver, smart caching, using hardlinks for environment installs to speed things up and save space) and makes the whole environment/dependency management for conda project so much faster and more robust. For dependencies from PyPI, pixi uses the uv crate under the hood, so it doesn't waste effort on that front and works just as well.
I think many python project will be fine with just using uv but at least for my use case, pixi turned out to be just what I needed, because my software also needs to run on older macOS versions, Intel and Arm Macs, and packages like OpenCV or PyTorch are just not officially built for those anymore, but in the conda ecosystem, there are countless brave souls who build this stuff for macOS 11+ so I can just use that and it's such a relief.
Uv is getting most of the attention right now and I can totally understand why, but if python is your main thing and you want to keep up with what's the best the ecosystem can offer right now, you should at least give pixi a try and evaluate the pros and cons yourself. It's really worth it imo.
I think people have been sleeping on Pixi. There has been a lot of hype about uv lately and lots of the praise apply to Pixi as well!
Pixi shines in those niches where Conda was the only option. It seems ROS is one of them.
I have been using Pixi with emscripten-forge to create Python WASM distributions. It’s another niche with a lack of tooling. Pixi is the only tool that streamlined my build process.
This is the ROS way: add more layers of crap on it until it sorta kinda works sometimes. If you want "reproducible package management", use Debian. ROS1 is already in stock Debian. Some of ROS2 is as well. If you actually want ros to suck less, please package the reset of ROS2, and push it to Debian.
Debian is a terrible dependency management solution for adding development dependencies to a workspace (e.g. the same sort of thing npm, cargo, and uv are used for).
As far as I can tell, pixi brings the benefits of these types of dependencies, with native support for multiple languages (python and c++ being the big ones).
ROS uses debian packages today (inside a convoluted wrapper), imo it would be much better if it went all in on pixi instead.
Pretty much yeah, I remember I did some work with ROS2 after 1, and since then I always prefer to build from scratch, cleaner, simpler, and in many cases far better results too.
Sometimes (probably most times) you don’t have the privilege of choosing the OS, for example, if you have to use a Jetson SBC you will mostly use the default ubuntu so you can utilize the nvidia drivers for the cuda cores.
Slightly interested if this makes it easier to install ROS on not-Ubuntu, or on "unsupported" Ubuntu versions, but I don't really want to be the one owning the infra behind running the source builds for ROS2, from my experience so far they're kind of slow. Side by side ROS1/2 for migration is kind of interesting, too.
Jep! Pixi works on any linux distribution. The ros packages only require glibc to be available, the rest is installed by pixi. This means you can run any ros distro on any version of ubuntu (or any other glibc based linux for that matter). Including ros1 noetic!
Yep. The most popular sim well integrated with ROS is Gazebo, a full 3D sim. Very powerful. There’s also the much simpler Stage, limited to 2.5D mobile robots.
Pixi is basically uv but for the conda ecosystem in the sense that it has all the goodness (fast and reliable dependency solver, smart caching, using hardlinks for environment installs to speed things up and save space) and makes the whole environment/dependency management for conda project so much faster and more robust. For dependencies from PyPI, pixi uses the uv crate under the hood, so it doesn't waste effort on that front and works just as well.
I think many python project will be fine with just using uv but at least for my use case, pixi turned out to be just what I needed, because my software also needs to run on older macOS versions, Intel and Arm Macs, and packages like OpenCV or PyTorch are just not officially built for those anymore, but in the conda ecosystem, there are countless brave souls who build this stuff for macOS 11+ so I can just use that and it's such a relief.
Uv is getting most of the attention right now and I can totally understand why, but if python is your main thing and you want to keep up with what's the best the ecosystem can offer right now, you should at least give pixi a try and evaluate the pros and cons yourself. It's really worth it imo.
Pixi shines in those niches where Conda was the only option. It seems ROS is one of them.
I have been using Pixi with emscripten-forge to create Python WASM distributions. It’s another niche with a lack of tooling. Pixi is the only tool that streamlined my build process.
Keep up with the good work!
As far as I can tell, pixi brings the benefits of these types of dependencies, with native support for multiple languages (python and c++ being the big ones).
ROS uses debian packages today (inside a convoluted wrapper), imo it would be much better if it went all in on pixi instead.