Repository navigation
[release/13.6] Fix Windows AppHost cleanup job routing - #20514
Jose Perez Rodriguez (joperezr) merged 1 commit into
Conversation
|
🚀 Dogfood this PR with:
curl -fsSL https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.sh | bash -s -- 20514Or
iex "& { $(irm https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.ps1) } 20514" |
Tests selector2 / 99 PR test projects · 5 PR jobs, from 5 changed files. Selected PR test projects (2 / 99)
Selected PR jobs (5)
How these were chosen — grouped by what changed📦 affected project 🧪 🧪 Job reasons
Selection computed for commit |
There was a problem hiding this comment.
Copilot review overview
🟢 Approval recommended
The launch-path routing matches the reported Windows failure and has focused regression coverage.
Review effort: Balanced
Findings: None
What changed in this PR
Backports the Windows AppHost cleanup fix by adjusting kill-on-close job routing while preserving protection for direct and polyglot launches.
Changes:
- Disables the outer Windows job for
dotnet run/watchpaths. - Retains job protection for direct .NET and AppHost server launches.
- Adds focused tests and stabilizes extension E2E targeting.
| File | Description |
|---|---|
src/Aspire.Cli/Projects/DotNetAppHostProject.cs |
Selects job protection based on launch path. |
src/Aspire.Cli/Processes/WindowsConsoleProcessJob.cs |
Documents nested-job constraints. |
tests/Aspire.Cli.Tests/Projects/DotNetAppHostProjectTests.cs |
Verifies fallback and direct-launch options. |
tests/Aspire.Cli.Tests/Projects/AppHostServerSessionTests.cs |
Verifies server job protection. |
extension/src/test-e2e/edgeCases.e2e.test.ts |
Targets the permanent AppHost fixture explicitly. |
💡 Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.
|
Chatted with David Negstad (@danegsta) offline and decided to push this to .1 patch. |
d6b50f5
into
release/13.6
|
Given the risk, when we have a new staging build, can you please do some e2e testing for this David Negstad (@danegsta) ? |
|
✅ No documentation update needed. Step 5 branch taken: Triggered signals: none ( Exclusion reasons (from
This is a backport PR; per policy its user-facing documentation (if any) is authored against the original forward PR (#20494) on the default branch, so drafting a duplicate docs PR here would be pure noise. No docs PR created. |
Description
Backport of #20494 to
release/13.6(cherry-picked patch frome62dceba954899a33326297b4669e226c27dcdce). On Windows, .NET AppHosts launched throughdotnet runordotnet watchdo not enter the Aspire CLI's outer kill-on-close job, allowing DCP to finish removing session-scoped resources during shutdown. Direct .NET launches and TypeScript/polyglot AppHost servers retain their job protection. Includes the associated CLI tests and extension E2E test stabilization. No new dependencies.Related: #20495 (already closed by #20494).
Checklist
<remarks />and<code />elements on your triple slash comments?Customer Impact
On Windows, stopping a CLI-launched .NET AppHost can leave session-scoped containers running instead of removing them; persistent resources should remain running.
Testing
Main PR: manual C# normal/forced shutdown and TypeScript cleanup, focused CLI tests (181 passed, 3 platform-skipped), and passing Windows edge-cases CI. Release branch: targeted CLI tests (172 passed, 3 Windows platform-skipped), CLI/extension build, extension test and E2E type-check, and changed-file lint. Full VS Code E2E UI run was not performed on the release branch.
Risk
Medium. Changes Windows process ownership for
dotnet run/dotnet watch; direct .NET and TypeScript/polyglot paths retain their kill-on-close protection, and CLI-parent detection remains enabled.Regression?
Unknown. Reproduced on a 13.6 preview build; the exact introducing version/change is not established.