Skip to content

ci(timing): run the remaining xdist jobs at -n logical - #2606

Merged
JarryShaw merged 2 commits into
mainfrom
ci/2573-xdist-logical
Nov 2, 2026
Merged

JarryShaw merged 2 commits into
mainfrom
ci/2573-xdist-logical

Conversation

@JarryShaw

Copy link
Copy Markdown
Owner

What is the purpose of your pull request?

  • ci — workflows or build tooling

Description of your pull request and other information

This finishes #2572's move from -n auto to -n logical. With psutil installed, pytest-xdist's auto counts physical cores, which is half the runner's CPUs. Integration, engines, parity, project-tests, gate, the experimental Windows leg and 3.14t now run at -n logical. GraalPy keeps -n 3, and without psutil (PyPy) logical resolves the same as auto.

A widened sweep test now checks every way to set the worker count:

  • -n with or without --dist, -nX and --numprocesses;
  • PYTEST_ADDOPTS at workflow, job and step level;
  • PYTEST_XDIST_AUTO_NUM_WORKERS anywhere in a job.

A bare -n auto fails it, and it leaves out the frozen fixtures. The xdist tests' prose no longer names -n auto.

Required-check and step names are unchanged. This PR's own CI step times are the before and after figures that #2573 asks for.

Closes #2573

- unit-tests.yml: `integration`, `engine-tests`, `pypcap-parity`,
  `project-tests` and `gate` pass `-n logical`, as `test` does since #2571:
  with psutil installed, `auto` counts physical cores.
- experimental.yml: the Windows leg and 3.14t's `WORKERS` pass `logical`;
  GraalPy keeps `-n 3`.
- Tests re-pin the flags, restore the Windows leg's equality pin on
  `test`'s flags, and sweep every xdist run in the workflows.
- The `_tier_guard_lock` docstring, coverage.toml and workflows.rst stop
  naming `-n auto`.
- util/run_unittest_leg.py's `_EXCLUDED_ROOT_MODULES` comment and
  tests/test_tier_guard_xdist.py's module docstring say
  `XdistSubprocessTests`' subprocess runs `-n 2`, as it does.
- The rest of that module's prose, its `setUp` comment and the
  `_tier_guard_lock_path` docstring name xdist or `--dist load` instead.
@JarryShaw JarryShaw added ci Pull requests that change CI or workflow configuration (ci: subject prefix) review: good-to-go Cross-review at the current head says ready; CI state is separate labels Nov 1, 2026
@JarryShaw

Copy link
Copy Markdown
Owner Author

GOOD TO GO at dda2e84e7 (Sonnet review). Exactly the seven auto sites change. logical has been valid since xdist 2.3.0. Required-check names are unchanged, and the caps are adequate. The widened sweep test catches a bare -n auto. The squashed two commits are tree-identical to the tested merged head.

@JarryShaw JarryShaw moved this to In review in PyPCAPKit Nov 1, 2026
@github-actions

github-actions Bot commented Nov 1, 2026

Copy link
Copy Markdown
Contributor

Coverage: 94.03% (unit tier, Python 3.15, dda2e84e7, Unit Tests run success)

Package Statements Missed Branches Partial Cover
pcapkit (top level) 104 4 20 2 95.16%
pcapkit/const 20093 144 2712 125 98.78%
pcapkit/corekit 2605 74 818 37 96.52%
pcapkit/dumpkit 281 3 100 3 98.43%
pcapkit/foundation 3360 27 1186 32 98.70%
pcapkit/interface 138 4 52 3 96.32%
pcapkit/protocols 20346 220 5370 204 98.34%
pcapkit/toolkit 961 28 342 10 96.32%
pcapkit/utilities 506 7 144 5 98.15%
pcapkit/vendor 5009 2222 1148 182 52.31%

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

@github-actions github-actions Bot added this to the PyPCAPKit v1.6 milestone Nov 2, 2026
@JarryShaw
JarryShaw merged commit 35c96aa into main Nov 2, 2026
67 checks passed
@JarryShaw
JarryShaw deleted the ci/2573-xdist-logical branch November 2, 2026 02:25
@github-project-automation github-project-automation Bot moved this from In review to Done in PyPCAPKit Nov 2, 2026
@JarryShaw JarryShaw removed the review: good-to-go Cross-review at the current head says ready; CI state is separate label Nov 2, 2026
JarryShaw added a commit that referenced this pull request Nov 2, 2026
…s latest wave into 1.6.0 (#2449)

- Added: every whole HTTP/2 frame in a TCP segment is a further HTTPv2
  layer, the previous frame's payload, as with TLS (#2609).
- Folded into unreleased entries: SSLv3 lives in
  pcapkit.protocols.application.sslv3 (#2602), and a reassembled DTLS
  Datagram's packet holds the deferred handshake decode (#2605).
  tls.SSLv3 is in no release tag, so the entry records no move.
- Changed: the remaining xdist jobs at -n logical (#2606) join the CI
  entry, and the member-order entry cites the last reorder (#2613).
- No entry for the test-only #2611 and #2612, or for #2610's private
  registry sentinel, which changes no behaviour.
- CHANGELOG.md regenerated; util/changelog_md.py --check passes.
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: the other -n auto jobs run half the runner's CPUs (integration, engines, parity, project, gate, experimental)

1 participant