fix(py): switch sdist to explicit inclusion mode and exclude Dawn test corpora - #566
Merged
Conversation
…t corpora The default inclusion mode leaves include/exclude collisions unspecified: sdist.include "third_party/dawn/**" overlapped every Dawn exclude pattern, producing inconsistent tarballs from the same config (35k vs 93k entries across otherwise identical builds). Explicit mode documents that exclude is applied after include, making sdist contents deterministic. Explicit mode also ignores .gitignore, so local build directories are excluded here too. Excludes Dawn's test corpora (~60k files never consumed by any build) whose vk-gl-cts tree caused the deterministic sdist unpack failure in CI (see the Build Python failures on #562), the webgpu-cts GN metadata (43 MB test_list.txt plus an 8 MB cache tarball, both also present in the currently published PyPI sdist), the opt-in HermeticXcode macOS toolchain dir that contains the tree's only dangling symlink, and the dangling dawn/.git submodule gitlink. Result: 105 MB / 93k entries down to 6.5 MB / ~5k entries. The wheel builds from the sdist end-to-end and the console example runs on the GPU path. inclusion-mode = "explicit" requires scikit-build-core >= 1.0, so the build-system floor is bumped accordingly.
This comment was marked as outdated.
This comment was marked as outdated.
Ryan-Millard
marked this pull request as ready for review
August 18, 2026 19:00
This comment was marked as outdated.
This comment was marked as outdated.
Ryan-Millard
force-pushed
the
fix/py-sdist-explicit-mode
branch
from
August 18, 2026 19:17
d719e20 to
5003ccf
Compare
Owner
Author
|
@coderabbitai review |
Contributor
|
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.
The default inclusion mode leaves include/exclude collisions unspecified: sdist.include "third_party/dawn/**" overlapped every Dawn exclude pattern, producing inconsistent tarballs from the same config (35k vs 93k entries across otherwise identical builds). Explicit mode documents that exclude is applied after include, making sdist contents deterministic. Explicit mode also ignores .gitignore, so local build directories are excluded here too.
Excludes Dawn's test corpora (~60k files never consumed by any build) whose vk-gl-cts tree caused the deterministic sdist unpack failure in CI (see the Build Python failures on #562), the webgpu-cts GN metadata (43 MB test_list.txt plus an 8 MB cache tarball, both also present in the currently published PyPI sdist), the opt-in HermeticXcode macOS toolchain dir that contains the tree's only dangling symlink, and the dangling dawn/.git submodule gitlink.
Result: 105 MB / 93k entries down to 6.5 MB / ~5k entries. The wheel builds from the sdist end-to-end and the console example runs on the GPU path.
inclusion-mode = "explicit" requires scikit-build-core >= 1.0, so the build-system floor is bumped accordingly.