[question] Revisions with different dependencies in requires
See original GitHub issueI have a question about how revisions are supposed to work with packages that can produce multiple binaries depending on different requires. For example, we need to build opencv with cuda 10 and 11. Without revisions, the workflow is
- Create conanfile.py with opencv with
requires = 'cuda/10.0'
- buid -> export pkg
- edit conanfile.py and update
requires = 'cuda/11.0'
- build -> export pkg
- if I want to use opencv binary with cuda 11, from the consuming library, I just needs to specify
requires = ('opencv/4.5.3','cuda/11.0')
. Same for cuda 10.
However, with revisions enabled, this workflow no longer works because once I edited the conanfile.py, it fixes the revision. From the client, I can no longer have a simple requires = ('opencv/4.5.3','cuda/11.0')
. I must now have requires = ('opencv/4.5.3#RREF','cuda/11.0')
, if the latest revision is not cuda 11.0. What is the way to avoid having explicit RREF yet still be able to choose different cuda versions?
- I’ve read the CONTRIBUTING guide.
Issue Analytics
- State:
- Created 2 years ago
- Comments:8 (6 by maintainers)
Top Results From Across the Web
Maven + SLF4J: Version conflict when using two different ...
Dependency mediation - this determines what version of a dependency will be used when multiple versions of an artifact are encountered.
Read more >How to Best Manage Python Dependencies - ActiveState
To resolve the problem of multiple projects with different dependencies, all one needs to do is create an environment for each project.
Read more >Dependencies - Gentoo Development Guide
You are encouraged to sort dependencies alphabetically, with unconditional dependencies grouped together, then all conditional dependencies. There is an ...
Read more >Downgrading versions and excluding dependencies
Overriding transitive dependency versions. Gradle resolves any dependency version conflicts by selecting the latest version found in the dependency graph. Some ...
Read more >Using Python's pip to Manage Your Projects' Dependencies
Pinning Requirements. When you share your Python project with other developers, you may want them to use the same versions of external packages ......
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
This will possible go together with https://github.com/conan-io/conan/pull/10046, we will investigate if using lockfiles is a better solution than
--require-override
arg, which might not be the best UIThis will finally be implemented using lockfiles. Added by https://github.com/conan-io/conan/pull/10713, will be released in next 2.0-alpha.6