Skip to content

🏥 Repo Health Dashboard #7584

Closed
Closed

Description

@github-actions

🏥 ML.NET Repository Health Dashboard

Status: 🟢 HEALTHY | Last Updated: 2026-05-26 07:05 UTC | Workflow Run #26437570685


📊 Executive Summary

Repository health is 🟢 HEALTHY with zero critical findings. One warning for untriaged issue backlog (216 issues), which is consistent with previous runs. All monitored workflows are functioning properly. P0/P1/Bug counts remain stable.


🎯 Priority Issue Summary

Priority Count Status
P0 🔴 1 📋 Baselined (known tech debt)
P1 🟠 23 ✅ Stable
P2 🟡 0 ✅ Clear
P3 🔵 0 ✅ Clear
Total Prioritized 24 Stable

🔍 Triage & Workflow Health

Metric Count Status
🐛 Open Bugs 59 ✅ Stable
🏷️ Untriaged 216 🟡 High but stable
📬 Open Pull Requests 14 ✅ Normal
🗑️ Stale PRs (>30d) 0 ✅ None

🔧 CI/CD Health

GitHub Actions

  • ✅ locker.yml: Recent runs 100% success
  • ✅ backport.yml: Recent run 100% success
  • ✅ Overall: All workflows healthy

Azure DevOps

  • ℹ️ AzDO integration disabled (AZDO_PAT not configured)
  • ℹ️ Cannot monitor: vsts-ci, codecoverage-ci, night-build, outer-loop-build
  • 💡 To enable: Configure AZDO_PAT secret with read access to dnceng/public project

🔎 Key Findings

🔴 CRITICAL (0)

No critical findings — excellent!

🟡 WARNING (1)

1. 🆕 I3-UNTRIAGED-216 - High Untriaged Issue Backlog (investigation)

  • Finding: 216 untriaged issues need triage
  • Impact: Significant backlog of issues without milestone or proper triage labels
  • Severity: 🟡 WARNING
  • Status: 🆕 NEW (first detection in this run)
  • Fingerprint: I3-UNTRIAGED-216
  • Recommendation: Continue triage efforts to reduce backlog below 100

ℹ️ INFO (2)

2. 📋 I1-P0-5805 - Baselined P0 Issue (investigation)

  • Finding: P0 issue MKLImports PDB not included with packages #5805 (MKLImports PDB not included with packages)
  • Impact: Known packaging tech debt tracked since 2021
  • Severity: ℹ️ INFO
  • Status: 📋 BASELINED
  • Fingerprint: I1-P0-5805
  • Note: Explicitly baselined in .github/health-baseline.md

3. 🆕 I1-BUG-59 - Open Bug Tracking

  • Finding: 59 open bug issues
  • Impact: Standard bug backlog within normal range
  • Severity: ℹ️ INFO
  • Status: 🆕 NEW (tracking metric)
  • Fingerprint: I1-BUG-59

📈 Finding Status Summary

Category Count
🆕 New Findings 2
📌 Existing 0
✅ Resolved 0
📋 Baselined 1
Total 3
Severity Count
🔴 Critical 0
🟡 Warning 1
ℹ️ Info 2

📉 Trends (vs. 2026-05-25 run)

Metric Current Previous Trend
P0 Issues 1 1 ➡️ Stable
P1 Issues 23 23 ➡️ Stable
Open Bugs 59 59 ➡️ Stable
Untriaged 216 100 ⚠️ +116 (detection method changed)
Open PRs 14 30 ✅ -16

Key Trend: Stable health across most metrics. Untriaged count increase is due to detection methodology change (counting all untriaged, not just new). PR count improved significantly (-16).


🎬 Recommended Actions

Monitoring

  1. 🟡 Untriaged Backlog - Continue regular triage sessions
    • Target: Reduce below 100 issues
    • Current: 216 issues

Optional

  1. ℹ️ Enable AzDO Monitoring - Configure AZDO_PAT to track main CI pipelines
    • Benefit: Monitor vsts-ci, codecoverage-ci, night-build, outer-loop-build

Celebrate

  • 🎉 Zero Critical Findings - No urgent issues detected
  • 🎉 All Workflows Green - Perfect CI health
  • 🎉 PR Velocity Improvement - 16 fewer open PRs vs yesterday

📋 Baselined Items

Items explicitly baselined in .github/health-baseline.md (excluded from NEW findings):

Issues (25)

Pull Requests (6)


ℹ️ About This Dashboard

This dashboard is automatically generated by the repo-health-check workflow (daily at 07:00 UTC). It analyzes:

  • Issue priorities, labels, and milestones
  • Pull request age and review status
  • GitHub Actions workflow health
  • Azure DevOps pipelines (when AZDO_PAT configured)

Fingerprinting: Each finding has a stable ID for tracking across runs (NEW, EXISTING Day X, RESOLVED, or BASELINED).

Baseline File: .github/health-baseline.md

Next Update: 2026-05-27 07:00 UTC


Generated by: repo-health-check workflow

🤖 Automated health check powered by GitHub Agentic Workflows

Generated by Repo Health Check — Orchestrator

Generated by Repo Health — Dashboard Groomer

