-
Notifications
You must be signed in to change notification settings - Fork 946
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
conan info reverse(Consumer list) #5394
Comments
While we understand this would be a nice to have feature, there are a few things that make it really, really challenging:
For the problem you are describing, we are introducing lockfiles, you will be able to represent and store a snapshot of a full dependency graph, to achieve consistent builds and propagate downstream changes, making sure that the non affected parts of the graph doesn't change during the build. Follow progress here: #5035 |
Regarding your first point,
For the dependency graph, yeah... But I do not see why we would need it here, but maybe I'm mistaking, you know better the insides of conan and how it would work for this feature. Let's say the command will be called something like this: When I call it like this: I can call it like this: I can also force it to look for consumers in a specific remote: Regarding your second point, I agree. It would need to parse all conan files to see if the specific package is used in each package. The DB method would be a headache. I will also take a look at Thanks for taking the time. |
Hi @chreniuc
How? :) How it knows who depends on it? Because the
The first is undoable, for security reasons, in the server (plus it will be ridiculously slow, for any non trivial repository. Many thousands of recipes are typical in a Conan repo). The second is an humongous effort, with high complexity and tons of future maintenance and support. |
Regarding this:
I did say how:
I understand that at this moment this is undoable, I didn't thought about it very long... Hopefully someone will come with a solution for this feature in the near future... Thanks for taking the time. You can close this issue, I got everything I wanted to know 😃 |
You can force |
Thanks for the contribution @Radrik5 Indeed, using the Thanks @chreniuc for all the feedback! Sorry I skipped that paragraph, you are right, you said it. Agree, as this is not doable right now, closing it at the moment. Cheers! |
Thank you very much!!!! I didn't knew about this. This does solve our problem. |
To help us debug your issue please explain:
Conan version: 1.15.1
conan info
is a very powerful command, it helps a lot. For example, getting the dependency list of a package:conan info math/1.0.1@user/stable -g index.html
. Wonderful!But we were wondering if we can the same thing in reverse, get all packages that use this package. For example I want to get a list of all packages that use the package
math/1.0.1@user/stable
, or the package that has the namemath
. Is this possible? I looked through the documentation and through the issues but I couldn't find anything.Use case:
Every time we are updating a package, we would like to update all packages that use that package(to use the latest version of its dependencies). We know we can use
override
in the consumer app, but there can be problems withoverride
.For example this is a dependency graph:
Forcing from the conanfile of
executable
to use latest boostboost/1.70.0
by usingoverride
, may result in an error at link time(if those two packages:custom_lib
andcustom_websocket
are already built withboost/1.68.0
in the local cache), because theboost asio api
has changed from1.68.0
to1.70.0
. Using--build=missing
won't fix this issue, because therequirements
do not get included in thepackage_id
(so they won't get rebuilt). Using--build
would fix this, but it is not ok to rebuid all dependencies every time(this is opposite to conans purpose, which is something like this:build once, use forever
).So this feature would be very useful for this purpose. I updated a package, now I want to update all packages that use that package.
Thanks.
The text was updated successfully, but these errors were encountered: