-
Notifications
You must be signed in to change notification settings - Fork 39
Use uv / pixi? #310
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
In general I think this decision framework makes sense, though (with the caveat that I've never used hatch environments) I might omit the middle bullet to make it just
Pixi will manage multiple environments for use in ci, and switching to pixi would mean being able to entirely remove the |
I've been meaning to help out with this project somehow, and if this is of interest, I could make a PR to demonstrate. |
I expect that we'll want conda for some of the drivers, so pixi seems like a good option to me for virtualizarr. plus I'd be excited to learn from your PR 😄 |
This is definitely of interest, and I would love it if you could point us to how it should be done 😁 |
Great to know! I'd love to share a PR showing how I'd approach it and get all of your feedback. Are any other outstanding issues / PRs dependent on this, or are there any deadlines this is needed for? I will try to get to it ASAP but want to make sure I don't accidentally miss some important context. |
No none at all. It's already distributed through pip and conda, this would just be modernizing / a quality of life improvement. |
The RFC PRs for pixi (#407) and uv (#479) are ready for review. As a developer, the best way to get familiar with how this would impact your workflows is to check out the updated contributor guides for the pixi and uv options (or to try them out directly. what would we get with uv?The main feature that uv adds for us is the ability to specify sources. For example, Lines 139 to 148 in 1485b4a
uv run pytest . If you want to use the pypi released versions instead, it's necessary to specify --no-sources (e.g., uv run --all-extras --no-sources pytest ).
The main drawback of what would we get with pixi?
pixi does not have any drawbacks relative to our current setup. It's primary drawback relative to uv is that it's less widely used, which means less familiarity for potential new contributors and less of a community to get support from. can we get multiple environments with
|
I haven't used pixi yet but am concerned about:
This is a hard choice but if the best suited tool overall is pixi, I would go with pixi as long as it is actively maintained. I'm not so concerned that it's not as widely used as uv. |
I am not (yet 😄 ) a contributor to VirtualiZarr, but as a community member who has been using pixi daily for nearly a year now, I would like to make a strong endorsement in favor of pixi. In my assessment, pixi is perfectly suited for exactly this type of use case; namely, centralized management of test/project environments for a project that can benefit from testing against conda-forge dependencies (even if those dependencies are not required). As shown in the RFC pixi PR, the ability for pixi to manage python versions is also very useful for replicating/debugging python-version-specific issues locally. To be more specific, without the ability to explicitly manage Unidata/netcdf4-python#1164 as part of a test environment(s), how can this project be confident that regressions are not being introduced in the compatibility with such non-required-but-commonly-used compressors? Re: the maintenance question, in my own usage of pixi (and its surrounding ecosystem, including For what it's worth, and in case it's not already known to others here, the team behind As a final thought and at the risk of getting philosophical, VirtualiZarr is quickly becoming a very prominent and visible package within the python scientific world, attracting a lot of users and amazing developer talent. I believe pixi is doing something uniquely valuable for this ecosystem in modernizing the integration of conda-compatible packages into python package development in a highly ergonomic and reproducible manner. As such, I feel there is also tremendous value from an ecosystem perspective, in this project lending an "endorsement" to pixi, insofar as that results in more developer energy going towards pixi, which is truly an important and groundbreaking project. |
Thanks so much for sharing your thoughts @cisaacstern! Apologies for sounding exclusionary in my RFC, I definitely value all opinions and appreciate everything you've offered to the project even if you haven't yet gotten a change to write code 🙇 |
I'm less confident that pixi will be around for the long-term, and I do really like the developer experience |
I'm +1 for |
emerging from a rabbit hole (thanks @cisaacstern 😂) I'm floating around this decision framework for feedback:
alsouse pixiMore on topic, feel welcome to ping me if you'd like to assign any CI / packaging updates.
Originally posted by @maxrjones in #309 (comment)
The text was updated successfully, but these errors were encountered: