Conversation
virtuald
marked this pull request as ready for review
September 25, 2026 15:55
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.
... I think the clanker removed too much, let's see if CI passes.
Heh, it did pass. Here's the 🤖 explanation of what was removed:
The large count comes from removing five complete historical snapshot trees, each containing 30 generated
.pyifiles—not 150 distinct tests or features.All deletions are under
tests/stubs/:_bindings/__init__.pyiandhidden_builtins.pyi. Python 3.8 is no longer in the matrix.Total: 152 files + 3 symlinks, approximately 130 KiB.
What remains
Here, “unused” means not selected by the existing tox/CI matrix, not necessarily incorrect or duplicate. Historical manual combinations lose their stored references; no currently configured test case was removed.
The history strongly suggests an intentional sparse matrix—not accidentally dropped jobs. Older pybind11 versions are still tested, just not against every Python version.
Evidence:
91adf2e/f5b044d(2023): pybind11 2.9 and 2.11 coverage was introduced only on Python 3.12, while the main pybind11 version ran across multiple Python versions.60728d3(2023): type-variable NumPy mode likewise started with just one Python version.433c899(2025): those extra cases were explicitly moved from Python 3.12 to 3.13, and pybind11 2.12 was added using the same pattern.53a0b13(2026): “Simplify test matrix” explicitly says it does not add or remove tests.c16ac20(2026): removing Python below 3.10 was explicitly intentional: “All EOL. Less silver files.”My interpretation is that maintainers chose to test:
That plausibly limits CI cost, although I haven’t found an explicit statement explaining that motivation.
The leftover snapshots are less clear: they could be incomplete cleanup or intentionally retained for manual runs. Their existence alone doesn’t demonstrate forgotten CI coverage.
So I’m confident the matrix shape was deliberate. But our pruning only proves those references were unused by configured tests, not that the omitted combinations can never reveal bugs. Expanding that coverage would be a separate policy decision.