Skip to content

[Doc]: Add uv and pixi install instructions #29746

Closed

Description

@timhoffm

Documentation Link

https://matplotlib.org/devdocs/#install

Problem

Since uv and pixi are shaking up the package managment landscape, they should be included in our install instructions.

Suggested improvement

No response

Activity

  1. tacaswell commented on Mar 12, 2025

    @tacaswell
    Member

    Given astral-sh/uv#6893 I'm hesitant to recommend uv until that is sorted (in astral-sh/uv#6893 (comment) I suggested we add warnings about this problem).

    I've been really happy with my initial usage of pixi.

    We should look at https://github.com/rgommers/pixi-dev-scipystack/tree/main for how to use it to drive development workflows.

    It might also be worth looking into using pixi and checking .lock files in for some (we probably have to keep at least one test run that uses wheels) of our tests (particularly the min versions ones). This might be dependent on finding a good bot (like dependabot) to bump the lock file regularly.

  2. added this to the v3.11.0 milestone on Mar 12, 2025
  3. added 2 commits that reference this issue on Mar 13, 2025
    00148a8
    82a2525
  4. ianhi commented on Aug 7, 2025

    @ianhi
    Contributor

    It might also be worth looking into using pixi and checking .lock files in for some

    I would love it if there was a pixi.toml file (or pyproject.toml but i get that that might be complicated) already here to make it easier to make a quicker contribution.

    an ancillary benefit is that I've found it much easier to point an AI agent at a script for debugging when using pixi than having them run with mamba run or equivalent

  5. jklymak commented on Aug 7, 2025

    @jklymak
    Member

    There is a pyproject.toml. - does that help? I'm a little confused what pixi needs for a dev environment.

  6. timhoffm commented on Aug 7, 2025

    @timhoffm
    MemberAuthor

    You need to add the right configuration to pyproject.toml

    https://pixi.sh/latest/python/pyproject_toml/

  7. tacaswell commented on Aug 7, 2025

    @tacaswell
    Member

    I don't think we want to mix the pixi configuration in with the pyproject.toml configuration.

    If we were going to put in pixi.lock files it would be aimed at making our CI run better to start with. For day-to-day dev work we should get an entry in to Ralf's repo I link to above.

  8. ianhi commented on Aug 7, 2025

    @ianhi
    Contributor

    There is a pyproject.toml.

    Ahhh I was on bad wifi, and the upstream had not fully fetched (and was apparently outdated to pre 2022)

    f we were going to put in pixi.lock

    I think even a pixi.toml would go a long way?

    For day-to-day dev work we should get an entry in to Ralf's repo I link to above.

    I'm not sure I would have discovered that if I was doing a quick change, what is the vision of how that works. I use that centralized repo to have custom builds of the whole stack?

  9. tacaswell commented on Aug 7, 2025

    @tacaswell
    Member

    I think even a pixi.toml would go a long way?

    Hmm, I'm not sure how I feel about just the toml with no lock. Defeats half of the purpose of pixi, but does get you nice tasks (pixi run docs, pixi run tests, pixi run tests-min-version).

    I think the right path is to start with this stuff in a second repo (that has mpl as a sub-module), get it built up and sorted, and then talk about how to pull it into main.

  10. ianhi commented on Aug 7, 2025

    @ianhi
    Contributor

    Defeats half of the purpose of pixi, but does get you nice tasks (pixi run docs, pixi run tests, pixi run tests-min-version).

    The second half is pretty nice :)

    I guided claude through some plugging away at getting a working file and ended up with this:
    Fairly Minimal version that seems to work for me: https://github.com/matplotlib/matplotlib/compare/main..ianhi:matplotlib:pixi-config?expand=1

    could be a nice starting place for a second repo. I didn't include any thoughtful multi env management

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions