[release/13.5] Fix mixed-quality staging package discovery - #19427
Conversation
* Fix mixed-quality staging package discovery Official staging feeds can contain stable packages alongside integrations that deliberately remain prerelease. Discover both qualities for staging identities while preserving strict stable and daily channel filtering. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 2b95dfd3-c558-45ae-8d8e-d798fbd8d10c * Test staging package version precedence Cover both stable-versus-same-line-preview and current-preview-versus-older-stable selection through staging package discovery and the add version picker. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 2b95dfd3-c558-45ae-8d8e-d798fbd8d10c --------- Copilot-Session: 2b95dfd3-c558-45ae-8d8e-d798fbd8d10c Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
|
🚀 Dogfood this PR with:
curl -fsSL https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.sh | bash -s -- 19427Or
iex "& { $(irm https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.ps1) } 19427" |
Tests selector (audit mode)The full test matrix and all jobs still run in audit mode. The tests and jobs below are what selective CI would run under enforcement. 2 / 100 test projects · 5 jobs, from 11 changed files. Selected test projects (2 / 100)
Selected 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.
Pull request overview
Backports the staging package-discovery fix so stable-shaped staging CLIs discover both stable and prerelease-only integrations from their SHA-specific feed.
Changes:
- Sets official staging channels to
Bothquality. - Adds package-quality, channel-selection, and TypeScript discovery regression tests.
- Updates staging validation scripts and documentation.
Show a summary per file
| File | Description |
|---|---|
src/Aspire.Cli/Packaging/PackagingService.cs |
Broadens official staging discovery. |
tests/Aspire.Cli.Tests/Utils/CliTestHelper.cs |
Removes obsolete version-shape override. |
tests/Aspire.Cli.Tests/TestServices/TestAppHostProjectFactory.cs |
Enables package-add test callbacks. |
tests/Aspire.Cli.Tests/Projects/PrebuiltAppHostServerTests.cs |
Updates staging service coverage. |
tests/Aspire.Cli.Tests/Packaging/PackagingServiceTests.cs |
Tests mixed-quality staging discovery. |
tests/Aspire.Cli.Tests/Packaging/PackageChannelTests.cs |
Tests quality filtering contracts. |
tests/Aspire.Cli.Tests/Commands/AddCommandTests.cs |
Tests channel/version selection matrices. |
eng/scripts/debug-stable.sh |
Updates expected staging quality. |
eng/scripts/debug-stable.ps1 |
Updates expected staging quality. |
eng/scripts/debug-aspire-channel.sh |
Exercises TypeScript package discovery. |
eng/scripts/debug-aspire-channel.ps1 |
Exercises TypeScript package discovery. |
docs/cli-staging-validation.md |
Documents mixed-quality staging behavior. |
.agents/skills/cli-channel-debugging/SKILL.md |
Updates channel-emulation guidance. |
Review details
💡 Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.
- Files reviewed: 13/13 changed files
- Comments generated: 0
- Review effort level: Balanced
d370c09
into
release/13.5
|
✅ No documentation update needed. Step 5 branch taken:
Exclusion reasons (from
This is a backport PR that ports an already-merged change (#19426) onto |
Backport of #19426 to release/13.5
/cc Mitch Denny (@mitchdenny)
Customer Impact
With stable-shaped 13.5 staging builds, TypeScript AppHosts cannot discover build-matched prerelease-only integrations from the SHA-specific staging feed. For example, Azure Kubernetes
13.5.0-preview.1.26415.2is available to C# AppHosts but omitted for TypeScript, leaving users with unrelated daily/PR-hive versions instead.Testing
On
release/13.5, restore succeeded and 30 focusedAspire.Cli.Testspassed coveringPackagingService,PackageChannel,AddCommand, andPrebuiltAppHostServer; parser checks also passed for the changed Bash and PowerShell debug scripts. The source PR additionally passed the full CLI test project and C#/TypeScript runtime matrices across PR, daily, staging, and released identities, includingaspire new,aspire init, Redis, and Azure Kubernetes.Risk
Low. The production change is scoped to official staging identities and their SHA-specific feed. Released Stable and Daily remain strict, feature-flag-only staging remains Stable, and existing exact-package fallback is unchanged. The release conflict was test-only and preserves the release test set plus the source PR's quality-contract regressions.
Regression?
Yes — #17452 caused generated polyglot AppHosts to persist their CLI channel, activating the latent stable-only narrowing behavior. #17728 restored prerelease discovery for packages already on NuGet.org; this backport fixes the remaining packages available only from the current SHA-specific staging feed.