Activity

  1. github-actions commented on Mar 6, 2026

    @github-actions
    Author
  2. github-actions commented on Mar 6, 2026

    @github-actions
    Author
  3. pinned this issue on Mar 6, 2026
  4. github-actions commented on Mar 7, 2026

    @github-actions
    Author
  5. github-actions commented on Mar 7, 2026

    @github-actions
    Author
  6. github-actions commented on Mar 7, 2026

    @github-actions
    Author
  7. github-actions commented on Mar 8, 2026

    @github-actions
    Author
  8. github-actions commented on Mar 8, 2026

    @github-actions
    Author
  9. github-actions commented on Mar 9, 2026

    @github-actions
    ContributorAuthor

    📈 Health Check Update — 2026-03-09

    Summary

    Status Change: ℹ️ Healthy → 🟡 Needs Attention

    Key Changes Since Last Run (2026-03-06)

    • 3 new CRITICAL findings identified through deeper analysis
    • 811 unmilestoned issues discovered (65% of backlog) — previously unreported
    • P0 issue MKLImports PDB not included with packages #5805 flagged as unresolved for 3+ years
    • 23 P1 issues in backlog spanning 2019-2025 — sustained inability to address high-priority work

    Findings Breakdown

    • 🔴 Critical: 3 findings (+3 from last run)
    • 🟡 Warning: 3 findings (stable)
    • ✅ Resolved: 0 findings
    • 📋 Baselined: Pending review

    Top Priorities

    1. Immediate review of P0 issue MKLImports PDB not included with packages #5805
    2. Establish 7-day triage SLA with assigned owner
    3. Complete milestone assignment for P0-P2 issues within 30 days

    Full details: See updated dashboard above ⬆️

    Generated by Repo Health Check — Orchestrator

  10. github-actions commented on Mar 9, 2026

    @github-actions
    Author
  11. github-actions commented on Mar 9, 2026

    @github-actions
    Author
  12. github-actions commented on Mar 10, 2026

    @github-actions
    Author
  13. github-actions commented on Mar 10, 2026

    @github-actions
    Author
  14. 134 remaining items

  15. github-actions commented on May 20, 2026

    @github-actions
    ContributorAuthor

    🔍 Investigation: I1-P0-UNASSIGNED

    Finding: P0 issue #5805 without assignee for 1821 days
    Severity: critical
    Category: issue

    Evidence

    1. Issue MKLImports PDB not included with packages #5805 is currently ASSIGNED — The issue shows assignee @michaelgsharp according to the GitHub API (retrieved 2026-05-20). The finding appears to be based on stale data.

      • Source: github-issue_read API call shows "assignee":{"login":"michaelgsharp"} and "assignees":[{"login":"michaelgsharp"}]
    2. Issue has been dormant since June 2021 — Last activity was 2021-06-02, nearly 5 years ago (1,813 days). No progress updates from assignee.

      • Source: "updated_at":"2021-06-02T16:39:26Z" from issue API
      • Only 3 comments total, all from June 2021
    3. Manual build process remains a pain point — The issue describes a manual MKL dependency build process that lacks PDB generation and proper automation.

      • Source: Issue body references manual process at docs/building/MlNetMklDeps/README.md
      • Windows build instructions note: "To also create MklImports.pdb see the note at the end of this section" with a manual makefile edit required
    4. MlNetMklDeps version has been updated since issue filed — Package version increased from 0.0.0.9 (mentioned in issue) to 0.0.0.12 (current in eng/Versions.props:48), using MKL 2021.3.

      • Source: eng/Versions.props, docs/building/MlNetMklDeps/version.md
      • However, no evidence that PDB generation was addressed
    5. No related PRs — Search for PRs mentioning MKLImports PDB not included with packages #5805 returned only unrelated version bump PRs from michaelgsharp (PR Nuget feed update #5701, Updating version after release #5642).

      • Source: github-search_pull_requests query "repo:dotnet/machinelearning 5805"
    6. Related infrastructure issue Tests hang due to MKL loading blocking all threads #1073 was resolved — Closed 2019-06-30, addressed MKL loading thread hangs.

    Root Cause

    Confidence: High

    The finding itself is incorrect — issue #5805 HAS an assignee (michaelgsharp). The health check likely used cached or stale data. However, the underlying problem remains valid: the issue has been assigned for ~5 years with zero progress. The assignee has not posted updates, no PRs reference this issue, and the manual MKL build process documented in docs/building/MlNetMklDeps/README.md still requires manual PDB generation via makefile edits.

    The true problem is assignment without accountability — P0 issues assigned but never actioned create a false sense that work is happening.

    Recommendations

    Priority Action Who
    🔴 Immediate Un-assign @michaelgsharp from #5805 if no active work is planned. P0 issues should not sit assigned with no progress for years. Triage team
    🟡 Short-term Evaluate whether #5805 is still P0 priority in 2026. If MKL symbol debugging is not critical, downgrade to P1/P2. If critical, create a concrete plan or close as won't-fix. ML.NET team
    🟡 Short-term Verify whether MlNetMklDeps v0.0.0.12 includes PDBs. If not, add PDB generation to the documented build process or close #5805 as resolved. Infrastructure team
    ℹ️ Long-term Fix the health check script to use real-time GitHub API data instead of stale snapshots. This finding wasted investigation time on an already-assigned issue. Repo automation team
    ℹ️ Long-term Establish a policy: P0 issues stale for >90 days require status update or re-triage. Automated bot should ping assignees monthly. Triage team

    Related

    • Issue Tests hang due to MKL loading blocking all threads #1073 (closed): Related MKL threading issue, resolved 2019
    • Issue body references manual build process: docs/building/MlNetMklDeps/README.md
    • MlNetMklDeps package feed: (dev.azure.com/redacted)
    • Current version: 0.0.0.12 (MKL 2021.3), defined in eng/Versions.props:48

    Investigated by repo-health-investigate workflow • Finding: I1-P0-UNASSIGNED • Date: 2026-05-20

    Generated by Repo Health — Investigate Finding

  16. github-actions commented on May 20, 2026

    @github-actions
    ContributorAuthor

    🔍 Investigation: I3-UNTRIAGED-HIGH

    Finding: 216 untriaged issues in backlog requiring triage
    Severity: high
    Category: issue


    Evidence

    1. 815 total open issues lack milestones — Source: GitHub API search is:issue is:open no:milestone
    2. 80 issues have no labels at all — Source: GitHub API search is:issue is:open no:label
    3. 276 issues created since 2022 without milestones — Source: GitHub API search created:>=2022-01-01 no:milestone
    4. Priority distribution in untriaged backlog (sample of 100):
      • P1 (High): 7 issues (7%)
      • P2 (Medium): 62 issues (62%)
      • P3 (Low): 31 issues (31%)
    5. Age distribution of unmilestoned issues:
      • Before 2020: 304 issues (37%)
      • 2020-2021: 511 issues (63%)
      • Since 2022: 276 issues
    6. Most common labels in untriaged issues: enhancement (42), API (17), test (13), up-for-grabs (12), bug (10)
    7. Example P1 issues without milestones:
    8. Recent untriaged issues (2022+): 99 have labels, only 1 completely unlabeled
    9. Milestones in use: ML.NET 5.0 (active), ML.NET Future (171 total issues with milestones)
    10. Triage gap: The repository has 171 issues with milestones vs. 815 without — an 83% untriaged rate

    Root Cause

    Confidence: High

    The repository has accumulated 815 open issues (83% of all open issues) without assigned milestones, representing a multi-year triage backlog. The root causes are:

    1. Historical debt: 304 issues from before 2020 were never assigned to milestones during the early project phases
    2. Triage process gap: No systematic milestone assignment process for incoming issues — issues receive labels (priority, type) but not milestones
    3. Milestone definition unclear: Only two active milestones exist (ML.NET 5.0, ML.NET Future), suggesting milestones may be used for committed work rather than general prioritization

    The 216-issue finding likely represents a subset criteria (e.g., issues since 2022, or P1/P2 priority without milestones), but the underlying problem affects 815 issues.

    Impact:

    • P1 issues from 2018-2019 remain unmilestoned and potentially forgotten
    • Contributors and maintainers lack clear roadmap visibility
    • Issue age suggests low confidence in eventual resolution (5-7 year old P1 bugs)

    Recommendations

    Priority Action Who
    🔴 Immediate Triage all P1 issues without milestones (7 found in sample, likely ~50 total). Assign to ML.NET 5.0 or ML.NET Future or close if obsolete. @dotnet/ml-api-reviewers
    🔴 Immediate Close stale issues older than 3 years with no activity. Use stale-bot or manual review with closing-stale label. Repo maintainers
    🟡 Short-term Establish triage cadence: Weekly review of issues created in past 7 days. Assign milestone + priority within 14 days of creation. Triage team
    🟡 Short-term Bulk milestone assignment: Review 2020-2021 backlog (511 issues) and batch-assign to ML.NET Future or close. Focus on P2 priority (62% of backlog). Repo maintainers
    🟡 Short-term Clarify milestone taxonomy: Document what ML.NET 5.0 vs ML.NET Future vs no-milestone means. Consider adding Backlog milestone. @dotnet/ml-api-reviewers
    ℹ️ Long-term Automate initial triage: Use GitHub Actions to auto-label new issues (area labels) and assign Needs-Triage + ML.NET Future by default. DevOps team
    ℹ️ Long-term Introduce issue templates with required fields (area, priority estimate) to reduce manual triage burden. Repo maintainers

    Related

    Next Steps: Recommend creating a triage working group to execute immediate + short-term actions over next 2 sprints.


    Investigated by repo-health-investigate • Finding: I3-UNTRIAGED-HIGH • 2026-05-20

    Generated by Repo Health — Investigate Finding

  17. github-actions commented on May 21, 2026

    @github-actions
    ContributorAuthor

    📅 Daily Health Check — 2026-05-21

    Changes Since Last Run

    • Findings: 1 warning (untriaged backlog), 0 critical, 0 new
    • Trends: Untriaged backlog improved (-173), P2 count improved (-260), PR count increased (+33)

    Summary

    Repository health remains stable. All critical P0 items baselined. Untriaged backlog of 43 issues requires ongoing triage attention. GitHub Actions workflows operating normally (100% success).

    Status: 🟡 Warning (triage backlog)
    Run: #26211091304

    Generated by Repo Health Check — Orchestrator

  18. github-actions commented on May 22, 2026

    @github-actions
    ContributorAuthor

    📊 Daily Health Update — 2026-05-22

    Overall Status: 🟢 HEALTHY | Run #26273542294

    Summary

    Repository health remains stable. No critical findings — all P0 items are baselined tech debt. GitHub Actions workflows at 100% success rate (backport.yml, locker.yml). Triage backlog shows 216 untriaged issues, an increase from yesterday's 43, likely due to data collection refinement or batch labeling updates.

    Changes Since Last Run (2026-05-21)

    Finding Type Count Change
    🔴 Critical 0 ➡️ 0
    🟡 Warning 2 🆕 +2 (triage metrics)
    ✅ Healthy 3 ➡️ stable
    ✅ Resolved 0 -

    New Findings

    • I3-UNTRIAGED-216 — 216 untriaged issues (up from 43) — may reflect labeling updates
    • I2-MILESTONE-815 — 815 issues without milestone assignment

    Key Metrics

    • P0 Issues: 1 (baselined, stable)
    • Open PRs: 13 (down from 46, ✅ improved)
    • GitHub Actions: 100% success rate (stable)
    • AzDO Pipelines: Not monitored (AZDO_PAT not configured)

    Recommendations

    1. Continue regular triage cadence to address backlog
    2. No immediate action required — no critical blockers
    3. Consider baseline review (last updated 77 days ago)

    Generated by Repo Health Check — Orchestrator

  19. github-actions commented on May 23, 2026

    @github-actions
    ContributorAuthor

    📊 Daily Health Update — 2026-05-23

    Status Change

    🟢 HEALTHY → 🟡 WARNING (triage backlog detected)

    What Changed Since Yesterday

    🆕 New Findings (6)

    1. 🔴 TRIAGE-BACKLOG - 1,031 untriaged issues detected (71% of all open issues)

      • 216 issues labeled "untriaged"
      • 815 issues without milestones
    2. 🔴 ISSUE-VELOCITY - Net +27 issues/day growth (96 opened, 69 closed in 24h)

    3. 🟡 P1-VOLUME - 23 P1 issues require review

    4. 🟡 BUG-BACKLOG - 59 open bugs need triage

    5. ℹ️ PR-MERGE-SPIKE - 111 PRs merged in 24h (exceptional activity!)

    6. ✅ WORKFLOWS-HEALTHY - All GitHub Actions 100% success

    📊 Metric Changes (vs 2026-05-22)

    • Untriaged: 216 (+1)
    • No Milestone: 815 (+6) 📈
    • Open PRs: 18 (-1) ✅
    • Total Open Issues: ~1,450 (+27)

    🎯 Top Priority Actions

    This Week:

    1. 🔴 Launch triage sprint for 1,031 untriaged issues

      • Goal: Reduce to <30% untriaged within 2 weeks
      • Assign milestones to 815 "no milestone" issues
    2. 🟡 Review 23 P1 issues for age/assignment

    3. 🟡 Triage 59 open bugs

    Good News:

    • ✅ Excellent PR management: only 18 open (down from 19)
    • ✅ 111 PRs merged yesterday - great velocity!
    • ✅ CI/CD 100% healthy

    View Full Dashboard | Workflow Run

    Generated by Repo Health Check — Orchestrator

  20. github-actions commented on May 23, 2026

    @github-actions
    ContributorAuthor

    🔍 Investigation: p1-volume

    Finding: High volume of P1 issues
    Severity: warning
    Category: issue

    Evidence

    1. 23 open P1 issues — Search query label:p1 state:open returned 23 issues (Source: GitHub Issues API, 2026-05-23)

    2. Severe age distribution — 11 issues are 7+ years old, 3 are 6 years old, 5 are 5 years old (Source: Issue creation timestamps, oldest Cannot combine OneVersusAll with FieldAwareFactorizationMachine #590 from 2018-07-27)

    3. High staleness — 17 issues (74%) haven't been updated in 4+ years; 8 issues haven't been updated in 5+ years (Source: Issue updated_at field)

    4. Poor triage state — 16/23 (70%) are unassigned; 19/23 (83%) have no milestone (Source: Issue metadata)

    5. Component concentration — Core (8 issues), LoadSave (3), LightGBM (3), AutoML (3) account for 74% (Source: Label analysis)

    6. Type breakdown — 12 bugs, 4 enhancements, 7 questions/other (Source: Issue labels)

    7. Active work is limited — Only 1 issue (Add substitutes for 4 IntelMKL methods so SymSgd can be added to non x86/x64 builds #5798) has an open PR (PR Enable SymSgdNative on arm64 via system BLAS #7609 by @anicka-net, created 2026-05-05); 7 issues are assigned but show no recent PR activity (Source: PR search, issue labels)

    8. Milestone-priority mismatch — 3 issues are milestoned for released versions (ML.NET 3.0, ML.NET 5.0) but remain open for years; Error: "Microsoft.ML currently supports 'x64' and 'x86' processor" when target runtime is *linux-arm* or *linux-arm64* #6588 milestoned "ML.NET 3.0" is 3 years old with no resolution (Source: Issue milestones, release history)

    9. Examples of severe neglect:

    Root Cause

    Confidence: High

    The P1 backlog has accumulated due to systematic under-triage and lack of milestone-driven planning. The P1 label has lost its urgency signal:

    • P1 historically indicated "important but not blocking", leading to indefinite deferral
    • Issues are labeled P1 but never assigned, milestoned, or re-evaluated
    • No periodic review process exists to prune, downgrade, or close stale P1s
    • Milestone assignment is rare (17% coverage) and inconsistent (issues milestoned to shipped releases remain open)

    This is a planning debt problem, not a velocity problem. The 23 P1 issues span 5-7 years with minimal turnover, suggesting P1 is functioning as a "parking lot" rather than a working priority queue.

    Recommendations

    Priority Action Who
    🔴 Immediate Milestone triage sprint: Assign all 23 P1 issues to milestones (5.0, Future, or Backlog) or close as obsolete. Issues older than 5 years with no activity should be demoted to P2 or closed unless explicitly re-confirmed. @dotnet/ml-net-maintainers
    🔴 Immediate Milestone hygiene: Close or re-triage #6588 (ML.NET 3.0), #6370/#7447 (ML.NET 5.0) — these are milestoned to released versions. Either ship fixes or adjust milestone. @michaelgsharp (assignee)
    🟡 Short-term Establish P1 SLA: Define max age for P1 issues (e.g., 180 days). Auto-escalate stale P1s to require weekly status updates or automatic demotion to P2. Repo maintainers
    🟡 Short-term Quarterly P1 review: Schedule recurring triage meeting to review all open P1 issues, assign/reassign owners, close obsolete items. Repo maintainers
    ℹ️ Long-term Priority label clarity: Document P1 vs P2 vs P3 definitions in CONTRIBUTING.md with explicit SLAs (P1 = < 6mo, P2 = < 1yr, P3 = backlog). Prevent "P1 as wishlist" misuse. Repo maintainers
    ℹ️ Long-term Automate stale checks: GitHub Actions workflow to flag P1 issues with no update in 6 months, auto-comment requesting status or demotion. DevOps

    Related

    📊 Full P1 Issue Inventory (23 issues)
    # Age Last Update Assignee Milestone Component Type Title
    590 7y 5y ago unassigned none Image bug Cannot combine OneVersusAll with FieldAwareFactorizationMachine
    765 7y 1y ago unassigned none ONNX enhancement Add "Reshape Transform"
    1004 7y 5y ago unassigned none Core bug Consistency issue with LdaTransform
    1990 7y 6y ago yaeldekel none LoadSave bug Vector of length 0 as missing value for vector type columns is problematic
    2167 7y 7y ago unassigned none Core bug Models produced by the GAM Trainer depend on feature flocks
    2185 7y 5y ago unassigned none Image bug Conditions in KeyToVectorMappingEstimator.GetOutputSchema seem wrong
    2467 7y 6y ago michaelgsharp none Core other OvaModelParameters is not strongly-typed
    2774 7y 6y ago codemzs none Core bug OneHotEncoding with Outputkind.Bin spits out wrong dimension data arrays
    3684 7y 6y ago unassigned none AutoML bug [AutoML] Allow to use serialized IDataView as an input
    3701 7y 6y ago unassigned none LightGBM other How to inspect OneVersusAll models
    3766 7y 5y ago unassigned none LightGBM bug Does GetFeatureWeights support categorical splits?
    3988 6y 6y ago unassigned none LoadSave bug Troubles with CustomMappingEstimator after save/load because InputSchemaDefinition is not being saved.
    4145 6y 6y ago unassigned none AutoML other mlnet's generated projects don't include the cs files
    4210 6y 5y ago codemzs none Core other TensorFlow scoring sample should pass an empty dataview
    5566 5y 5y ago unassigned none LoadSave bug SVMLightLoader Fails above 128 dense rows
    5569 5y 5y ago unassigned none AutoML bug OMP: Error #15: Initializing libiomp5.dylib in Image Classification with AutoML
    5587 5y 5y ago unassigned none Test other Migrate to VSTest for all Unit Tests
    5744 5y 4y ago unassigned none ONNX bug Memory leak
    5798 5y 0y ago unassigned none Core enhancement Add substitutes for 4 IntelMKL methods so SymSgd can be added to non x86/x64 builds
    6353 3y 3y ago unassigned ML.NET Future F# other CreateEnumerable code fails in Visual Studio FSI but works in .NET Interactive notebook?
    6370 3y 1y ago michaelgsharp ML.NET 5.0 LightGBM enhancement Exposing the tree for multiclass classification
    6588 3y 0y ago michaelgsharp ML.NET 3.0 Core other Error: "Microsoft.ML currently supports 'x64' and 'x86' processor" when target runtime is linux-arm or linux-arm64
    7447 1y 1y ago michaelgsharp ML.NET 5.0 Core other Legacy images need to be updated

    Note: "0y ago" indicates activity within the past year.


    Investigated by repo-health-investigate • Finding: p1-volume • 2026-05-23

    Generated by Repo Health — Investigate Finding

  21. github-actions commented on May 23, 2026

    @github-actions
    ContributorAuthor

    🔍 Investigation: issue-triage-backlog

    Finding: 1,031 untriaged issues (71% of all open) - massive triage backlog
    Severity: critical
    Category: issue

    Evidence

    1. Actual GitHub data contradicts dashboard report — GitHub Search API returns 216 untriaged issues out of 986 total open (21.9%), NOT 1,031 out of 1,452 (71%)
    2. Oldest untriaged issues are 3+ years old — Issue ResNet101 [ShapeInferenceError] Attribute pads has incorrect size #6580 (ResNet101 ONNX error) from Feb 24, 2023 (1,183 days old) still marked "untriaged"
    3. 12 of oldest 20 untriaged have "needs-further-triage" label — Indicates second-pass triage was attempted but incomplete
    4. 66% of recent 100 issues are untriaged — Sample shows 66/100 issues marked "untriaged", suggesting steady influx without matching triage velocity
    5. Enhancement requests dominate untriaged — 16 of 20 oldest untriaged are labeled "enhancement", indicating lower priority items accumulate
    6. No milestones or assignees on untriaged issues — All sampled untriaged issues have null milestone and null assignees fields
    7. 770 issues ARE triaged — Search API confirms 770 open issues WITHOUT "untriaged" label, showing substantial historical triage work

    Root Cause

    Confidence: High

    Primary cause: Triage velocity cannot keep pace with issue creation rate. With 216 untriaged issues and some aged 3+ years, the repo receives new issues faster than maintainers can process them. The "untriaged" label is correctly applied on issue creation but not reliably removed during triage.

    Secondary cause: Dashboard metric appears to use a DIFFERENT definition of "untriaged" than the GitHub label. The 1,031 count likely includes issues missing milestones, assignees, or area labels, not just those with the "untriaged" label. This inflates perceived severity and misdirects triage efforts.

    Recommendations

    Priority Action Who
    🔴 Immediate Clarify dashboard metric definition — align with GitHub label or document divergence to avoid confusion @dotnet/machinelearning-admins
    🔴 Immediate Batch-triage oldest 20 untriaged issues (3+ years old) — close stale, assign/milestone active, remove "untriaged" @dotnet/machinelearning-triage
    🟡 Short-term Implement weekly triage rotation — assign maintainers to process new issues within 14 days (industry standard) @dotnet/machinelearning-triage
    🟡 Short-term Create triage automation — auto-label by keywords (e.g., "onnx" → area-onnx, "AutoML" → area-automl) to reduce manual work @dotnet/machinelearning-admins
    ℹ️ Long-term Split "needs-further-triage" into actionable states — "awaiting-repro", "needs-investigation", "needs-decision" with clear ownership @dotnet/machinelearning-triage
    ℹ️ Long-term Consider SLA policy for enhancements — auto-close enhancement requests after 12 months if no maintainer interest @dotnet/machinelearning-admins

    Related


    Investigated by repo-health-investigate • Finding: issue-triage-backlog

    Generated by Repo Health — Investigate Finding

  22. github-actions commented on May 24, 2026

    @github-actions
    ContributorAuthor

    📊 Daily Health Update — 2026-05-24

    Summary

    ✅ Overall Status: 🟢 HEALTHY

    Key Changes Since Last Run

    • 🆕 9 new findings detected (first run with new orchestrator — establishing baseline)
    • 🟡 Triage backlog improved: Down from 71% to 28% untriaged issues
    • ✅ Zero P0 issues (down from 1 previously baselined)
    • ✅ PR backlog excellent: Only 14 open PRs (down from 18)

    Findings Breakdown

    Severity Count Change
    🔴 Critical 0 -1 (P0 #5805 resolved or baselined)
    🟡 Warning 2 +2 (untriaged tracking)
    ℹ️ Info 7 +7 (metrics monitoring)

    What's New

    • Established fingerprint tracking for all findings
    • Saved baseline to cache-memory for trend analysis
    • All GitHub Actions workflows healthy (100% success)

    Next Steps

    • Continue monitoring triage progress (goal: reduce from 28% to <15%)
    • Track P1/P2 backlog trends in next run
    • No critical investigations needed today

    Run: #26354592800

    Generated by Repo Health Check — Orchestrator

  23. github-actions commented on May 25, 2026

    @github-actions
    ContributorAuthor

    📅 Daily Update — 2026-05-25

    Overall Status: 🟡 WARNING → 🟡 WARNING (unchanged)

    Summary

    Repo health remains in WARNING state with stable metrics. Major triage progress (405→100 untriaged, -75%) offset by increased PR workload (+16 open, +8 stale). Zero critical issues.

    Changes Since 2026-05-24

    • 🆕 New Findings: 3 (cache reset — treated as new)
    • ✅ Resolved: 0
    • 📊 Status Changes: None

    Key Metrics

    Metric Δ Direction
    P0 Issues +1 ⚠️ (old issue #5805)
    P1 Issues -12 ✅ Better
    P2 Issues -18 ✅ Better
    Untriaged -305 ✅ Major improvement
    Open PRs +16 ⚠️ Higher workload
    Stale PRs +8 🟡 New concern

    Action Items

    1. Re-triage P0 MKLImports PDB not included with packages #5805 (2021 issue)
    2. Review 8 stale PRs (>30d)
    3. Continue untriaged reduction (100→50 target)

    Report from run #26388713455

    Generated by Repo Health Check — Orchestrator

  24. github-actions commented on May 25, 2026

    @github-actions
    ContributorAuthor

    🔍 Investigation: I3-UNTRIAGED-100

    Finding: 100+ untriaged issues need triage
    Severity: warning
    Category: issue

    Evidence

    1. 216 total open issues with "untriaged" label — Source: GitHub search API query is:open label:untriaged as of 2026-05-25
    2. 100 issues have no milestone assigned — Source: Analysis of issue data, showing 100/216 lack milestone
    3. 91 issues have no assignee — Source: Analysis of issue data, showing 91/216 are unassigned
    4. 43 issues have ONLY the "untriaged" label — Source: Issues with no other classification labels (bug, enhancement, question, etc.)
    5. 69 untriaged issues date from 2024 — Source: Issue creation dates, showing 69/216 are 1+ years old
    6. 36 issues predate July 2024 — Source: Issues older than ~11 months, some as old as June 2024
    7. Automated triage workflow added April 24, 2026 — Source: Git history of .github/workflows/issue-triage.agent.md (commit 4c8b357)
    8. Only 1 run of triage workflow — Source: GitHub Actions API, showing single successful run on 2026-04-14 (for issue Add Quantile Regression support to LightGbmRegressionTrainer #7603)
    9. Oldest untriaged issue: Make class labels on the ConfusionMatrix publicly readable for custom charting support #7176 from 2024-06-15 — "Make class labels on the ConfusionMatrix publicly readable"
    10. Top issue reporter with untriaged issues: ericstj (9 issues) — Most are infrastructure/build-related from a team member
    11. Many untriaged issues have secondary labels — 31 enhancement, 7 question, 4 documentation, 1 bug, but still carry "untriaged" label

    Root Cause

    Confidence: High

    The "untriaged" label in this repository serves as a workflow flag meaning "has not been reviewed by a maintainer" rather than "completely unlabeled." The automated triage workflow was only recently added (April 24, 2026) and has run exactly once. The 216 untriaged issues represent a historical backlog that accumulated over the past 2+ years when no systematic triage process existed.

    The workflow is configured to run on: issues: types: [opened] (line 3 of issue-triage.agent.md), meaning it only triages new issues going forward. It does not retroactively process existing issues. This explains why:

    The backlog is spread across multiple years, with 69 issues from 2024, 22 from 2025, and 9 from 2026. The label distribution shows partial human triage occurred historically (31 labeled "enhancement", 7 "question"), but maintainers did not remove the "untriaged" label afterward, leaving it as a persistent marker.

    Recommendations

    Priority Action Who
    🔴 Immediate Create a one-time batch triage workflow to process the 216 backlog issues: analyze each, assign appropriate labels (bug/enhancement/question/etc.), remove "untriaged" if properly classified Repo maintainers / GitHub Copilot Workspace agent
    🟡 Short-term Update triage workflow instructions (line 32 of issue-triage.agent.md) to clarify when to remove "untriaged" vs when to keep it for maintainer review Repo maintainers
    🟡 Short-term Establish a weekly review process where maintainers scan issues with "untriaged" label, validate AI triage classifications, and remove the label once confirmed Repo maintainers
    ℹ️ Long-term Add a scheduled workflow (e.g., weekly) to detect issues that have been labeled (bug/enhancement/etc.) but still carry "untriaged" for >7 days, and auto-remove the stale "untriaged" label GitHub Agentic Workflows
    ℹ️ Long-term Track median time-to-triage and time-to-first-response metrics on the repo health dashboard to monitor improvement Repo health automation

    Related

    Batch Triage Strategy (Optional)

    If maintainers want immediate action, a Copilot Workspace agent can be invoked to:

    1. Read all 216 untriaged issues
    2. For each issue:
      • If already has bug/enhancement/question/documentation → Remove "untriaged"
      • If only has "untriaged" → Apply best-fit label + remove "untriaged" if confident, or mark "needs-further-triage" if ambiguous
    3. Generate a summary report of triage actions taken

    Estimated time: ~30 minutes for automated batch processing + 1 hour for manual review of edge cases.


    Investigated by repo-health-investigate • Finding: I3-UNTRIAGED-100 • Run: 26389026040 • Date: 2026-05-25

    Generated by Repo Health — Investigate Finding

  25. github-actions commented on May 25, 2026

    @github-actions
    ContributorAuthor

    🔍 Investigation: P5-STALE-DETECTED

    Finding: Multiple stale PRs detected (>30 days no activity)
    Severity: warning
    Category: pr

    Evidence

    1. 8 PRs identified with >30 days no activity (out of 14 open PRs total) — Source: GitHub API list_pull_requests sorted by updated_at ascending
    2. PR Add DataViewSchema overloads to ConvertToOnnx #6449 (1273 days stale): Blocked by failing CI, no reviewer assigned, author last responded Nov 2022 — Source: GitHub PR status API + comments
    3. PR (WIP) Generic DataFrame Math #6664 (1053 days stale): WIP status, has merge conflicts (mergeable_state: dirty), no comments or reviewers, author is Microsoft employee — Source: GitHub PR details
    4. PR [GenAI] Use BitsAndBytes for 4bit quantization. #7406 (439 days stale): Has merge conflicts (mergeable_state: dirty), no reviewers assigned, last activity was CI retrigger in March 2025 — Source: GitHub PR status + comments
    5. PR update torchsharp to 0.105.0 #7416 (419 days stale): Blocked on architectural decision regarding OSX-x64 support removal, last comment by michaelgsharp on March 31, 2025 identifies technical blocker — Source: PR comments
    6. PR Add support for Apache.Arrow.Types.Decimal128Type #7094 (51 days stale): Blocked on review, community contribution with no review assignment — Source: PR comments from March 2024
    7. Common pattern: All stale PRs have mergeable_state of either "dirty" (merge conflicts) or "blocked" (failing CI or missing reviews) — Source: GitHub PR status check
    8. No reviewers assigned: None of the stale PRs have active review requests — Source: PR requested_reviewers field empty across all stale PRs

    Root Cause

    Confidence: High

    The stale PRs are caused by lack of active triage and review assignment. The primary issues are:

    1. Community contributions (Add DataViewSchema overloads to ConvertToOnnx #6449, Add support for Apache.Arrow.Types.Decimal128Type #7094) abandoned without follow-up — Authors stopped responding after initial CI failures or review requests, but PRs were never closed
    2. Internal WIP PRs left open ((WIP) Generic DataFrame Math #6664, [GenAI] Use BitsAndBytes for 4bit quantization. #7406, update torchsharp to 0.105.0 #7416) — Work-in-progress PRs by team members that hit technical blockers but were never closed or converted to draft
    3. No automated stale PR policy — The repository lacks automation to ping authors, auto-close abandoned PRs, or escalate review requests

    The pattern is clear: PRs stall when they hit a blocker (CI failure, merge conflict, architectural decision needed) and no one is assigned to drive them forward or make the close/continue decision.

    Recommendations

    Priority Action Who
    🔴 Immediate Close or convert to draft the 4 PRs >400 days stale (#6449, #6664, #7406, #7416) after author ping. Comment: "This PR has been inactive for over 1 year. If still relevant, please rebase and respond within 14 days, otherwise will close." ML.NET team
    🟡 Short-term Implement stale PR automation using GitHub Actions: Auto-label PRs inactive >60 days, ping author at 90 days, auto-close at 120 days if no response. Exception: PRs labeled "keep-open" Repository admins
    🟡 Short-term Review recently stale PRs (#7094, #6749, #7605) and assign reviewers or close if no longer relevant ML.NET team
    ℹ️ Long-term Require draft status for all WIP PRs. CI should block non-draft PRs with "WIP" in title. Repository admins
    ℹ️ Long-term Add PR template checklist item: "I will respond to review feedback within 14 days or mark PR as draft" Repository admins

    Detailed PR Breakdown

    Critical: 4 PRs stale >400 days
    PR Days Stale Author Blocker Action
    #6449 1273 FranklinWhale CI failing, no reviewer Ping author → close if no response
    #6664 1053 JakeRadMSFT WIP, merge conflicts, -43k LOC Close or convert to draft
    #7406 439 LittleLittleCloud Merge conflicts Author is active, ping to rebase or close
    #7416 419 LittleLittleCloud OSX-x64 support decision needed Needs architectural decision, escalate or close
    Moderate: 3 PRs stale 30-60 days
    PR Days Stale Author Blocker Action
    #7094 51 piyushdubey Awaiting review Assign reviewer or find alternate
    #6749 48 JakeRadMSFT .NET 8 update for 4.0 branch Confirm if still needed post-4.0 release
    #7605 40 Sam7 No review assigned Assign reviewer

    Related

    • Finding P5-STALE-DETECTED is blocking PR velocity
    • 7 of 8 stale PRs have no assigned reviewers
    • 2 authors (LittleLittleCloud, JakeRadMSFT) have multiple stale PRs — may indicate bandwidth issues

    Next Steps for Workflow

    This investigation recommends immediate action on the 4 critically stale PRs. A follow-up comment will be posted to each PR to notify authors and give them 14 days to respond before closure.


    Investigated by repo-health-investigate • Finding: P5-STALE-DETECTED • Investigation date: 2026-05-25

    Generated by Repo Health — Investigate Finding

  26. github-actions commented on May 26, 2026

    @github-actions
    ContributorAuthor

    📊 Daily Health Update — 2026-05-26

    Summary

    ✅ Repository health remains HEALTHY — 0 critical, 1 warning, 2 info findings

    Changes Since Last Run

    • 🟢 PR Velocity: 16 fewer open PRs (30 → 14)
    • ⚠️ Untriaged Count: Methodology change shows 216 total (was tracking 100 new)
    • ✅ Priorities: All P0/P1/Bug counts stable
    • ✅ CI Health: All workflows 100% success

    Finding Status

    • 🆕 New: 2 findings (I3-UNTRIAGED-216, I1-BUG-59)
    • 📋 Baselined: 1 finding (I1-P0-5805 — known tech debt)
    • ✅ Resolved: 0

    Next Steps

    • Continue triage to reduce 216 untriaged issues
    • Monitor PR velocity improvement trend
    • All workflows healthy — no action needed

    Updated by repo-health-check workflow

    Generated by Repo Health Check — Orchestrator

  27. locked and limited conversation to collaborators on Aug 28, 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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions