conan-io / conan-center-index

Recipes for the ConanCenter repository
https://conan.io/center
MIT License
918 stars 1.65k forks source link

cmake: re-add from source builds as `cci.` versions #24404

Open Croydon opened 1 week ago

Croydon commented 1 week ago

I think that the decision to re-package binary downloads was a mistake to begin with. Most of the named arguments are also outdated today as they are solved by version ranges.

This PR makes the CMake recipe, that builds from source, again available from the Conan Center remote, under the cci. version prefix.


Might be of interest to @datalogics-kam (#17032)

conan-center-bot commented 1 week ago

Conan v1 pipeline :x:

Failure in build 1 (284b81bc3234d2f4d45e9b1ee9d8c1bf0cbaeb7b):


Note: To save resources, CI tries to finish as soon as an error is found. For this reason you might find that not all the references have been launched or not all the configurations for a given reference. Also, take into account that we cannot guarantee the order of execution as it depends on CI workload and workers availability.


Conan v2 pipeline :x:

Note: Conan v2 builds are now mandatory. Please read our discussion about it.

The v2 pipeline failed. Please, review the errors and note this is required for pull requests to be merged. In case this recipe is still not ported to Conan 2.x, please, ping @conan-io/barbarians on the PR and we will help you.

Failure in build 1 (284b81bc3234d2f4d45e9b1ee9d8c1bf0cbaeb7b):


Note: To save resources, CI tries to finish as soon as an error is found. For this reason you might find that not all the references have been launched or not all the configurations for a given reference. Also, take into account that we cannot guarantee the order of execution as it depends on CI workload and workers availability.

conan-center-bot commented 1 week ago

Conan v1 pipeline :x:

Failure in build 2 (cabe36d15d5b687bb1efe799b31c974437a68b91):


Note: To save resources, CI tries to finish as soon as an error is found. For this reason you might find that not all the references have been launched or not all the configurations for a given reference. Also, take into account that we cannot guarantee the order of execution as it depends on CI workload and workers availability.


Conan v2 pipeline :x:

Note: Conan v2 builds are now mandatory. Please read our discussion about it.

The v2 pipeline failed. Please, review the errors and note this is required for pull requests to be merged. In case this recipe is still not ported to Conan 2.x, please, ping @conan-io/barbarians on the PR and we will help you.

Failure in build 2 (cabe36d15d5b687bb1efe799b31c974437a68b91):


Note: To save resources, CI tries to finish as soon as an error is found. For this reason you might find that not all the references have been launched or not all the configurations for a given reference. Also, take into account that we cannot guarantee the order of execution as it depends on CI workload and workers availability.

conan-center-bot commented 1 week ago

Conan v1 pipeline :x:

Failure in build 3 (b769c94bbe609d75322f55e87ca02914f49bf4fe):


Note: To save resources, CI tries to finish as soon as an error is found. For this reason you might find that not all the references have been launched or not all the configurations for a given reference. Also, take into account that we cannot guarantee the order of execution as it depends on CI workload and workers availability.


Conan v2 pipeline :x:

Note: Conan v2 builds are now mandatory. Please read our discussion about it.

The v2 pipeline failed. Please, review the errors and note this is required for pull requests to be merged. In case this recipe is still not ported to Conan 2.x, please, ping @conan-io/barbarians on the PR and we will help you.

Failure in build 3 (b769c94bbe609d75322f55e87ca02914f49bf4fe):


Note: To save resources, CI tries to finish as soon as an error is found. For this reason you might find that not all the references have been launched or not all the configurations for a given reference. Also, take into account that we cannot guarantee the order of execution as it depends on CI workload and workers availability.

conan-center-bot commented 1 week ago

Conan v1 pipeline :x:

Failure in build 4 (80c87174f4c39b129a3932d70bc6aa5c9cd1200c):


Note: To save resources, CI tries to finish as soon as an error is found. For this reason you might find that not all the references have been launched or not all the configurations for a given reference. Also, take into account that we cannot guarantee the order of execution as it depends on CI workload and workers availability.


Conan v2 pipeline :x:

Note: Conan v2 builds are now mandatory. Please read our discussion about it.

The v2 pipeline failed. Please, review the errors and note this is required for pull requests to be merged. In case this recipe is still not ported to Conan 2.x, please, ping @conan-io/barbarians on the PR and we will help you.

Failure in build 4 (80c87174f4c39b129a3932d70bc6aa5c9cd1200c):


Note: To save resources, CI tries to finish as soon as an error is found. For this reason you might find that not all the references have been launched or not all the configurations for a given reference. Also, take into account that we cannot guarantee the order of execution as it depends on CI workload and workers availability.

conan-center-bot commented 1 week ago

Conan v1 pipeline :x:

Failure in build 5 (b6767ec149f46ac7c76e7fd9c53b9bd9d0487fd4):


Note: To save resources, CI tries to finish as soon as an error is found. For this reason you might find that not all the references have been launched or not all the configurations for a given reference. Also, take into account that we cannot guarantee the order of execution as it depends on CI workload and workers availability.


Conan v2 pipeline :x:

Note: Conan v2 builds are now mandatory. Please read our discussion about it.

The v2 pipeline failed. Please, review the errors and note this is required for pull requests to be merged. In case this recipe is still not ported to Conan 2.x, please, ping @conan-io/barbarians on the PR and we will help you.

Failure in build 5 (b6767ec149f46ac7c76e7fd9c53b9bd9d0487fd4):


Note: To save resources, CI tries to finish as soon as an error is found. For this reason you might find that not all the references have been launched or not all the configurations for a given reference. Also, take into account that we cannot guarantee the order of execution as it depends on CI workload and workers availability.

memsharded commented 1 week ago

Quick feedback regarding cci versions: ConanCenter will no longer be accepting these as a major digit when existing numeric versions exists, because they break the version ordering, the version ranges and other things like conan graph outdated.

It will be possible with a new versioning approach that adds cci as a minor digit, like 1.2.3.cci.DDDD to add cci versions that happen after 1.2.3 for example, because the repo stopped doing numbered releases. This is not the case for this repo, so the cci versioning approach wouldn't be valid for this case.

jcar87 commented 1 week ago

The current binary CMake recipe still provides several benefits over the source variant and the binaries we would be generating for it.

The above points are true for all “tool” recipes currently in Conan Center and built for Conan 2 - however we need to consider the usage of the cmake recipe is much more widespread, so we ought to be more careful.

The points above mean that if the current source recipe were to be the default, users would still experience missing binaries quite frequently, having to build them from source, not only for new versions of CMake, but also whenever there are updates to zlib or openssl. We want to avoid this - if we can save users time, we should.

We do not want users to have to be building CMake from source unnecessarily - our focus is currently on the user experience of recipe/package consumers, and for the most part the current binary recipe has been working well for this - albeit with the major caveat of not working outside of supported configurations.

There are also other issues with the source variants that we have seen:

As well as recipe maintainability issues:

While I appreciate the PR as it stands adds it as a new version that would fall outside the version range that is expressed elsewhere in Conan Center, we will not be adding the source versions back just yet. In particular, having two competing versioning schemes has downsides - we very much want users to be able to require the “latest”, e.g. cmake/[*], and cci. would evaluate as newer - we’re already having issues with libraries that have gone from cci to something else, or from versions to cci. - we need to rethink the strategy for those cases moving forward.

Will otherwise accept fixes to the “source” recipe, such that it actually builds on Linux, or to add new versions, but will not be building this on CI just yet or publishing binaries for it.

This is still very much in our radar - once we deploy our new CI pipeline, as well as allowing recipes that support Conan 2 only, we will have look into bringing this back - we want a user experience that is equivalent to what the binary recipe provides (binaries that work without conflicts or missing binaries), as well as being able to build it from source in other platforms.

But in the meantime, using the binary recipes has “protected” users from a myriad of problems while we focused our efforts on migrating recipes to support Conan 2.0. Down the line we will also ensure that we have the ability to validate the recipe with different options (so that the bootstrap doesn’t diverge), as well as using an old enough gcc or linking the runtime statically.

As for alternatives in the meantime, if for any reason users do not want to use the Conan-center provided versions for CMake, there are ways to handle this without modifying any other recipes:

datalogics-kam commented 1 week ago

Hi! My duties have shifted somewhat, and I'm not working directly with Conan at the moment, but I will make the appropriate teams at Datalogics aware of this development.

A few comments in recap:

So that's what I remember. I'll drop a link to this PR into our company Slack to see if it is of interest to those currently working with Conan.

Thanks for bringing this to my attention, and thanks for Conan!