-
Notifications
You must be signed in to change notification settings - Fork 180
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
RFC: Resolvers and environment management in ASV #1436
Comments
For some more context, this matters to |
@HaoZeke with mamba 2.0 it seems like some of the things we need have been made public. gh-1438 reports that the current mamba plugin is incompatible with mamba 2.0. Just to check, do you have any plans to move forwards with an alternative like |
Great questions.
I'm not planning that, although if I get this correct then I'd spin out all the environment managers except
This is fantastic contribution in any case and would be happy to accept that and review it whenever its ready.
Like The overall goal here is not to switch to one environment manager over the other, but to incorporate a sort of software bill of materials (SBOM) into ASV. This SBOM can then be satisfied by any of the environment managers (even system ones) and since ASV in this scenario will be able to determine the required / changed requirements better support using existing environments. |
After discussions with @rgommers, it seems like one pragmatic approach is to simply focus on offloading to the stable CLI and generating lockfiles of say, |
I would love to see |
There are now a bunch of front-end (CLI) tools which handle dependency resolution and installation of environments, including
rip
,rye
(both already dropped out1), anduv
.A key issue is that most of these tools (including
mamba
) don't actually expose the functionality whichasv
really needs2, that is the dependency resolution / a Python API (e.g. see astral-sh/uv#7345) itself. This is accomplished viapubgrub-rs
inuv
,resolvo
inpixi
/rip
and the venerablelibsolv
inmamba
.Somewhat related are these issues around the ecosystem:
uv
as an environment type #1433libmamba
mamba-org/mamba#3387Basically, moving forward, it seems like the best approach is to generate bindings to
uv
internals like the dependency resolution while extracting the environment management out further. Or by usingpy-rattler
(here). Although the CycloneDX SBOM might also be of interest as an intermediate file format 3.Another option is to use
subprocess
to drive calls touv
or something similar, but in the long run this is more problematic, since parsing CLI is never a great idea, and also leaves the project vulnerable to changes in the in internal lock file representation.Footnotes
e.g. this comment ↩
e.g. the trouble with the
libmambapy
dependency which needed a new release since part of the API was removed. ↩https://github.com/CycloneDX/cyclonedx-python ↩
The text was updated successfully, but these errors were encountered: