Conversation
|
Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually. Contributors can view more details about this message here. |
|
Some follow-ups for (eventual) reviewers: I propose these checks are enabled in a follow-up, as it will be adding to an already massive diff in this PR. |
|
Also which CI job is best suited for this? I notice there isn't really a unified "lint" job (other than |
miscco
left a comment
There was a problem hiding this comment.
I am looking forward to clang-tidy, but we need to be really careful that we do not emit incorrect warnings.
We do have standard library components and need to account for that
The way this will be handled will be a separate |
0e093d5 to
d14b439
Compare
CUB and Thrust also use |
@alliepiper can you point @Jacobfaib in the right direction here? |
So I misread To fix this, I think we just disable
My 2 cents would be that only |
I believe that is correct, albeit we are starting to use effectively all of CUB in the PSTL CUDA backend, so technically ... |
@Jacobfaib We should put this in a new CI job. We'll need that level of control. As a first step, I propose adding new ci/tidy_.sh scripts that use the existing common-ci-job infra to compile some new CMake presets, and some "tidy" jobs in ci/matrix.yaml that mirror the "build" job configs. Take a look through the comments and docs in:
Important: Use the So:
|
|
/ok to test |
This comment has been minimized.
This comment has been minimized.
04fb404 to
fe4cb0a
Compare
|
/ok to test |
3 similar comments
|
/ok to test |
|
/ok to test |
|
/ok to test |
This comment has been minimized.
This comment has been minimized.
|
/ok to test |
2 similar comments
|
/ok to test |
|
/ok to test |
This comment has been minimized.
This comment has been minimized.
|
/ok to test |
This comment has been minimized.
This comment has been minimized.
35ec44c to
253f419
Compare
|
Per offline discussion, the consensus was that trying to go whole-hog with all checks enabled and fixes applied would be a nightmare to review/downright impossible. Instead, we should merge a minimal passing version of this PR in ASAP to get the To whit, this PR now enables only a single check, |
253f419 to
5f10901
Compare
ci/matrix.yaml
Outdated
| # Used by the clang-tidy jobs. Does not really mean "all", because it does not name all | ||
| # projects, this is more "project-less" because clang-tidy will by default be invoked | ||
| # over all configured sub-projects. | ||
| all: |
There was a problem hiding this comment.
We need to split this up into per-project scripts from this list to work with our change-detection logic that determines which areas of the CCCL need to be built and tested.
This comment has been minimized.
This comment has been minimized.
fbusato
left a comment
There was a problem hiding this comment.
totally fine if we disable the checks to add them in further PRs.
I strongly suggest further review of the cmake part because it touches several places.
2d8879a to
9a2a310
Compare
9a2a310 to
2b92a66
Compare
😬 CI Workflow Results🟥 Finished in 3h 46m: Pass: 99%/446 | Total: 14d 22h | Max: 3h 46m | Hits: 66%/511977See results here. |
Description
Add a
clang-tidypass that runs over every created executable in CCCL. Run it viaThe
tidytarget is only created for top-level builds. Crucially, thetidytarget is lazy; if the host system has noclang-tidy, then an error is only emitted when you invoke--target tidy, not at configure-time. This allows seamless "opt-in" behavior.Example of current errors generated:
clang_tidy_errors_sample.log
Please note that many errors (notably
bugprone-reserved-identifierinside libcu++) can be locally silenced by a directory-local.clang-tidy, so please ignore them until the local.clang-tidyhas been added.Checklist