Skip to content

Investigation into pixi as a build tool and package manager #2260

@JeppeKlitgaard

Description

@JeppeKlitgaard

Introduction

In preparation for the user meeting next week I have spent some time fiddling around with CIL and bumped into a few places where I believe the ergonomics of using and contributing to CIL could be improved.

I have had a look at pixi, which aims improve upon ergonomics, speed, and reproducibility in conda-based projects, not dissimilar to what uv has done for PEP517/518 Python projects.

This issue is meant to discuss the potential use of pixi in CIL.

A WIP branch with an initial Pixi configuration can be found here: https://github.com/JeppeKlitgaard/CIL/tree/experiment-pixi

Pro/Con of Pixi

Pro:

Cons:

  • Still relatively new, though production ready by their own accounts
    • Notably has been adopted by some mature scientific python libraries, see xarray
  • Conda builds don't support dynamic versions yet (I think)
  • Would require contributors to use pixi as part of the development process
    • This means disturbing the core contributors existing workflows and may be no-go for this reason
    • Though: would likely benefit new contributors and lower contribution barrier-to-entry
    • Though: should be noted that pixi is exceedingly easy to install
    • Though: users of CIL can continue to use conda without any changes required

Areas where pixi could help

It may be that this is not the tool for CIL, but I think it could help alleviate some long-standing issues that I found from quickly browsing the issue tracker:

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    Status

    In Progress

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions