Improvements and testing for inspect_changes CI functionality.#6535
Merged
alliepiper merged 1 commit intoNVIDIA:mainfrom Nov 18, 2025
Merged
Conversation
This comment was marked as resolved.
This comment was marked as resolved.
522f39e to
1d4a672
Compare
6c69448 to
b35e225
Compare
This comment has been minimized.
This comment has been minimized.
This was referenced Nov 7, 2025
730e864 to
7fca159
Compare
1. Rewrote `inspect_changes.sh` to python. 2. Split out project name, path, dependency information into new yaml file. 3. Simplified dependency specification (only direct dependencies are needed). 4. Split dependency specification into two types: full (use the pull_request matrix) and lite (use the pull_request_lite matrix). 5. Use new features to split some projects with expensive dependency chains into 'public' (public headers, etc) and `internal` (tests/examples/infra, etc). Dependencies are only added when the public API files change. 6. Update the ignored paths to include newer additions. 7. Add tests for inspect_changes to make it easier to test and validate modifications.
7fca159 to
4ac1652
Compare
This comment has been minimized.
This comment has been minimized.
Contributor
🥳 CI Workflow Results🟩 Finished in 6d 17h: Pass: 100%/263 | Total: 2d 04h | Max: 1h 02m | Hits: 99%/384652See results here. |
wmaxey
approved these changes
Nov 17, 2025
Member
wmaxey
left a comment
There was a problem hiding this comment.
Looks good, I'm not completely cognizant of how the results of inspect_changes.sh/py are used to limit builds, but I can grok what's being done to calculate it.
Contributor
Author
|
@wmaxey The rest is handled during matrix parsing / workflow building: cccl/.github/actions/workflow-build/build-workflow.py Lines 1173 to 1174 in abfdbd6 |
alliepiper
added a commit
to alliepiper/cccl
that referenced
this pull request
Dec 3, 2025
1. Rewrote `inspect_changes.sh` to python. 2. Split out project name, path, dependency information into new yaml file. 3. Simplified dependency specification (only direct dependencies are needed). 4. Split dependency specification into two types: full (use the pull_request matrix) and lite (use the pull_request_lite matrix). 5. Use new features to split some projects with expensive dependency chains into 'public' (public headers, etc) and `internal` (tests/examples/infra, etc). Dependencies are only added when the public API files change. 6. Update the ignored paths to include newer additions. 7. Add tests for inspect_changes to make it easier to test and validate modifications.
alliepiper
added a commit
that referenced
this pull request
Dec 4, 2025
* Improvements to inspect_changes CI functionality. (#6535) 1. Rewrote `inspect_changes.sh` to python. 2. Split out project name, path, dependency information into new yaml file. 3. Simplified dependency specification (only direct dependencies are needed). 4. Split dependency specification into two types: full (use the pull_request matrix) and lite (use the pull_request_lite matrix). 5. Use new features to split some projects with expensive dependency chains into 'public' (public headers, etc) and `internal` (tests/examples/infra, etc). Dependencies are only added when the public API files change. 6. Update the ignored paths to include newer additions. 7. Add tests for inspect_changes to make it easier to test and validate modifications. * Add deps on thrust/cub to libcudacxx. (#6694) Complete the circle. * Fix oversubscription issue with lit precompile, label hack (#6554) * Remove MSVC hint that is applied globally in CCCL. * Fix oversubscription issue with lit precompile, label hack. Moves the C2H tests earlier in the config so we can add the fake dependency to lit. Explains and labels the hack we're using to avoid oversubscription. * Make missing sccache nonfatal. (#6582) * Add nvbench_helper tests to CI. (#6679) * Drive-by fix to packaging test script. Building isn't needed at the moment, but this will save some headaches if we add any executables that need to be built to this preset. * Fix warnings in nvbench_helper tests. * Skip test sizes that OOM CI runners. * Update boost dep to work with CMake 4+ * Enable CI coverage for nvbench_helper tests. * Update inspect_changes smoke tests. * Update libcudacxx C++ dialect handling. (#6693) * Switch preprocessor cache to S3. (#6561) This is more robust than the github cache approach, which evicts caches regularly due to a 10GB repo limit. The S3 cache will be more reliable and persistent. This also allows preprocessor caching in our linux devcontainers, improving developer experience with faster build times. * Restore libcudacxx dialect presets. (#6705) These were removed in #6693. * Remove special dialect handling from cudax build system. (#6702) * Remove special handling of C++ dialect in CUB's build system. (#6713) * Remove special handling for dialect in Thrust's build system. (#6722) * Remove special handling for dialect in Thrust's build system. * Allow consumers to set CCCL_TOP_LEVEL_PROJECT. This enables python to build the c libraries it depends on. * Force windows python builds to use ninja. * Exclude python build artifacts from git. * Fix python build to reuse CCCL's existing install rules. The old implementation reinvented the wheel and depended on variables that can't be relied upon. * Fix CUB header extensions. We use .cuh, not .h in CUB. This broke our install rules. * Fixup ptx_json header testing. * Fix issue with libcudacxx header tests. (#6785) Did some drive-by cleanups/standardizing of how our internal libraries link together. * Improve CMake package handling, add MSVC compat flags to libcudacxx's public interface. (#6791) * Change the MSVC preprocessor check to an error. When `/Zc:preprocessor` is not set, the build will error out before `#pragma message` directives are handled. Changing to an error ensures that this will be caught. * Add /Zc:preprocessor and /Zc:__cplusplus to public libcudacxx::libcudacxx target. * Remove dev build defs for /Zc:preprocessor and /Zc:__cplusplus. * Recheck languages on successive `find_package(libcudacxx)` calls. * Clean up dependency handling between projects. * Set <project>_DIR when locating packages with our add_subdir helper. This ensures that it behaves the same as find_package, and that later calls to find_package will locate the same configs. * Update test_packaging.sh to use the local repo for CPM. * Enable CUDA language and verbose logging for CMake example configs. * Reduce verbosity of libcudacxx package. * Fix early return checks. * Improve some option names / diagnostics. * Remove check for unsupported CTK versions.
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.
inspect_changes.shto python.internal(tests/examples/infra, etc). This allows finer control over dependencies (eg. downstream projects don't need to retest when an upstream project's test files change).