-
Notifications
You must be signed in to change notification settings - Fork 954
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
[feature] hidden requirements #10937
Comments
|
previous discussion here, in which I didn't really understand how private dependencies worked. |
Hi @smoofra This has already been implemented in Conan 2.0. It was proposed and approved in conan-io/tribe#26, and it has been implemented and released a couple of alpha releases ago. You can already download and test alpha.6 from PyPI. The requirements have the I am closing this attached to the 2.0-alpha.6 milestone, looking forward to getting feedback from it. |
@memsharded wow that's awesome, thank you! I'll check it out. |
Hidden requirements
Hidden requirements would be like private requirements for the purpose of info propagation, but like normal requirements
for the purpose of downloading and fetching.
Synopsis
The idea is that
bar
should be able to depend onbaz
, but beyond the fact thatbaz
gets downloaded when you requirebar
, the only thingsfoo
should be able to know aboutbaz
are the things thatbar
explicitly propagates.foo
can even transitively depend on two different versions ofbaz
without a conflict.foo/conanfile.py
bar/conanfile.py
fizz/conanfile.py
baz/conanfile.py
Use Cases
Packaging
baz
could be some finished software for an entirely different platform that needs to be packaged intofoo
. For examplefoo
could be an application,baz
could be some firmware that needs to be installed on a peripheral to runfoo
. In this case it would be wrong to propagatecpp_info
or anything like that out frombaz
into foo. Insteadfoo
just wants the finished firmware image forbaz
so it can package it into its own application bundle or installer.Including multiple versions of a dependency
foo
may have some complicated makefile that needs access to multiple versions of a build time tool, such as a cross compiler. In this case,bar
can repackagebaz
under a different name, without needing to physically duplicate the potentially largebaz
binaries in the repository and user cache.The text was updated successfully, but these errors were encountered: