Repository navigation
Description
🏥 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_PATsecret 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 | |
| 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
- 🟡 Untriaged Backlog - Continue regular triage sessions
- Target: Reduce below 100 issues
- Current: 216 issues
Optional
- ℹ️ 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)
- MKLImports PDB not included with packages #5805 - MKLImports PDB not included with packages (P0, open since 2021)
- Legacy images need to be updated #7447, Error: "Microsoft.ML currently supports 'x64' and 'x86' processor" when target runtime is *linux-arm* or *linux-arm64* #6588, Exposing the tree for multiclass classification #6370, CreateEnumerable code fails in Visual Studio FSI but works in .NET Interactive notebook? #6353, Add substitutes for 4 IntelMKL methods so SymSgd can be added to non x86/x64 builds #5798, Memory leak #5744, Migrate to VSTest for all Unit Tests #5587, OMP: Error #15: Initializing libiomp5.dylib in Image Classification with AutoML #5569, SVMLightLoader Fails above 128 dense rows #5566 (P1)
- TensorFlow scoring sample should pass an empty dataview #4210, mlnet's generated projects don't include the cs files #4145, Troubles with CustomMappingEstimator after save/load because InputSchemaDefinition is not being saved. #3988, Does GetFeatureWeights support categorical splits? #3766, How to inspect OneVersusAll models #3701, [AutoML] Allow to use serialized IDataView as an input #3684, OneHotEncoding with Outputkind.Bin spits out wrong dimension data arrays #2774, OvaModelParameters is not strongly-typed #2467, Conditions in KeyToVectorMappingEstimator.GetOutputSchema seem wrong #2185, Models produced by the GAM Trainer depend on feature flocks #2167 (P1)
- Vector of length 0 as missing value for vector type columns is problematic #1990, Consistency issue with LdaTransform #1004, Add "Reshape Transform" #765, Cannot combine OneVersusAll with FieldAwareFactorizationMachine #590 (P1)
Pull Requests (6)
- update torchsharp to 0.105.0 #7416 - Update TorchSharp to 0.105.0
- [GenAI] Use BitsAndBytes for 4bit quantization. #7406 - [GenAI] Use BitsAndBytes for 4bit quantization
- Add support for Apache.Arrow.Types.Decimal128Type #7094 - Add support for Apache.Arrow.Types.Decimal128Type
- Update Projects to .NET 8 in MLNET 4.0 Branch #6749 - Update Projects to .NET 8 in MLNET 4.0 Branch
- (WIP) Generic DataFrame Math #6664 - (WIP) Generic DataFrame Math
- Add
DataViewSchemaoverloads toConvertToOnnx#6449 - Add DataViewSchema overloads to ConvertToOnnx
ℹ️ 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
github-actions commentedon Mar 6, 2026
github-actions commentedon Mar 6, 2026
github-actions commentedon Mar 7, 2026
github-actions commentedon Mar 7, 2026
github-actions commentedon Mar 7, 2026
github-actions commentedon Mar 8, 2026
github-actions commentedon Mar 8, 2026
github-actions commentedon Mar 9, 2026
📈 Health Check Update — 2026-03-09
Summary
Status Change: ℹ️ Healthy → 🟡 Needs Attention
Key Changes Since Last Run (2026-03-06)
Findings Breakdown
Top Priorities
Full details: See updated dashboard above ⬆️
github-actions commentedon Mar 9, 2026
github-actions commentedon Mar 9, 2026
github-actions commentedon Mar 10, 2026
github-actions commentedon Mar 10, 2026
134 remaining items
github-actions commentedon May 20, 2026
🔍 Investigation:
I1-P0-UNASSIGNEDFinding: P0 issue #5805 without assignee for 1821 days
Severity: critical
Category: issue
Evidence
Issue MKLImports PDB not included with packages #5805 is currently ASSIGNED — The issue shows assignee
@michaelgsharpaccording to the GitHub API (retrieved 2026-05-20). The finding appears to be based on stale data.github-issue_readAPI call shows"assignee":{"login":"michaelgsharp"}and"assignees":[{"login":"michaelgsharp"}]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.
"updated_at":"2021-06-02T16:39:26Z"from issue APIManual build process remains a pain point — The issue describes a manual MKL dependency build process that lacks PDB generation and proper automation.
docs/building/MlNetMklDeps/README.mdMklImports.pdbsee the note at the end of this section" with a manual makefile edit requiredMlNetMklDeps 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.eng/Versions.props,docs/building/MlNetMklDeps/version.mdNo 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).
github-search_pull_requestsquery "repo:dotnet/machinelearning 5805"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.mdstill 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
@michaelgsharpfrom #5805 if no active work is planned. P0 issues should not sit assigned with no progress for years.close #5805as resolved.Related
docs/building/MlNetMklDeps/README.mdeng/Versions.props:48Investigated by repo-health-investigate workflow • Finding:
I1-P0-UNASSIGNED• Date: 2026-05-20github-actions commentedon May 20, 2026
🔍 Investigation:
I3-UNTRIAGED-HIGHFinding: 216 untriaged issues in backlog requiring triage
Severity: high
Category: issue
Evidence
is:issue is:open no:milestoneis:issue is:open no:labelcreated:>=2022-01-01 no:milestoneenhancement(42),API(17),test(13),up-for-grabs(12),bug(10)ML.NET 5.0(active),ML.NET Future(171 total issues with milestones)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:
ML.NET 5.0,ML.NET Future), suggesting milestones may be used for committed work rather than general prioritizationThe 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:
Recommendations
ML.NET 5.0orML.NET Futureor close if obsolete.@dotnet/ml-api-reviewersclosing-stalelabel.ML.NET Futureor close. Focus onP2priority (62% of backlog).ML.NET 5.0vsML.NET Futurevs no-milestone means. Consider addingBacklogmilestone.@dotnet/ml-api-reviewersNeeds-Triage+ML.NET Futureby default.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-20github-actions commentedon May 21, 2026
📅 Daily Health Check — 2026-05-21
Changes Since Last Run
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
github-actions commentedon May 22, 2026
📊 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)
New Findings
Key Metrics
Recommendations
github-actions commentedon May 23, 2026
📊 Daily Health Update — 2026-05-23
Status Change
🟢 HEALTHY → 🟡 WARNING (triage backlog detected)
What Changed Since Yesterday
🆕 New Findings (6)
🔴 TRIAGE-BACKLOG - 1,031 untriaged issues detected (71% of all open issues)
🔴 ISSUE-VELOCITY - Net +27 issues/day growth (96 opened, 69 closed in 24h)
🟡 P1-VOLUME - 23 P1 issues require review
🟡 BUG-BACKLOG - 59 open bugs need triage
ℹ️ PR-MERGE-SPIKE - 111 PRs merged in 24h (exceptional activity!)
✅ WORKFLOWS-HEALTHY - All GitHub Actions 100% success
📊 Metric Changes (vs 2026-05-22)
🎯 Top Priority Actions
This Week:
🔴 Launch triage sprint for 1,031 untriaged issues
🟡 Review 23 P1 issues for age/assignment
🟡 Triage 59 open bugs
Good News:
View Full Dashboard | Workflow Run
github-actions commentedon May 23, 2026
🔍 Investigation:
p1-volumeFinding: High volume of P1 issues
Severity: warning
Category: issue
Evidence
23 open P1 issues — Search query
label:p1 state:openreturned 23 issues (Source: GitHub Issues API, 2026-05-23)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)
High staleness — 17 issues (74%) haven't been updated in 4+ years; 8 issues haven't been updated in 5+ years (Source: Issue
updated_atfield)Poor triage state — 16/23 (70%) are unassigned; 19/23 (83%) have no milestone (Source: Issue metadata)
Component concentration — Core (8 issues), LoadSave (3), LightGBM (3), AutoML (3) account for 74% (Source: Label analysis)
Type breakdown — 12 bugs, 4 enhancements, 7 questions/other (Source: Issue labels)
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)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)
Examples of severe neglect:
(Source: Issue Cannot combine OneVersusAll with FieldAwareFactorizationMachine #590, Consistency issue with LdaTransform #1004, Models produced by the GAM Trainer depend on feature flocks #2167)
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:
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
@dotnet/ml-net-maintainers@michaelgsharp(assignee)Related
fixes #5798, ARM support for SymSGD) — ready for review, created 18 days ago by community contributor@michaelgsharp📊 Full P1 Issue Inventory (23 issues)
Note: "0y ago" indicates activity within the past year.
Investigated by repo-health-investigate • Finding:
p1-volume• 2026-05-23github-actions commentedon May 23, 2026
🔍 Investigation:
issue-triage-backlogFinding: 1,031 untriaged issues (71% of all open) - massive triage backlog
Severity: critical
Category: issue
Evidence
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
@dotnet/machinelearning-admins@dotnet/machinelearning-triage@dotnet/machinelearning-triage@dotnet/machinelearning-admins@dotnet/machinelearning-triage@dotnet/machinelearning-adminsRelated
Investigated by repo-health-investigate • Finding:
issue-triage-backloggithub-actions commentedon May 24, 2026
📊 Daily Health Update — 2026-05-24
Summary
✅ Overall Status: 🟢 HEALTHY
Key Changes Since Last Run
Findings Breakdown
What's New
Next Steps
Run: #26354592800
github-actions commentedon May 25, 2026
📅 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
Key Metrics
Action Items
Report from run #26388713455
github-actions commentedon May 25, 2026
🔍 Investigation:
I3-UNTRIAGED-100Finding: 100+ untriaged issues need triage
Severity: warning
Category: issue
Evidence
is:open label:untriagedas of 2026-05-25.github/workflows/issue-triage.agent.md(commit 4c8b357)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 ofissue-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
issue-triage.agent.md) to clarify when to remove "untriaged" vs when to keep it for maintainer reviewRelated
.github/workflows/issue-triage.agent.md— Added April 24, 2026Batch Triage Strategy (Optional)
If maintainers want immediate action, a Copilot Workspace agent can be invoked to:
bug/enhancement/question/documentation→ Remove "untriaged"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-25github-actions commentedon May 25, 2026
🔍 Investigation:
P5-STALE-DETECTEDFinding: Multiple stale PRs detected (>30 days no activity)
Severity: warning
Category: pr
Evidence
DataViewSchemaoverloads toConvertToOnnx#6449 (1273 days stale): Blocked by failing CI, no reviewer assigned, author last responded Nov 2022 — Source: GitHub PR status API + commentsmergeable_stateof either "dirty" (merge conflicts) or "blocked" (failing CI or missing reviews) — Source: GitHub PR status checkRoot Cause
Confidence: High
The stale PRs are caused by lack of active triage and review assignment. The primary issues are:
DataViewSchemaoverloads toConvertToOnnx#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 closedThe 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
Detailed PR Breakdown
Critical: 4 PRs stale >400 days
Moderate: 3 PRs stale 30-60 days
Related
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-25github-actions commentedon May 26, 2026
📊 Daily Health Update — 2026-05-26
Summary
✅ Repository health remains HEALTHY — 0 critical, 1 warning, 2 info findings
Changes Since Last Run
Finding Status
Next Steps
Updated by repo-health-check workflow