question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

[question] Revisions with different dependencies in requires

See original GitHub issue

I 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?

Issue Analytics

  • State:closed
  • Created 2 years ago
  • Comments:8 (6 by maintainers)

github_iconTop GitHub Comments

1reaction
memshardedcommented, Nov 30, 2021

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 UI

0reactions
memshardedcommented, Mar 14, 2022

This 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

Read more comments on GitHub >

github_iconTop 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 >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found