-
Notifications
You must be signed in to change notification settings - Fork 1.8k
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
[check] CMake, as a tool-only package, doesn't need compiler or build_type settings #3153
Conversation
Could it be worth opening an issue listing all "tools only" packages and their current settings? It's not really consistent currently. |
All green in build 1 (
|
Having a look to profiles: Linux (package-ID:
MacOS (package-ID:
Windows (package-ID:
These packages, when used as build-requires, should have max-compatibility. They should work on any docker image we are using in the CI. ... and it only took 2 hours to build 🙄 ping @uilianries @SSE4 @danimtb |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Interesting situation: Does the bot merge PRs which passed all checks but are still marked as drafts or does it check the status before? LGTM too |
It only considers those not in draft mode. |
This is not correct.
Compare the calls to
versus
We need to keep Imho we should tag tools-only recipes and only build |
Yes, we need full settings: |
e77551b
All green in build 2 (
|
After #2941, to consider |
All green in build 3 (
|
Just to explain my change in the other PR: I was thinking that excluding the As @madebr mentioned there might be cases where it would be annoying to exclude the When I sometimes used Clion it was often configured to compile both |
We agree (inside the team) that installers shouldn't include Removing settings from the @madebr I would like to know the scenario where you need (and cannot generate it yourself) the Debug build of CMake or any other tool. Thanks! |
My resistance comes from these old cmake issues:
By only removing So I propose the following: settings = "os", "arch", "compiler", "build_type"
def configure(self):
if self.settings.compiler == "Visual Studio" and self.setting.compiler.runtime != "MT":
raise ConanInvalidConfiguration("CMake only supports MT to limit configurations")
if self.settings.build_type != "Release":
raise ConanInvalidConfiguration("CMake only supports Release build_type to limit configurations")
def package_id(self):
del self.info.settings.compiler
del self.info.settings.build_type |
I understand your concerns, but this is something that won't happen in CCI. We ensure a fixed order for the profiles and we know which ones are going to be uploaded. I totally understand this is something that can accidentally happen somewhere else if users do not pay enough attention, but in any production environment this should be controlled: order of profiles and jobs that can upload packages to the remotes.
I see a problem here, we can't raise |
This mixing of c3i build policy/operational management and recipe properties is what I'm feeling uneasy about.
Such an upload can happen accidentally. I'm just forecasting an issues some conan users will face.
Indeed, this is not a good approach. |
:D |
config.yml syntax error in build 4:
|
Specify library name and version: cmake/all
Packages that act only as tools (do not contain libraries or they are not currently used) can remove
compiler
andbuild_type
settings and generate less packages. C3i generates the profiles in order taking into account some rules:Release
builds first (minimize problem with VS redistributables), older compilers first (avoid issue with docker images and glibc).Let's double-check if the promise fulfills.