Description
Proposed change
Enable building images with pixi
using pixi.toml
as a configuration file. This is significantly faster (over 10x for an environment I'm working on) compared to micromamba!
Note: This is different than #1339 ; instead of supporting the pixi lockfile format with conda-lock, I want to use pixi as an alternative to conda (i.e. environment.yml
and pixi.toml
would be mutually exclusive config files) to speed up builds.
Alternative options
- Writing a fully custom
Dockerfile
, but that's missing the value of repo2docker!
Who would use this feature?
I would! ;)
I personally believe that the pixi user experience will win out over conda in the long run because it has a superior user experience (i.e. you don't have to manage your specification by hand with pixi). Having it easily available on JupyterHubs will help facilitate the transition.
How much effort will adding it take?
I dunno... yet! I want to find time to dedicate to helping out with repo2docker to learn more. It feels to me like a week of dedicated work could make significant progress. Naive? 😆
Who can do this work?
Knowledge about pixi -- its model is different than conda in that it manages projects, not environments. Project environments are referenced by their location on the filesystem, not by their global name. (prefix-dev/pixi#188). There's a conflict there with how a JupyterHub image has a "global" environment activated by default. Pixi has some affordances for this behavior (https://pixi.sh/latest/reference/cli/pixi/shell-hook/#usage), though. I am a pixi user for the happy path workflow, haven't messed with using pixi in docker images before, but I feel comfortable figuring it out.
Knowledge about Docker, of course :) I feel pretty competent in this space to get my hands dirty.