root icon indicating copy to clipboard operation
root copied to clipboard

[cmake] Set `fail-on-missing=ON` by default

Open guitargeek opened this issue 2 years ago • 4 comments

Most ROOT developers and users seem to agree that autonomously toggling features at configuration time based on the environment is not good. The feature set that ROOT is built with is then not deterministic.

In past cases, this already resulted in accidentally missing test coverage because features were switched off after environment changes. That's why for the CI, we are always building with the fail-on-missing-option.

However, this is not only a problem in testing, but everytime ROOT is built. That's why this commit suggests to make fail-on-missing the default, and warn the users of potential future deprecation of this flag in the release notes.

An interesting point is also that the fail-on-missing code path in SearchInstalledSoftware.cmake is much simpler, which also helps to reduce the margin for error.

See also: https://github.com/root-project/root/issues/14188#issuecomment-1844965943

guitargeek avatar Jan 08 '24 22:01 guitargeek

Starting build on ROOT-performance-centos8-multicore/soversion, ROOT-ubuntu2204/nortcxxmod, ROOT-ubuntu2004/python3, mac12arm/cxx20, windows10/default How to customize builds

phsft-bot avatar Jan 08 '24 22:01 phsft-bot

Test Results

     9 files       9 suites   1d 18h 30m 14s :stopwatch:  2 487 tests  2 487 :white_check_mark: 0 :zzz: 0 :x: 21 351 runs  21 351 :white_check_mark: 0 :zzz: 0 :x:

Results for commit f5278cf9.

github-actions[bot] avatar Jan 08 '24 23:01 github-actions[bot]

Too controversial change for the upcoming release, unfortunately.

guitargeek avatar May 11 '24 10:05 guitargeek

Related issue: https://its.cern.ch/jira/browse/ROOT-9385

ferdymercury avatar May 11 '24 14:05 ferdymercury

Too controversial change for the upcoming release, unfortunately.

In fact, I don't think I'm up to right that battle for any release.

I can sort of understand why it's not the default. With the fallback to builtins, the chance of getting a working ROOT build first-try for a newcomer is higher. It's just a bit unfortunate that anyone who is more serious about a controlled build has to set fail-on-missing=ON in addition.

guitargeek avatar May 22 '24 02:05 guitargeek