ArthurZ's picture
ArthurZ HF Staff
Add triage pipeline code
cc857c8 verified
|
Raw History Blame Contribute Delete
3.16 kB

Triage pipeline — huggingface/transformers, Oct 20–21 2026

Scripts used to find, classify, verify and act on open issues and PRs. All GitHub access goes through the gh CLI; code checks always read origin/main of a local checkout. Judgement calls (is it fixed? superseded? still valid?) were made by read-only Claude Code subagents using gh, git on origin/main, and relore (an index of the repo's full issue/PR history); every action was reviewed on a Go/Don't page before running.

Order of operations

step script what it does
1 sweep.py GraphQL sweep of every open issue + PR timeline (cross-refs from merged PRs, connected/duplicate events, last comments)
2 candidates.py scores "already fixed / superseded" candidates from merged-PR links and "fixed by #" / "superseded" comments
3 sweep2.py, bucket.py PR staleness sweep (base branch, mergeability, last commit, files vs main) → outdated / old-branch / philosophy buckets
4 sweep3.py open-issue sweep (labels, reactions, author role) for the pre-v5 issue pass
5 nm2_stats.py, build_nudges.py Hub stats (downloads, likes, params, license) for new-model requests; nudge-audit review page
6 build_morning.py "needs a human" page: reopen candidates, comment corrections, kept-open items
7 land_fetch.py, land_build.py classify the whole open backlog: area from touched files (PRs) or labels + title keywords (issues), kind, review status, models
8 rq_fetch.py, rq_build.py review queue: how long each PR has waited on a maintainer and why; approved-not-merged blockers (conflicts, CI, no core approval, pushed after approval)
9 run_queue.py (+ older run_cleanup*.py, run_issues.py) resumable runner: close / comment / request review / edit our comment, with GitHub rate-limit backoff, per-call timeout and an "already posted?" check so a retry never double-posts
10 exporters_edit.py in-place edit of comments that pointed to Optimum/torch.export → transformers.exporters
11 ledger.py merges every run log into triage_items.json (the data behind this Space)

Rules the verifying agents followed

  • Evidence or no close. A close must cite a merged PR/commit, a file or API on origin/main, or a linked maintainer comment. "Low value" / "no traction" alone is not evidence; such items stayed open.
  • Fixed ≠ linked issue closed. Many linked issues were closed by the stale bot while the bug is still on main; those PRs were kept as valid.
  • Duplicates: only the weaker PR of a pair is closed; the keeper gets a note, not a close.
  • New-model requests are never closed — they get a comment with Hub links and stats so someone can pick them up.
  • Maintainer-owned or maintainer-reversed items (e.g. a PR a maintainer reopened) are left to their owner.
  • Waiting on us vs. waiting on the author: the triage's own ping comments are excluded when deciding who spoke last.

Paths in the scripts point at the original working directory; adjust before re-running.