Skip to content

ci(timing): drop step and leg patterns no workflow emits (#2230) - #2240

Merged
JarryShaw merged 1 commit into
mainfrom
ci/2230-ci-timing-dead-patterns
Oct 26, 2026
Merged

JarryShaw merged 1 commit into
mainfrom
ci/2230-ci-timing-dead-patterns

Conversation

@JarryShaw

Copy link
Copy Markdown
Owner

What is the purpose of your pull request?

  • ci — CI configuration

Description

Closes #2230.

  • util/ci_timing.py:
    • The KTLO step pattern drops its 3\.10 cell alternative, which matches no step in .github/workflows/.
    • EXPERIMENTAL_SUFFIX and its branch in non_blocking go, since NON_BLOCKING_WORKFLOWS covers experimental.yml. non_blocking is now workflow in NON_BLOCKING_WORKFLOWS or job.endswith(KTLO_SUFFIX).
  • test_ci_timing.py:
    • LEGACY goes.
    • The (experimental) case now asserts that such a job in unit-tests.yml is blocking.
    • A new guard, test_every_step_of_interest_names_a_real_step, requires every pattern alternative to match a real step name.
  • workflows.rst: the sentence saying an (experimental) job is non-blocking in any workflow now says it counts by its workflow. test_the_rule_is_documented pins that sentence, and is updated with it.
  • Fail-without-fix: on origin/main, 3 failed. The guard fails on Run the 3\.10 cell.*.
  • Tests run: test_ci_timing gives 71 passed. The floor, KTLO and matrix tests and the docstring contract give 148 passed. The workflows.rst readers give 13 passed.

Problem: STEPS_OF_INTEREST kept a `3\.10 cell` alternative that no step
matches since #1660 renamed it, and non_blocking still treated any job
ending in ` (experimental)` as non-blocking, a rule only the unit-tests.yml
legs that #1732 moved to experimental.yml needed.

Fix: drop the alternative, EXPERIMENTAL_SUFFIX and its branch; an
experimental leg is non-blocking through NON_BLOCKING_WORKFLOWS alone.
workflows.rst says so.

Test: test_every_step_of_interest_names_a_real_step requires each
alternative of each pattern to match a step in .github/workflows/;
test_a_blocking_leg_stays_hard asserts an (experimental) name in
unit-tests.yml is blocking. LEGACY is gone.
@JarryShaw JarryShaw added ci Pull requests that change CI or workflow configuration (ci: subject prefix) review: running A cross-review is in flight against the current head - no verdict yet labels Oct 26, 2026
@JarryShaw JarryShaw added this to the PyPCAPKit v1.5 milestone Oct 26, 2026
@JarryShaw

Copy link
Copy Markdown
Owner Author

Review: GOOD TO GO at bb4720b94 (Sonnet).

  • Guard: fails on main (Run the 3\.10 cell.*), along with the blocking-leg and documented-rule tests.
  • Classification: non_blocking still classifies every real job. Each KTLO job name ends in (KTLO), every (experimental) job is in experimental.yml, and no matrix.experimental exists elsewhere.
  • Matcher: the guard uses re.fullmatch, as ci_timing.py does. The workflows.rst sentence is accurate.
  • Tests: test_ci_timing, the 1732, 1660, 2060 and 2030 project tests, the docstring contract and the tier guard give 348 passed.

@JarryShaw JarryShaw added review: good-to-go Cross-review at the current head says ready; CI state is separate and removed review: running A cross-review is in flight against the current head - no verdict yet labels Oct 26, 2026
@JarryShaw JarryShaw moved this to In review in PyPCAPKit Oct 26, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Coverage: 91.56% (unit tier, Python 3.15, bb4720b94, Unit Tests run success)

Package Statements Missed Branches Partial Cover
pcapkit (top level) 104 4 20 2 95.16%
pcapkit/const 19599 881 2618 867 92.11%
pcapkit/corekit 2589 74 816 37 96.51%
pcapkit/dumpkit 282 3 102 3 98.44%
pcapkit/foundation 2994 23 1038 25 98.81%
pcapkit/interface 138 4 52 3 96.32%
pcapkit/protocols 17433 218 4584 185 98.15%
pcapkit/toolkit 869 36 298 10 95.20%
pcapkit/utilities 504 7 146 5 98.15%
pcapkit/vendor 4432 1988 1018 167 51.87%

Per-file detail: the coverage-html artifact of this run.

@JarryShaw

Copy link
Copy Markdown
Owner Author

Ready to merge at bb4720b94. Closes #2230.

  • Review: Sonnet GOOD TO GO, first round.
  • CI: all checks complete, Required checks passed SUCCESS, 0 failed.
  • KTLO: 12 legs, no warnings.
  • Ordering: merged into main and run. project leg: 2354 tests, 0 failures.
  • Conflicts: none against the current main.

@JarryShaw
JarryShaw merged commit fba6d92 into main Oct 26, 2026
66 checks passed
@github-project-automation github-project-automation Bot moved this from In review to Done in PyPCAPKit Oct 26, 2026
@JarryShaw
JarryShaw deleted the ci/2230-ci-timing-dead-patterns branch October 26, 2026 14:49
@JarryShaw JarryShaw removed the review: good-to-go Cross-review at the current head says ready; CI state is separate label Oct 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci Pull requests that change CI or workflow configuration (ci: subject prefix)

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

ci(timing): ci_timing.py still matches a renamed KTLO step and pre-split experimental legs

1 participant