Skip to content

Commit 6c2e7fd

Browse files
authored
Merge pull request #10 from dotutils/users/ykovalova/update-feed-to-dotnet-tools
Switch AITools.BinlogMcp feed from dotnet-eng to dotnet-tools
2 parents e450abc + df903db commit 6c2e7fd

4 files changed

Lines changed: 22 additions & 17 deletions

File tree

CHANGELOG.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
# Changelog
22

3+
## 0.10.21 (Preview)
4+
5+
### Changed
6+
- **Switched NuGet feed from dotnet-eng to dotnet-tools** — the AITools.BinlogMcp package is now published on the `dotnet-tools` feed. All install, update, and version resolution commands updated automatically.
7+
38
## 0.10.20 (Preview)
49

510
### Fixed
@@ -8,7 +13,7 @@
813
## 0.10.19 (Preview)
914

1015
### Changed
11-
- **Switched MCP server to AITools.BinlogMcp** — the extension now uses [AITools.BinlogMcp](https://dev.azure.com/dnceng/public/_artifacts/feed/dotnet-eng/NuGet/AITools.BinlogMcp) from the dotnet-eng feed instead of BinlogInsights.Mcp from nuget.org. The new package is auto-installed on first use. Existing BinlogInsights.Mcp installations are automatically migrated — the extension installs the new tool and prompts to uninstall the old one.
16+
- **Switched MCP server to AITools.BinlogMcp** — the extension now uses [AITools.BinlogMcp](https://dev.azure.com/dnceng/public/_artifacts/feed/dotnet-tools/NuGet/AITools.BinlogMcp) from the dotnet-tools feed instead of BinlogInsights.Mcp from nuget.org. The new package is auto-installed on first use. Existing BinlogInsights.Mcp installations are automatically migrated — the extension installs the new tool and prompts to uninstall the old one.
1217
- **Consistent project count** — the overview and tree view now show the same deduplicated project count instead of the raw evaluation count
1318
- **Search with text format** — search results from the new MCP's text format are parsed correctly for the tree view
1419

README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ Analyze MSBuild binary logs (`.binlog`) with **GitHub Copilot Chat** and **MCP t
1919
@binlog /perf
2020
```
2121

22-
The [AITools.BinlogMcp](https://dev.azure.com/dnceng/public/_artifacts/feed/dotnet-eng/NuGet/AITools.BinlogMcp) server (28 analysis tools) is auto-installed on first use.
22+
The [AITools.BinlogMcp](https://dev.azure.com/dnceng/public/_artifacts/feed/dotnet-tools/NuGet/AITools.BinlogMcp) server (28 analysis tools) is auto-installed on first use.
2323

2424
## What You Get
2525

@@ -52,12 +52,12 @@ The [AITools.BinlogMcp](https://dev.azure.com/dnceng/public/_artifacts/feed/dotn
5252

5353
## Troubleshooting: MCP Server Installation
5454

55-
The extension auto-installs [AITools.BinlogMcp](https://dev.azure.com/dnceng/public/_artifacts/feed/dotnet-eng/NuGet/AITools.BinlogMcp) via `dotnet tool install -g`. In corporate environments with restricted NuGet feeds, this may fail. Here are the workarounds:
55+
The extension auto-installs [AITools.BinlogMcp](https://dev.azure.com/dnceng/public/_artifacts/feed/dotnet-tools/NuGet/AITools.BinlogMcp) via `dotnet tool install -g`. In corporate environments with restricted NuGet feeds, this may fail. Here are the workarounds:
5656

5757
### 1. Install with explicit feed source
5858

5959
```bash
60-
dotnet tool install -g AITools.BinlogMcp --prerelease --add-source https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json
60+
dotnet tool install -g AITools.BinlogMcp --prerelease --add-source https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json
6161
```
6262

6363
### 2. Diagnose NuGet issues
@@ -67,9 +67,9 @@ dotnet nuget list source
6767
```
6868

6969
Common problems:
70-
- **dotnet-eng feed not configured** — the tool is published on the dotnet-eng Azure DevOps feed
70+
- **dotnet-tools feed not configured** — the tool is published on the dotnet-tools Azure DevOps feed
7171
- **Authenticated feed requires credentials** — may block access to the feed
72-
- **Package source mapping** excludes the dotnet-eng feed for this package
72+
- **Package source mapping** excludes the dotnet-tools feed for this package
7373

7474
### 3. Verify installation
7575

@@ -81,7 +81,7 @@ binlog-mcp --help
8181
## Related Projects
8282

8383
- [MSBuild Structured Log Viewer](https://github.com/KirillOsenkov/MSBuildStructuredLog) — WPF viewer with secrets redaction
84-
- [AITools.BinlogMcp](https://dev.azure.com/dnceng/public/_artifacts/feed/dotnet-eng/NuGet/AITools.BinlogMcp) — MCP server for binlog analysis
84+
- [AITools.BinlogMcp](https://dev.azure.com/dnceng/public/_artifacts/feed/dotnet-tools/NuGet/AITools.BinlogMcp) — MCP server for binlog analysis
8585
- [MSBuild Binary Log docs](https://learn.microsoft.com/en-us/visualstudio/msbuild/obtaining-build-logs-with-msbuild#save-a-binary-log)
8686

8787
## License

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "binlog-analyzer",
33
"displayName": "MSBuild Binlog Analyzer",
44
"description": "Analyze MSBuild binary logs with Copilot Chat and MCP tools",
5-
"version": "0.10.20",
5+
"version": "0.10.21",
66
"preview": true,
77
"publisher": "dotutils",
88
"license": "MIT",

src/extension.ts

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ let extensionContext: vscode.ExtensionContext | undefined;
3030
let openedViaUri = false;
3131
let optimizeInProgress = false;
3232
let cachedMcpExePath: string | null | undefined; // undefined = not searched yet
33-
const DOTNET_ENG_FEED = 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json';
33+
const DOTNET_TOOLS_FEED = 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json';
3434
let codeLensRegistered = false;
3535

3636
function escapeHtml(s: string): string {
@@ -2137,11 +2137,11 @@ async function configureMcpServer(binlogPaths: string[], config: vscode.Workspac
21372137
...(workspaceCwd && { cwd: workspaceCwd }),
21382138
};
21392139
vscode.window.showWarningMessage(
2140-
'Could not find or install AITools.BinlogMcp. Install it manually: `dotnet tool install -g AITools.BinlogMcp --prerelease --add-source ' + DOTNET_ENG_FEED + '`',
2140+
'Could not find or install AITools.BinlogMcp. Install it manually: `dotnet tool install -g AITools.BinlogMcp --prerelease --add-source ' + DOTNET_TOOLS_FEED + '`',
21412141
'Copy Command'
21422142
).then(sel => {
21432143
if (sel === 'Copy Command') {
2144-
vscode.env.clipboard.writeText('dotnet tool install -g AITools.BinlogMcp --prerelease --add-source ' + DOTNET_ENG_FEED);
2144+
vscode.env.clipboard.writeText('dotnet tool install -g AITools.BinlogMcp --prerelease --add-source ' + DOTNET_TOOLS_FEED);
21452145
}
21462146
});
21472147
}
@@ -2312,9 +2312,9 @@ async function getLatestNuGetVersion(): Promise<string | null> {
23122312
const cp = require('child_process');
23132313

23142314
return new Promise<string | null>((resolve) => {
2315-
// Search the dotnet-eng feed for the package (includes prereleases)
2315+
// Search the dotnet-tools feed for the package (includes prereleases)
23162316
cp.execFile('dotnet', ['package', 'search', NUGET_PACKAGE_ID, '--exact-match', '--format', 'json', '--prerelease',
2317-
'--source', DOTNET_ENG_FEED],
2317+
'--source', DOTNET_TOOLS_FEED],
23182318
{ timeout: 30000, encoding: 'utf8' },
23192319
(error: any, stdout: string) => {
23202320
if (error) {
@@ -2363,7 +2363,7 @@ async function updateMcpServer() {
23632363
const result = await vscode.window.withProgress(
23642364
{ location: vscode.ProgressLocation.Notification, title: 'Updating AITools.BinlogMcp MCP server...' },
23652365
() => new Promise<{ success: boolean; output: string }>((resolve) => {
2366-
cp.execFile('dotnet', ['tool', 'update', '-g', 'AITools.BinlogMcp', '--prerelease', '--add-source', DOTNET_ENG_FEED], { timeout: 60000 }, (err: Error | null, stdout: string, stderr: string) => {
2366+
cp.execFile('dotnet', ['tool', 'update', '-g', 'AITools.BinlogMcp', '--prerelease', '--add-source', DOTNET_TOOLS_FEED], { timeout: 60000 }, (err: Error | null, stdout: string, stderr: string) => {
23672367
resolve({ success: !err, output: (stderr || stdout || '').toString() });
23682368
});
23692369
})
@@ -2403,7 +2403,7 @@ async function applyPendingToolUpdate(): Promise<void> {
24032403
const result = await vscode.window.withProgress(
24042404
{ location: vscode.ProgressLocation.Notification, title: 'Updating AITools.BinlogMcp MCP server...' },
24052405
() => new Promise<{ success: boolean; output: string }>((resolve) => {
2406-
cp.execFile('dotnet', ['tool', 'update', '-g', 'AITools.BinlogMcp', '--prerelease', '--add-source', DOTNET_ENG_FEED], { timeout: 60000 }, (err: Error | null, stdout: string, stderr: string) => {
2406+
cp.execFile('dotnet', ['tool', 'update', '-g', 'AITools.BinlogMcp', '--prerelease', '--add-source', DOTNET_TOOLS_FEED], { timeout: 60000 }, (err: Error | null, stdout: string, stderr: string) => {
24072407
resolve({ success: !err, output: (stderr || stdout || '').toString() });
24082408
});
24092409
})
@@ -2495,9 +2495,9 @@ async function installMcpTool(): Promise<string | null> {
24952495
const result = await vscode.window.withProgress(
24962496
{ location: vscode.ProgressLocation.Notification, title: 'Installing AITools.BinlogMcp MCP server (dotnet tool)...' },
24972497
() => new Promise<string | null>((resolve) => {
2498-
cp.execFile('dotnet', ['tool', 'install', '-g', 'AITools.BinlogMcp', '--prerelease', '--add-source', DOTNET_ENG_FEED], { timeout: 60000 }, (err: Error | null) => {
2498+
cp.execFile('dotnet', ['tool', 'install', '-g', 'AITools.BinlogMcp', '--prerelease', '--add-source', DOTNET_TOOLS_FEED], { timeout: 60000 }, (err: Error | null) => {
24992499
if (err) {
2500-
cp.execFile('dotnet', ['tool', 'update', '-g', 'AITools.BinlogMcp', '--prerelease', '--add-source', DOTNET_ENG_FEED], { timeout: 60000 }, () => {
2500+
cp.execFile('dotnet', ['tool', 'update', '-g', 'AITools.BinlogMcp', '--prerelease', '--add-source', DOTNET_TOOLS_FEED], { timeout: 60000 }, () => {
25012501
const exe = findMcpTool();
25022502
telemetry.trackToolInstall(!!exe);
25032503
resolve(exe);

0 commit comments

Comments
 (0)