[CI] Test installed headers for include errors - #19543
Draft
hageboeck wants to merge 8 commits into
Draft
Conversation
Test Results 23 files 23 suites 3d 19h 20m 28s ⏱️ For more details on these failures, see this check. Results for commit 670a4cc. ♻️ This comment has been updated with latest results. |
hageboeck
force-pushed
the
postInstallHeaderTest
branch
5 times, most recently
from
October 9, 2025 09:58
91b55e2 to
f1ec055
Compare
hageboeck
force-pushed
the
postInstallHeaderTest
branch
3 times, most recently
from
September 1, 2026 14:51
20c85af to
d9afa80
Compare
RTaskArena uses a message pointing to imt=Off, whereas TThreadExecutor was pointing to the name of the ROOT-internal macro. Here, the same error message is used.
Add a script that checks all installed headers for syntax errors. This tests if they can be included standalone or if they rely on parasitic includes. Several subfolders or headers are skipped for now, since they either cannot be used standalone or depend on externals which are not necessarily installed.
hageboeck
force-pushed
the
postInstallHeaderTest
branch
from
September 1, 2026 14:54
d9afa80 to
670a4cc
Compare
Instead of globbing in inc/ and unconditionally installing all headers, provide a mode that explicitly lists all headers to be installed.
Previously, optional headers were passed to a variable that didn't get used. Here, they are passed to ROOT's CMake macro, so they can be used to conditionally install the headers in a subsequent commit.
When curl or daos are off, the corresponding headers are broken. Therefore, they should not be installed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add a new step to the CI. In this step, every installed header is checked for syntax errors (except for TMVA, vdt, bvh, and a few headers that aren't supposed to be used standalone).
If the header doesn't include all headers it depends on, this will provoke a compiler error. This means that this header works by accident, because it's included in another TU that was already including the relevant dependencies.
This is less aggressive than IncludeWhatYouUse, but still validates that all headers can be included standalone.