Skip to content

design(ci): small PRs queue the full matrix and starve lightweight workflows #2243

Closed

Description

@JarryShaw

Problem. Each PR starts about ten workflows. A batch of small fix PRs pushed the Actions queue past 100 waiting runs on 2026-10-26. Meanwhile:

  • lightweight workflows waited for the account's runner slots behind 45-minute test legs: milestone.yml (ci: set milestones automatically on close #2218), Project Status and CI Reports;
  • the milestone for a newly opened item lagged by more than an hour, so it was set by hand.

Options

  • A. No workflow change: maintainers open PRs in small batches while the queue is short. This is the stopgap in use now.
  • B. Docs-only and test-only PRs skip the heavy matrices, using path filters or the existing classify_changes gate, so they run only the jobs their files can affect.
  • C. Cancel superseded PR runs on a new push (concurrency with cancel-in-progress per PR).

Recommendation: B, plus C for PR events only. B cuts the volume at the source. C stops amended PRs from queuing stale runs. Neither touches main's push runs or the required checks.

Activity

  1. added
    ciPull requests that change CI or workflow configuration (ci: subject prefix)
    designA design or decision issue: a pattern being decided rather than a defect or a request
    needs: decisionWaiting on the maintainer to decide — not blocked by other work
    on Oct 26, 2026
  2. added this to the PyPCAPKit v1.5 milestone on Oct 26, 2026
  3. JarryShaw commented on Oct 26, 2026

    @JarryShaw
    OwnerAuthor

    Ruling (owner, in chat): fix it properly with option B. Docs-only and test-only PRs skip the heavy matrices.

    • Docs-only PRs: run the docs build and Lint.
    • Test-only PRs: run the tests on one latest-Python leg, plus Lint.
    • Unchanged: main push runs and Required checks passed.
      Option C (cancelling superseded runs) is not part of this ruling.
  4. added
    wipWork in flight - a covering PR is open or an agent is actively on it
    and removed
    needs: decisionWaiting on the maintainer to decide — not blocked by other work
    on Oct 26, 2026
  5. JarryShaw commented on Oct 26, 2026

    @JarryShaw
    OwnerAuthor

    Why option C is out (owner, in chat): a cancelled superseded run leaves a red X on its commit. That is confusing, and useless for navigating at a glance. It matches what main shows since #1905: commits whose only non-success checks are cancelled Experimental runs render as failed. So the fix is B alone: skip the heavy jobs, never cancel them.

  6. removed
    wipWork in flight - a covering PR is open or an agent is actively on it
    on Oct 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    ciPull requests that change CI or workflow configuration (ci: subject prefix)designA design or decision issue: a pattern being decided rather than a defect or a request

    Projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions