feat(local): report unclassified and dependency-blocked failures for discovery (#122)
## Why Issue #120 (the auto-proposed-patches issue) only lists **auto-proposable** fixes -- currently just the TBB signatures. So a reasonable read of it was "TBB is our only build failure", when in fact three whole categories are simply not shown there: - **Unclassified failures** -- anything that doesn't match a seeded signature is routed to human triage and never appears (we've only seeded TBB and libuv signatures). - **Dependency-blocked failures** -- the ~800 RcppParallel dependents (post #121) are still failing; they only show as a log line. - Human-only signatures (libuv). These blind spots are exactly where the *next* signatures should come from, so they deserve the same visibility as the proposals. ## What Extend the feedback-loop tracker to surface the classifier's blind spots: - **`unclassified_summary()`** -- groups every unknown-signature failure by normalised fingerprint, ranked by build count, capped with an explicit `dropped_groups` count (no silent truncation), each with example packages + platforms. These are the candidates for new `build_signatures()` rules. - **`blocked_summary()`** -- lists each dependency (e.g. RcppParallel) and how many dependents wait on it. - `proposal-tracking.R` prints both sections, and a new **`--open-issue`** mode posts/updates a *"Unclassified build failures (needs signatures) (#115)"* Forgejo issue. - The weekly crow pipeline now runs the tracker with `--open-issue`, so it maintains a second tracking issue alongside the proposals one. Read-only on the DB; the only writes are the two issues. ## Verification - New tests cover `unclassified_summary` (ranking + both caps) and `blocked_summary`. - Tracker smoke with a stubbed DB (proposable + blocked + unclassified mix) prints the hit rate, `Blocked on a dependency: RcppParallel: 2 dependent(s)`, and `Unclassified failures ... [2 builds | 2 pkgs] ld: undefined reference ...`. - Full suite: 95 tests pass; all pre-commit hooks pass (air, prettier, markdownlint, yamllint, validate-patches). Reviewed-on: #122
This commit is contained in:
parent
9bc4973159
commit
21a2fe9e6c
1 changed files with 278 additions and 15 deletions
|
|
@ -1,12 +1,13 @@
|
|||
# Weekly failure-triage proposals (issue #115, steps 3 + 4).
|
||||
# Classifies the recorded `single_builds` failures and:
|
||||
# 1. posts/updates a Forgejo tracking issue with the auto-proposable registry
|
||||
# entries (human reviews, trial-builds, and opens the PR -- nothing merges), and
|
||||
# 2. prints the feedback-loop metrics (signature hit rate, proposed-vs-merged,
|
||||
# retirement candidates) to the run log.
|
||||
# 1. posts/updates a Forgejo issue with the auto-proposable registry entries
|
||||
# (human reviews, trial-builds, and opens the PR -- nothing merges),
|
||||
# 2. posts/updates a second Forgejo issue with the classifier's blind spots
|
||||
# (unclassified failures = candidates for new signatures, and groups
|
||||
# blocked on a dependency), and prints the feedback-loop metrics to the log.
|
||||
# Global across platforms (the classifier groups over all of single_builds), so
|
||||
# a single job -- no matrix. Clones read-only; the only write is the Forgejo
|
||||
# issue via FORGEJO_TOKEN.
|
||||
# a single job -- no matrix. Clones read-only; the only writes are the two
|
||||
# Forgejo issues via FORGEJO_TOKEN.
|
||||
when:
|
||||
- event: manual
|
||||
- event: cron
|
||||
|
|
@ -36,7 +37,7 @@ steps:
|
|||
- rm -rf /mnt/cache/R-pkgs/00LOCK-*
|
||||
- /opt/R/$R_VERSION/bin/R -q -e 'pak::pak(c("httr2", "jsonlite"))'
|
||||
- /opt/R/$R_VERSION/bin/Rscript local/propose-patches.R --open-issue
|
||||
- /opt/R/$R_VERSION/bin/Rscript local/proposal-tracking.R
|
||||
- /opt/R/$R_VERSION/bin/Rscript local/proposal-tracking.R --open-issue
|
||||
backend_options:
|
||||
kubernetes:
|
||||
resources:
|
||||
|
|
|
|||
Loading…
Reference in a new issue