Make BinlogMcp feed-neutral and configure eval NuGet source - #984
Conversation
This reverts commit 805a42a. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 3b2899e9-48f8-4a2a-a19f-1827d08cbfc4
Skill Coverage Report
Uncovered:
|
There was a problem hiding this comment.
Pull request overview
This PR reverts PR #969 by removing the pinned NuGet feed (--source ...dotnet-public...) from the Microsoft.AITools.BinlogMcp MCP server declarations, returning package resolution to whatever NuGet sources are configured in the execution environment. It also reverts related documentation text that was updated alongside the feed pinning work.
Changes:
- Removed
--source https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public/nuget/v3/index.jsonfrom the BinlogMcpdnxarguments across the mirrored manifests. - Reverted feed-name documentation text in
eng/allowed-external-deps.txtand the binlog failure analysis skill.
Show a summary per file
| File | Description |
|---|---|
| plugins/dotnet-msbuild/skills/binlog-failure-analysis/SKILL.md | Reverts the fallback workflow wording about which feed may be unavailable. |
| plugins/dotnet-msbuild/plugin.json | Removes the pinned --source from the BinlogMcp MCP server args. |
| plugins/dotnet-msbuild/.codex-plugin/.mcp.json | Removes the pinned --source from the BinlogMcp MCP server args (Codex mirror). |
| plugins/dotnet-msbuild/.claude-plugin/plugin.json | Removes the pinned --source from the BinlogMcp MCP server args (Claude mirror). |
| eng/allowed-external-deps.txt | Reverts the comment describing which feed the BinlogMcp server comes from. |
| .claude-plugin/marketplace.json | Removes the pinned --source from the BinlogMcp MCP server args (marketplace mirror). |
Copilot's findings
Tip
Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Files reviewed: 6/6 changed files
- Comments generated: 2
|
👋 @Evangelink — this PR has 2 unresolved review thread(s). When you're ready, please address the feedback and push an update; the triage bot will pick up the next state automatically. (Add the |
JanKrivanek
left a comment
There was a problem hiding this comment.
For external customers the primary source feed for Microsoft.AITools.BinlogMcp server should be nuget.org
The question is what it will do in our eval env
We probably want to remove the feeds mentions alltogether and explicitly set the feed for the eval environment. IoW - the feed should be controlled by the execution env, not by the AI pluggable logic |
Install a repository-owned NuGet configuration at the runner user level so temporary Vally workspaces resolve packages from nuget.org without plugin-specific source arguments.
📊 Skill Evaluation Results1 skill(s) evaluated — ✅ 0 improved, ❌ 0 no credible change, 🔻 0 regressed.
A skill passes only on a credible net win over baseline: more wins than losses, by an exact one-sided sign test at
ℹ️ Column legend
|
| Scenario | Net win | Δ Pref | Trials (W/T/L) |
|---|---|---|---|
| = Diagnose build failures from binlog only (no source files) | +0.0% | +0.0% | 0/1/0 |
🔍 Full Results - additional metrics and failure investigation steps
▶ Sessions Visualisation -- interactive replay of all evaluation sessions
📊 Session Analytics (preview) -- aggregated metrics across evaluation sessions
|
✅ Evaluation passed for |
Route evaluation and version-stamping tool restores through the locked-down dotnet-public source mapping.
There was a problem hiding this comment.
Copilot's findings
Suppressed comments (1)
eng/version/nuget.config:26
eng/version/nuget.configis now pinned to thedotnet-publicfeed, but the versioning workflows that consume this file still document that tools are restricted to nuget.org (e.g..github/workflows/version-bump-command.ymlsays “tools can only be restored from nuget.org”). This mismatch makes it unclear which feed is the intended trust boundary for privileged tool restores, and it may surprise maintainers ifdotnet-publicis ever unavailable or doesn’t mirror a required tool version.
Please either (a) revert this file back to nuget.org, or (b) update the versioning workflow documentation/comments (and ideally the PR description) to explicitly state that the trusted source is dotnet-public and why.
<packageSources>
<clear />
<add key="dotnet-public" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public/nuget/v3/index.json" />
</packageSources>
<packageSourceMapping>
<packageSource key="dotnet-public">
<package pattern="*" />
- Files reviewed: 9/9 changed files
- Comments generated: 0 new
📊 Skill Evaluation Results1 skill(s) evaluated — ✅ 0 improved, ❌ 0 no credible change, 🔻 0 regressed.
A skill passes only on a credible net win over baseline: more wins than losses, by an exact one-sided sign test at
ℹ️ Column legend
|
| Scenario | Net win | Δ Pref | Trials (W/T/L) |
|---|---|---|---|
| ▼ Diagnose build failures from binlog only (no source files) | -100.0% | -100.0% | 0/0/1 |
🔍 Full Results - additional metrics and failure investigation steps
▶ Sessions Visualisation -- interactive replay of all evaluation sessions
📊 Session Analytics (preview) -- aggregated metrics across evaluation sessions
Match the Roslyn LSP dnx configuration and keep all mirrored MCP manifests consistent.
There was a problem hiding this comment.
Copilot's findings
Suppressed comments (5)
plugins/dotnet-msbuild/plugin.json:19
--prereleasemakesdotnet dnx Microsoft.AITools.BinlogMcpeligible to resolve to newer prerelease builds, which can introduce unexpected behavior changes and reduce reproducibility. Unless this server package is only available as prerelease, prefer restoring the latest stable (or pin an explicit version) and drop--prerelease.
"dnx",
"Microsoft.AITools.BinlogMcp",
"--yes",
"--prerelease"
plugins/dotnet-msbuild/.codex-plugin/.mcp.json:10
--prereleasemakesdotnet dnx Microsoft.AITools.BinlogMcpeligible to resolve to newer prerelease builds, which can introduce unexpected behavior changes and reduce reproducibility. Unless this server package is only available as prerelease, prefer restoring the latest stable (or pin an explicit version) and drop--prerelease.
"dnx",
"Microsoft.AITools.BinlogMcp",
"--yes",
"--prerelease"
plugins/dotnet-msbuild/.claude-plugin/plugin.json:19
--prereleasemakesdotnet dnx Microsoft.AITools.BinlogMcpeligible to resolve to newer prerelease builds, which can introduce unexpected behavior changes and reduce reproducibility. Unless this server package is only available as prerelease, prefer restoring the latest stable (or pin an explicit version) and drop--prerelease.
"dnx",
"Microsoft.AITools.BinlogMcp",
"--yes",
"--prerelease"
.claude-plugin/marketplace.json:39
--prereleasemakesdotnet dnx Microsoft.AITools.BinlogMcpeligible to resolve to newer prerelease builds, which can introduce unexpected behavior changes and reduce reproducibility. Unless this server package is only available as prerelease, prefer restoring the latest stable (or pin an explicit version) and drop--prerelease.
"dnx",
"Microsoft.AITools.BinlogMcp",
"--yes",
"--prerelease"
eng/version/nuget.config:25
- This switches the locked-down versioning NuGet config from
nuget.orgtodotnet-public. That’s a behavior change for the versioning workflows (dotnet tool restore --configfile eng/version/nuget.config) and isn’t called out in the PR description (which focuses on evaluation NuGet config). Please confirm this is intentional; if not, revert this file to keep versioning restores on nuget.org.
<clear />
<add key="dotnet-public" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public/nuget/v3/index.json" />
</packageSources>
<packageSourceMapping>
<packageSource key="dotnet-public">
- Files reviewed: 9/9 changed files
- Comments generated: 0 new
📊 Skill Evaluation Results1 skill(s) evaluated — ✅ 0 improved, ❌ 0 no credible change, 🔻 0 regressed.
A skill passes only on a credible net win over baseline: more wins than losses, by an exact one-sided sign test at
ℹ️ Column legend
|
| Scenario | Net win | Δ Pref | Trials (W/T/L) |
|---|---|---|---|
| = Diagnose build failures from binlog only (no source files) | +0.0% | +0.0% | 0/1/0 |
🔍 Full Results - additional metrics and failure investigation steps
▶ Sessions Visualisation -- interactive replay of all evaluation sessions
📊 Session Analytics (preview) -- aggregated metrics across evaluation sessions
|
✅ Approved by @ViktorHofer. cc @dotnet/skills-merge-approvers — ready to merge. |
Reverts #969 while keeping package-source ownership in the evaluation environment.
Summary
dotnet-publicsource from everyMicrosoft.AITools.BinlogMcpplugin manifest.dotnet-public.Validation
Microsoft.AITools.BinlogMcp2.0.1 with--no-cachefromdotnet-publicusing onlyeng/evaluation/nuget.config.actionlintandgit diff --checkpass.@github/copilot-win32-x64.