Open mmatrosov opened 3 years ago
Hi @mmatrosov
This happens, because the default package_id_mode
regarding dependencies is semver_direct_mode
. So a package like folly
will not produce a new package_id
unless the dependencies bumped to the major version. That was designed following the semver
specification, which happened to be not that good for C++ binaries versioning. We have allowed to change and configure the default_package_id_mode
to use more restrictive policies, try to change it (the only caveat is that ConanCenter binaries are built with the default, when changing this, you will need to build the binaries from source, because different package_id
will be computed)
Ok, I see, thanks. Do you consider changing the default to a safer one?
Ok, I see, thanks. Do you consider changing the default to a safer one?
Absolutely, but not now in 1.X, because that would be breaking. It has already been changed in a proposal develop2
branch for Conan 2.0, and it will probably be iterated until 2.0 release.
Hi, @memsharded
I cannot find a proposal related to default_package_id_mode
in conan tribe repo. Is there a list of "proposal ideas" somewhere?
Hi @mmatrosov
Good question. We already have a draft exactly about this, we are currently working on. It is a complicated to explain proposal, hopefully it will be ready in a couple of days, keep tuned to the tribe repo.
I have the following
conanfile.txt
:When I run
conan install conanfile.txt
here is what I see:And let's take a look at the selected folly package:
Conan aknowledged that I am using custom boost version
1.75.0-crypto1
, but it uses folly package built against a different boost version1.75.0
! Why is that so? I would expect folly to be rebuilt with my version of boost.I can see how packages for both
boost/1.75.0-crypto1
andboost/1.75.0
have the same package id. I assume this is ok since they are using the samesettings
,options
andrequires
. But they have different version, which should affectrequries
for folly yielding different package ids for builds againstboost/1.75.0-crypto1
andboost/1.75.0
.