Skip to content

Commit 492b59a

Browse files
Build SSMS extension VSIX in release workflow + bump to 1.11.1 (#343) (#344)
* Build SSMS extension VSIX in release workflow (#343) The SSMS extension (PlanViewer.Ssms) is a legacy non-SDK project and is not part of PlanViewer.sln, so `dotnet build` never produced it. Releases shipped without the VSIX, leaving the README pointing at a stale v0.7.0 manual download while the extension was already at 1.11.0. - release.yml: build the VSIX via MSBuild + the installer via dotnet, and attach PlanViewer.Ssms.vsix + InstallSsmsExtension.exe to each release. continue-on-error keeps a VSIX build failure from blocking the cross-platform app release; warns on manifest/release version drift. - README.md: point SSMS install at the latest release. - McpHostService.cs: MCP server version was hardcoded at 0.7.0 - derive it from the assembly version so it tracks Directory.Build.props. - bug_report.yml: refresh the version placeholder. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * Bump version to 1.11.1 (Directory.Build.props, vsixmanifest, AssemblyInfo) --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent dd9835d commit 492b59a

7 files changed

Lines changed: 55 additions & 7 deletions

File tree

.github/ISSUE_TEMPLATE/bug_report.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ body:
2323
attributes:
2424
label: Performance Studio Version
2525
description: Check the About dialog or the release you downloaded.
26-
placeholder: "e.g., 0.7.0"
26+
placeholder: "e.g., 1.11.0"
2727
validations:
2828
required: true
2929

.github/workflows/release.yml

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,52 @@ jobs:
6363
dotnet publish src/PlanViewer.App/PlanViewer.App.csproj -c Release -r osx-x64 --self-contained -o publish/osx-x64
6464
dotnet publish src/PlanViewer.App/PlanViewer.App.csproj -c Release -r osx-arm64 --self-contained -o publish/osx-arm64
6565
66+
# ── SSMS extension VSIX (issue #343 — get it into automated builds) ──
67+
# PlanViewer.Ssms is a legacy non-SDK project and is not in PlanViewer.sln,
68+
# so the `dotnet build` above never touches it. It needs full MSBuild plus
69+
# the VSSDK build targets. continue-on-error keeps a VSIX build failure
70+
# from blocking the (critical-path) cross-platform app release.
71+
- name: Add MSBuild to PATH
72+
uses: microsoft/setup-msbuild@v2
73+
continue-on-error: true
74+
75+
- name: Build SSMS extension
76+
id: ssms
77+
continue-on-error: true
78+
shell: pwsh
79+
env:
80+
VERSION: ${{ steps.version.outputs.VERSION }}
81+
run: |
82+
$manifest = 'src/PlanViewer.Ssms/source.extension.vsixmanifest'
83+
$manifestVersion = ([xml](Get-Content $manifest)).PackageManifest.Metadata.Identity.Version
84+
if ($manifestVersion -ne $env:VERSION) {
85+
Write-Host "::warning::VSIX manifest version ($manifestVersion) != release version ($env:VERSION) — bump source.extension.vsixmanifest and Properties/AssemblyInfo.cs"
86+
}
87+
88+
msbuild src/PlanViewer.Ssms/PlanViewer.Ssms.csproj -t:Restore,Build -p:Configuration=Release -p:DeployExtension=false
89+
dotnet build src/PlanViewer.Ssms.Installer/PlanViewer.Ssms.Installer.csproj -c Release
90+
91+
$vsix = 'src/PlanViewer.Ssms/bin/Release/PlanViewer.Ssms.vsix'
92+
$exe = 'src/PlanViewer.Ssms.Installer/bin/Release/net472/InstallSsmsExtension.exe'
93+
if (-not (Test-Path $vsix)) { throw "VSIX not produced at $vsix" }
94+
if (-not (Test-Path $exe)) { throw "Installer not produced at $exe" }
95+
96+
New-Item -ItemType Directory -Force -Path releases | Out-Null
97+
Copy-Item $vsix 'releases/PlanViewer.Ssms.vsix'
98+
Copy-Item $exe 'releases/InstallSsmsExtension.exe'
99+
100+
- name: Upload SSMS extension to release
101+
if: steps.ssms.outcome == 'success'
102+
shell: pwsh
103+
env:
104+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
105+
VERSION: ${{ steps.version.outputs.VERSION }}
106+
run: gh release upload "v$env:VERSION" releases/PlanViewer.Ssms.vsix releases/InstallSsmsExtension.exe --clobber
107+
108+
- name: Warn if SSMS extension build failed
109+
if: steps.ssms.outcome != 'success'
110+
run: echo "::warning::SSMS extension VSIX build failed — release published without it (issue #343)"
111+
66112
# ── SignPath code signing (Windows only, skipped if secret not configured) ──
67113
- name: Check if signing is configured
68114
id: signing

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -335,7 +335,7 @@ A VSIX extension that adds **"Open in Performance Studio"** to the execution pla
335335

336336
### Installation
337337

338-
1. Download `PlanViewer.Ssms.vsix` and `InstallSsmsExtension.exe` from the [v0.7.0 release](https://github.com/erikdarlingdata/PerformanceStudio/releases/tag/v0.7.0) (SSMS extension is not yet included in automated builds)
338+
1. Download `PlanViewer.Ssms.vsix` and `InstallSsmsExtension.exe` from the [latest release](https://github.com/erikdarlingdata/PerformanceStudio/releases/latest)
339339
2. Place them in the same folder
340340
3. Double-click `InstallSsmsExtension.exe` and approve the UAC prompt
341341
4. The installer auto-detects SSMS 21 and/or SSMS 22 and installs into both

src/Directory.Build.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
Tests and server/ projects are outside src/ and are unaffected.
1616
-->
1717
<PropertyGroup>
18-
<Version>1.11.0</Version>
18+
<Version>1.11.1</Version>
1919
<Authors>Erik Darling</Authors>
2020
<Company>Darling Data LLC</Company>
2121
<Product>Performance Studio</Product>

src/PlanViewer.App/Mcp/McpHostService.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,9 @@ protected override async Task ExecuteAsync(CancellationToken stoppingToken)
6363
options.ServerInfo = new()
6464
{
6565
Name = "PerformanceStudio",
66-
Version = "0.7.0"
66+
/* Derived from the product version in Directory.Build.props
67+
so it never drifts from the actual release. */
68+
Version = typeof(McpHostService).Assembly.GetName().Version?.ToString(3) ?? "1.11.0"
6769
};
6870
options.ServerInstructions = McpInstructions.Text;
6971
})

src/PlanViewer.Ssms/Properties/AssemblyInfo.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,5 @@
77
[assembly: AssemblyProduct("Performance Studio for SSMS")]
88
[assembly: AssemblyCopyright("Copyright Darling Data 2026")]
99
[assembly: ComVisible(false)]
10-
[assembly: AssemblyVersion("1.11.0.0")]
11-
[assembly: AssemblyFileVersion("1.11.0.0")]
10+
[assembly: AssemblyVersion("1.11.1.0")]
11+
[assembly: AssemblyFileVersion("1.11.1.0")]

src/PlanViewer.Ssms/source.extension.vsixmanifest

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
xmlns:d="http://schemas.microsoft.com/developer/vsx-schema-design/2011">
44
<Metadata>
55
<Identity Id="PlanViewer.Ssms.64F79022-9D9A-4463-A1AE-4B19426A0CB1"
6-
Version="1.11.0"
6+
Version="1.11.1"
77
Language="en-US"
88
Publisher="Darling Data" />
99
<DisplayName>Performance Studio for SSMS</DisplayName>

0 commit comments

Comments
 (0)