Using Git Deps with pixi-build-mojo Backend
Mojo projects that use the pixi-build-mojo backend can now rely on other packages (that also must have a valid pixi-build process) via git refs. This means that Mojo packages can now be fully decentralized and the barrier to publishing a package is dramatically lowered.
Background
The pixi-build-mojo backend allows pixi build and pixi install to work for your project. pixi build will create a *.conda package, and pixi install will install you package into the local pixi env. See the previous post here.
This is different than just running pixi run mojo package because it is placing your package in a known and standard location that other packages can now depend on, while also providing a predictable mechanism for performing a build so that packages can be depended on.
Please see pixi-build-mojo docs for more details and examples of how to use pixi-build-mojo in your projects. Note that this covers both creating libraries and executable binaries.
Using git refs
What is new is that Prefix has landed support for using git refs as package.{build,host,run} dependencies. Previously you could only use this in the dependencies section of your pixi.toml which is only used for local env deps, but not for your actual package.
Now that you can depend on packages via a git ref, as long as that package uses a pixi-build backend, we no longer need to rely souly on conda channels for package distribution. See this example project for a small demo of a package that uses both conda Mojo packages, as well as packages that exist only in github.
Essentially this moves Mojo closer to Golang in that packages have a lower barrier to publishing, and a decentralized distribution mechanism. All that needs to be done now is making sure that your package supports pixi build via a pixi-build-backend and your package can be used by anyone.
A case for still using Conda Channels
I do still think that there is a higher degree of trust in packages that come from conda channels, and this should be the preffered mechanism for getting packages where possible. In modular-community, for example, projects have tests that are run on each build, as well as a requirement for CodeQL for anything project that includes more than just Mojo code.
tl;dr
You can now depend on packages directly from github. See example project here.