Repository navigation
ci: let docs-only and test-only pull requests skip the heavy matrices (#2243) - #2244
Merged
Merged
Conversation
…#2243) Problem: every pull request queued the full matrices, so a batch of small docs or test PRs starved the lightweight workflows of runners. Fix, the owner's option B: - util/classify_changes.py writes `test-only`, true on a diff of tests/ and docs alone; anything else stays code. - Unit Tests: on test-only, `test` and `integration` run their `latest` leg alone; the KTLO jobs, `engine-tests` and `pypcap-parity` skip, as do experimental.yml's legs. `required-checks` accepts those skips only on the class that allows them. - Python Compatibility classifies too: on a light diff its required legs run by name with every check step skipped, as a skipped matrix job would leave the required contexts pending. - CodeQL and the docs build, which nothing requires, skip by a pull_request path filter. Pushes and schedules are unchanged. Test: tests/project/test_light_pull_requests_2243.py evaluates every gate and matrix on each class; test_unit_tests_queue.py runs the classifier and the gate step on test-only diffs. Both fail on main.
Owner
Author
|
Review: GOOD TO GO at
|
Owner
Author
|
Ready to merge at
|
Contributor
|
Coverage: 91.56% (unit tier, Python 3.15,
Per-file detail: the |
This was referenced Oct 26, 2026
JarryShaw
added a commit
that referenced
this pull request
Oct 26, 2026
…2265) - #876 item 3: state why the no-else-raise pragma stays, not "the belief" - #652: the flagless HTTP/2 dump reads "Flags::0 [0]", as #648 renders it - #2172: section_context raises only on a block holding no section - add the missing #2222/#2232 MAC/EUI maker entry; cite #2257 on ARP - add the #1055/#2244 engine-tests and required-checks entry that #849's and #856's job descriptions now need - #800 names HTTP._guess_version, where the method lives; #631 states the old MANIFEST.in in the past tense - drop mentions of never-released names (pcapkit.utilities.timestamp, a test constant) - citation range runs to #2257; CHANGELOG.md regenerated
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.
make testpasses, and a test case covers the changeWhat is the purpose of your pull request?
ci— CI configurationDescription
Closes #2243 (option B). Docs-only and test-only pull requests skip the heavy matrices. Nothing is cancelled: every gate skips through
if:.util/classify_changes.pyaddstest-only. That is a diff of onlytests/(includingconftest.py,_tiers.pyand fixtures) plus docs. Workflows,util/,examples/andpyproject.tomlare never test-only. Pushes, other events and an unreadable diff are always code.test,integrationlatestleg onlyengine-tests,pypcap-parity, experimental,windowsproject-tests, Lintpaths-ignoreunit-tests.yml,python-compatibility.ymlandlint.ymlhave no path filters, and a test enforces that.if:reports one check under its template name (run 40238795866 showsPython ${{ matrix.python-version }}). So the requiredCompat Python 3.11–3.15legs still run on light PRs under their real names, skip their steps and pass.Required checks passedaccepts each skip only on the matching class, and never countscancelled.mainpushes and scheduled runs always take the full path.origin/main.tests/projectfiles, the tier guard and the docstring contract give 1718 passed. actionlint is clean.