-
Notifications
You must be signed in to change notification settings - Fork 60
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
[FEA] Enable cuda-version dependency resolution for packages that depend on cucim or other rapids packages #710
Comments
Hey Matt, a cuda-version metapackage for pip is definitely something we'd like to implement, it just hasn't really risen that high on the priority list so far. Your proposal with extras is interesting. There is some benefit to using extras to specify the version via a cucim metapackage as opposed to using separate packages the way we currently have (assuming the cuda-version metapackage were introduced), but not a big one The way I see it, there are three problems we want to solve. Ensure consistent package installationConsider the following two packages:
If we wanted to install cucim along with another RAPIDS package that was also CUDA-dependent and structured the same way, say cuml, the Avoid dependent packages from needing to update the dependency nameIf you have a package depending on cucim, then the Allow version selection solely via cuda-versionWith our conda packages, you can do something quite nice with cuda-version:
Rather than specifying a version for every package, you can just specify the Does this summary seem right to you? Basically the second item is the main one where extras give you a benefit AFAICT. |
Related discussion in issue: rapidsai/build-planning#28 |
Hi Vyas, @vyasr Yes, you a right, the second point is the main benefit which could be solved with the current extras support in the ecosystem and the proposed extras usage:
It is a big one, and this importance comes from taking the perspective of someone who is developing a package that would like to depend on a RAPIDS package. Or, from someone who just wants to use that package and needing to know the details of the CUDA version or encountering conflicts is a major pain point. |
It seems it could be this extras approach or this proposed selector package feature? CC @msarahan |
Problem Statement
I want to create packages that depend on cuCIM or other RAPIDs packages. Through standard Python package dependencies, it would be very helpful to
Example package installation with pip itkwasm-downsample-cucim.
Right now, all compatible CUDA dependencies and any other unrelated packages with CUDA dependencies need to be pre-installed explicitly by the user, who must know that they are installing compatible versions of everything (and their transitive dependencies are compatible). Or, a hard-coded cuda version is added as a dependency, which might conflict with other package dependencies.
A possible approach that might work (?) for pip, similar to the
cuda-version
used in conda, is to use the ability to have optional dependencies that are self-referential in the following way:cucim pyproject.toml:
Where
cuda-version
is a meta-package used to identify dependency conflicts. Ideallycuda-version
is in both in conda and pip so both dependency resolvers pick up conflicts.my-package-uses-cucim pyproject.toml:
The text was updated successfully, but these errors were encountered: