Skip to content

Rename JavaScript package script publish API - #17382

Merged
David Fowler (davidfowl) merged 6 commits into
mainfrom
davidfowl/rename-publishasnpmscript
May 23, 2026
Merged

Rename JavaScript package script publish API#17382
David Fowler (davidfowl) merged 6 commits into
mainfrom
davidfowl/rename-publishasnpmscript

Conversation

@davidfowl

Copy link
Copy Markdown
Collaborator

Description

Rename the JavaScript package-script publish API so it is not tied to npm when the implementation supports npm, pnpm, Yarn, and Bun package scripts.

The public API is now PublishAsPackageScript in C# and publishAsPackageScript in TypeScript, with scriptName replacing startScriptName for the script option. The rename is propagated through C# and TypeScript call sites, playground docs, agent guidance, and Verify snapshot names. Generated API baseline files were not manually edited.

User-facing usage

C# AppHost:

builder.AddJavaScriptApp("frontend", "./frontend")
       .PublishAsPackageScript("start");

TypeScript AppHost:

await builder.addViteApp("frontend", "./frontend")
    .publishAsPackageScript({ scriptName: "start" });

Validation:

dotnet test --project tests/Aspire.Hosting.JavaScript.Tests/Aspire.Hosting.JavaScript.Tests.csproj --no-launch-profile -- --filter-not-trait "quarantined=true" --filter-not-trait "outerloop=true"

Fixes # (issue)

Checklist

  • Is this feature complete?
    • Yes. Ready to ship.
    • No. Follow-up changes expected.
  • Are you including unit tests for the changes and scenario tests if relevant?
    • Yes
    • No
  • Did you add public API?
    • Yes
      • If yes, did you have an API Review for it?
        • Yes
        • No
      • Did you add <remarks /> and <code /> elements on your triple slash comments?
        • Yes
        • No
    • No
  • Does the change make any security assumptions or guarantees?
    • Yes
      • If yes, have you done a threat model and had a security review?
        • Yes
        • No
    • No

Rename the JavaScript publish API from PublishAsNpmScript to PublishAsPackageScript and shorten the script option name from startScriptName to scriptName.

Update C# and TypeScript call sites, playground docs, agent guidance, and Verify snapshot names.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings May 22, 2026 14:39
@github-actions

github-actions Bot commented May 22, 2026

Copy link
Copy Markdown
Contributor

🚀 Dogfood this PR with:

⚠️ WARNING: Do not do this without first carefully reviewing the code of this PR to satisfy yourself it is safe.

curl -fsSL https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.sh | bash -s -- 17382

Or

  • Run remotely in PowerShell:
iex "& { $(irm https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.ps1) } 17382"

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Renames the JavaScript “publish as package-manager script” API to remove npm-specific naming, aligning the public surface with the implementation that supports npm, pnpm, Yarn, and Bun across C# and TypeScript AppHosts and their associated docs/tests.

Changes:

  • Renames PublishAsNpmScript/publishAsNpmScript to PublishAsPackageScript/publishAsPackageScript, including option rename startScriptNamescriptName.
  • Updates hosting internals (JavaScriptPublishMode, annotations, Dockerfile generation) and propagates the new naming through call sites, docs, and agent reference guidance.
  • Updates/introduces Verify snapshots and end-to-end fixtures to assert Dockerfile/runtime behavior for different package managers.
Show a summary per file
File Description
tests/PolyglotAppHosts/Aspire.Hosting.JavaScript/TypeScript/apphost.ts Updates TypeScript polyglot AppHost usage to publishAsPackageScript.
tests/Aspire.Hosting.JavaScript.Tests/Snapshots/AddViteAppTests.VerifyDockerfileWhenPackageScriptUsesPnpm.verified.txt Adds/updates expected Dockerfile snapshot for pnpm package-script publish.
tests/Aspire.Hosting.JavaScript.Tests/Snapshots/AddViteAppTests.VerifyDockerfileWhenPackageScriptUsesBun.verified.txt Adds/updates expected Dockerfile snapshot for Bun package-script publish.
tests/Aspire.Hosting.JavaScript.Tests/Snapshots/AddJavaScriptAppTests.VerifyPnpmDockerfileWhenPublishedAsPackageScript_hasLockFile=True.verified.txt Adds/updates expected Dockerfile snapshot for pnpm (lockfile present).
tests/Aspire.Hosting.JavaScript.Tests/Snapshots/AddJavaScriptAppTests.VerifyPnpmDockerfileWhenPublishedAsPackageScript_hasLockFile=False.verified.txt Adds/updates expected Dockerfile snapshot for pnpm (no lockfile).
tests/Aspire.Hosting.JavaScript.Tests/Snapshots/AddJavaScriptAppTests.VerifyDockerfileWhenPublishedAsPackageScript.verified.txt Adds/updates expected Dockerfile snapshot for generic package-script publish.
tests/Aspire.Hosting.JavaScript.Tests/NodeJsPublicApiTests.cs Renames/adjusts public API validation tests for new method/parameter names.
tests/Aspire.Hosting.JavaScript.Tests/AddViteAppTests.cs Updates Vite publish tests to use PublishAsPackageScript and renamed test methods.
tests/Aspire.Hosting.JavaScript.Tests/AddJavaScriptAppTests.cs Updates JavaScript app publish tests and outerloop description for new API name.
tests/Aspire.Cli.EndToEnd.Tests/TypeScriptPublishTests.cs Updates TS publish E2E fixture code to publishAsPackageScript.
tests/Aspire.Cli.EndToEnd.Tests/JavaScriptPublishTests.cs Updates E2E test description and TS AppHost snippet to new API naming.
tests/Aspire.Cli.EndToEnd.Tests/Fixtures/JsPublish/verify.sh Updates fixture verification to expect PublishAsPackageScript.
tests/Aspire.Cli.EndToEnd.Tests/Fixtures/JsPublish/npmscript/server.js Updates fixture server response payload to new method name.
src/Aspire.Hosting.JavaScript/JavaScriptPublishModeAnnotation.cs Renames publish mode enum/member and related annotation properties.
src/Aspire.Hosting.JavaScript/JavaScriptPackageManagerAnnotation.cs Renames internal runtime-image resolver callback to package-script terminology.
src/Aspire.Hosting.JavaScript/JavaScriptHostingExtensions.cs Renames the public publish API, updates Dockerfile generation path and error message.
playground/AspireWithNode/README.md Updates sample documentation to reference PublishAsPackageScript.
playground/AspireWithNode/AspireWithNode.AppHost/AppHost.cs Updates sample AppHost to call PublishAsPackageScript.
playground/AspireWithJavaScript/AspireJavaScript.AppHost/AppHost.cs Updates commented guidance/examples to the new API name and option name.
.agents/skills/aspire-deployment/references/javascript.md Updates agent reference material to use PublishAsPackageScript.

Copilot's findings

  • Files reviewed: 15/20 changed files
  • Comments generated: 2

Comment thread src/Aspire.Hosting.JavaScript/JavaScriptHostingExtensions.cs
Comment thread src/Aspire.Hosting.JavaScript/JavaScriptHostingExtensions.cs
Update the PublishAsPackageScript XML doc example to describe package-manager agnostic behavior for npm, pnpm, Yarn, and Bun.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@davidfowl

Copy link
Copy Markdown
Collaborator Author

Thanks for the review summary. I accepted the XML-doc clarification and pushed a fix, and I declined the generated API baseline request because this repository refreshes src//api/.cs baselines during the release process rather than in individual PRs.

@davidfowl

Copy link
Copy Markdown
Collaborator Author

Copilot resolve the merge conflicts in this pull request

Co-authored-by: davidfowl <95136+davidfowl@users.noreply.github.com>

Copilot AI commented May 22, 2026

Copy link
Copy Markdown
Contributor

Copilot resolve the merge conflicts in this pull request

Resolved by merging origin/main into this branch and committing merge resolution in 667960a.

@davidfowl David Fowler (davidfowl) added the breaking-change Issue or PR that represents a breaking API or functional change over a prerelease. label May 23, 2026
David Fowler (davidfowl) and others added 3 commits May 22, 2026 22:15
Declare the intentional TypeScript API break for renaming publishAsNpmScript to publishAsPackageScript.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ipt' into davidfowl/rename-publishasnpmscript
@github-actions

Copy link
Copy Markdown
Contributor

CLI E2E Tests unknown — 96 passed, 0 failed, 5 unknown (commit 6e6c80c)

View all recordings
Status Test Recording
AddPackageInteractiveWhileAppHostRunningDetached ▶️ View recording
AddPackageWhileAppHostRunningDetached ▶️ View recording
AgentCommands_AllHelpOutputs_AreCorrect ▶️ View recording
AgentInitCommand_DefaultSelection_InstallsDefaultSkills ▶️ View recording
AgentInitCommand_MigratesDeprecatedConfig ▶️ View recording
AgentMcpListStructuredLogsFromStarterAppCore ▶️ View recording
AllPublishMethodsBuildDockerImages ▶️ View recording
AspireAddPackageVersionToDirectoryPackagesProps ▶️ View recording
AspireInitSingleFileAppHostRunsViaDotnetRunAppHost ▶️ View recording
AspireInitWithExistingAppHostDirRecreatesMissingNuGetConfigAndPreservesFiles ▶️ View recording
AspireInitWithSolutionFileGeneratesAppHostThatBuildsAgainstChannelHive ▶️ View recording
AspireStartUpdatesStaleTypeScriptAppHostPath ▶️ View recording
AspireUpdateRemovesAppHostPackageVersionFromDirectoryPackagesProps ▶️ View recording
AspireUpdateRemovesOrphanAppHostPackageVersionWhenSdkAlreadyCurrent ▶️ View recording
Banner_DisplayedOnFirstRun ▶️ View recording
Banner_DisplayedWithExplicitFlag ▶️ View recording
Banner_NotDisplayedWithNoLogoFlag ▶️ View recording
CertificatesClean_RemovesCertificates ▶️ View recording
CertificatesTrust_WithNoCert_CreatesAndTrustsCertificate ▶️ View recording
CertificatesTrust_WithUntrustedCert_TrustsCertificate ▶️ View recording
ConfigSetGet_CreatesNestedJsonFormat ▶️ View recording
CreateAndRunAspireStarterProject ▶️ View recording
CreateAndRunAspireStarterProjectWithBundle ▶️ View recording
CreateAndRunEmptyAppHostProject ▶️ View recording
CreateAndRunJavaEmptyAppHostProject ▶️ View recording
CreateAndRunJsReactProject ▶️ View recording
CreateAndRunPythonReactProject ▶️ View recording
CreateAndRunTypeScriptEmptyAppHostProject ▶️ View recording
CreateAndRunTypeScriptStarterProject ▶️ View recording
CreateJavaAppHostWithViteApp ▶️ View recording
CreateTypeScriptAppHostWithViteApp_UsesConfiguredToolchain ▶️ View recording
DashboardRunWithAgentMcpCore ▶️ View recording
DashboardRunWithOtelTracesReturnsNoTracesCore ▶️ View recording
DeployK8sBasicApiService ▶️ View recording
DeployK8sWithExternalHelmChart ▶️ View recording
DeployK8sWithGarnet ▶️ View recording
DeployK8sWithMongoDB ▶️ View recording
DeployK8sWithMySql ▶️ View recording
DeployK8sWithPostgres ▶️ View recording
DeployK8sWithRabbitMQ ▶️ View recording
DeployK8sWithRedis ▶️ View recording
DeployK8sWithSqlServer ▶️ View recording
DeployK8sWithValkey ▶️ View recording
DeployTypeScriptAppToKubernetes ▶️ View recording
DescribeCommandResolvesReplicaNames ▶️ View recording
DescribeCommandShowsRunningResources ▶️ View recording
DetachFormatJsonProducesValidJson ▶️ View recording
DetachFormatJsonProducesValidJsonWhenRestartingExistingInstance ▶️ View recording
DoListStepsShowsPipelineSteps ▶️ View recording
DocsCommand_RendersInteractiveMarkdownFromLocalSource ▶️ View recording
DoctorCommand_DetectsDeprecatedAgentConfig ▶️ View recording
DoctorCommand_TypeScriptAppHostReportsMissingConfiguredToolchain ▶️ View recording
DoctorCommand_WithSslCertDir_ShowsTrusted ▶️ View recording
DoctorCommand_WithoutSslCertDir_ShowsPartiallyTrusted ▶️ View recording
GeneratedAspireDevScript_StartsWatchMode_WithConfiguredToolchain ▶️ View recording
GlobalMigration_HandlesCommentsAndTrailingCommas ▶️ View recording
GlobalMigration_HandlesMalformedLegacyJson ▶️ View recording
GlobalMigration_PreservesAllValueTypes ▶️ View recording
GlobalMigration_SkipsWhenNewConfigExists ▶️ View recording
GlobalSettings_MigratedFromLegacyFormat ▶️ View recording
InitTypeScriptAppHost_AugmentsExistingViteRepoAtRoot ▶️ View recording
InteractiveCSharpInitCreatesExpectedFiles ▶️ View recording
InvalidAppHostPathWithComments_IsHealedOnRun ▶️ View recording
JavaScriptHostingApisRunFromTypeScriptAppHost ▶️ View recording
LatestCliCanStartStableChannelAppHost ▶️ View recording
LatestCliCanStartStableChannelTypeScriptAppHost ▶️ View recording
LegacySettingsMigration_AdjustsRelativeAppHostPath ▶️ View recording
LogLevelTrace_ProducesTraceEntriesInCliLogFile ▶️ View recording
LogsCommandShowsResourceLogs ▶️ View recording
OtelLogsReturnsStructuredLogsFromStarterApp ▶️ View recording
OtelLogsReturnsStructuredLogsFromStarterAppIsolated ▶️ View recording
PsCommandListsRunningAppHost ▶️ View recording
PsFormatJsonOutputsOnlyJsonToStdout ▶️ View recording
PublishJavaScriptPatternsGeneratesExpectedDockerComposeArtifacts ▶️ View recording
PublishWithConfigureEnvFileUpdatesEnvOutput ▶️ View recording
PublishWithDockerComposeServiceCallbackSucceeds ▶️ View recording
PublishWithoutOutputPathUsesAppHostDirectoryDefault ▶️ View recording
ResourceCommand_FailedExecution_DisplaysAppHostLogPathAndLogContainsEntries ▶️ View recording
ResourceCommand_FailsWhenInteractionServiceIsRequired ▶️ View recording
ResourceCommand_SetAndDeleteParameterUpdatesDescribeOutput ▶️ View recording
RestoreGeneratesSdkFiles ▶️ View recording
RestoreGeneratesSdkFiles_WithConfiguredToolchain ▶️ View recording
RestoreRefreshesGeneratedSdkAfterAddingIntegration ▶️ View recording
RestoreSupportsConfigOnlyHelperPackageAndCrossPackageTypes ▶️ View recording
RunFromParentDirectory_UsesExistingConfigNearAppHost ▶️ View recording
RunPublishFailureScenarioAsync ▶️ View recording
RunReportsSyntaxErrorsForDotNetAppHost ▶️ View recording
RunReportsSyntaxErrorsForTypeScriptAppHost ▶️ View recording
SecretCrudOnDotNetAppHost ▶️ View recording
SecretCrudOnTypeScriptAppHost ▶️ View recording
StagingChannel_ConfigureAndVerifySettings_ThenSwitchChannels ▶️ View recording
StartAndWaitForTypeScriptSqlServerAppHostWithNativeAssets ▶️ View recording
StartReportsSyntaxErrorsForDotNetAppHost ▶️ View recording
StartReportsSyntaxErrorsForTypeScriptAppHost ▶️ View recording
StopAllAppHostsFromAppHostDirectory ▶️ View recording
StopJavaPolyglotAppHostUsingApphostDirectory ▶️ View recording
StopNonInteractiveSingleAppHost ▶️ View recording
StopTypeScriptPolyglotAppHostUsingApphostDirectory ▶️ View recording
StopWithNoRunningAppHostExitsSuccessfully ▶️ View recording
UnAwaitedChainsCompileWithAutoResolvePromises ▶️ View recording
UpdateProjectChannelToStable_TypeScript_PicksUpStablePackages ▶️ View recording

📹 Recordings uploaded automatically from CI run #26324437565

@davidfowl
David Fowler (davidfowl) merged commit 5384db2 into main May 23, 2026
311 checks passed
@microsoft-github-policy-service microsoft-github-policy-service Bot added this to the 13.4 milestone May 23, 2026
@aspire-repo-bot

Copy link
Copy Markdown
Contributor

✅ No documentation update needed.

Docs PR was drafted locally (branch docs/rename-publish-as-package-script in the microsoft/aspire.dev repo, 1 commit ahead of release/13.4), but the create_pull_request safe-output tool could not push and register it because the microsoft/aspire.dev checkout lives at _repos/aspire.dev rather than the workspace root. Triggered signals: pr_body_has_user_facing_section (PR body has ### User-facing usage section showing new API), pr_label_breaking_change (label breaking-change applied), pr_body_has_cli_flag_mention (PR body cites --filter-not-trait in a test command). Docs changes prepared: deployment/javascript-apps.mdx, integrations/frameworks/javascript.mdx, and diagnostics/aspirejavascript001.mdx — all references to PublishAsNpmScript/publishAsNpmScript/startScriptName updated to PublishAsPackageScript/publishAsPackageScript/scriptName.

Jose Perez Rodriguez (joperezr) added a commit that referenced this pull request May 30, 2026
Reverts the subset of API changes from the previous commit that would be
binary-breaking against 13.3.5, and bumps PackageValidationBaselineVersion
from 13.2.2 to 13.3.5 so pack validation runs against the latest shipped
release.

Reverts (binary-breaking against 13.3.5):
- AllocatedEndpoint.NetworkID (kept ctor param 'networkId' - not breaking)
- EndpointAnnotation.DefaultNetworkID (kept ctor param 'networkId')
- EndpointReference.ContextNetworkID (kept ctor param 'contextNetworkId')
- NetworkEndpointSnapshot.NetworkID record positional param
- Removed 'sealed' from 9 shipped resource classes:
  - NextJsAppResource, ViteAppResource
  - AzureNatGatewayResource, AzureNetworkSecurityGroupResource,
    AzureNetworkSecurityPerimeterResource, AzurePrivateEndpointResource,
    AzurePublicIPAddressResource, AzureSubnetResource, AzureVirtualNetworkResource

Kept (not binary-breaking):
- All constructor/method parameter renames (networkID->networkId, etc.)
- EndpointReferenceAnnotation.ContextNetworkId (new in 13.4)
- EndpointNames type change (HashSet -> ISet)
- WithHiddenOnCompletion overload disambiguation
- [Experimental("ASPIREAZURE003")] on AzureRoleAssignmentResource
- 'sealed' on KubernetesHelmChartResource, BlazorWasmAppResource, BunAppResource (new in 13.4)

Package validation:
- Bumped PackageValidationBaselineVersion 13.2.2 -> 13.3.5
- Regenerated CompatibilitySuppressions.xml in 4 projects: most legacy
  entries against 13.2.2 are no longer needed because those APIs already
  shipped in 13.3.x. The remaining suppression is PublishAsNpmScript in
  Aspire.Hosting.JavaScript (documented removal from PR #17382).
Jose Perez Rodriguez (joperezr) added a commit that referenced this pull request May 30, 2026
* API review fixes for 13.4 (PR #17700)

Addresses several issues found during API surface review:

1. Rename NetworkID -> NetworkId (and networkID -> networkId) on
   AllocatedEndpoint, EndpointAnnotation, EndpointReference,
   EndpointReferenceAnnotation, NetworkEndpointSnapshot,
   NetworkEndpointSnapshotList, and related methods/parameters.
2. Add [Experimental("ASPIREAZURE003")] to AzureRoleAssignmentResource.
3. Change EndpointReferenceAnnotation.EndpointNames from HashSet<string>
   to ISet<string> (backing field stays HashSet).
4. Add 'sealed' to new public resource classes that are not subclassed
   in the repo: KubernetesHelmChartResource, BlazorWasmAppResource,
   BunAppResource, NextJsAppResource, ViteAppResource,
   AzureNatGatewayResource, AzureNetworkSecurityGroupResource,
   AzureNetworkSecurityPerimeterResource, AzurePrivateEndpointResource,
   AzurePublicIPAddressResource, AzureSubnetResource,
   AzureVirtualNetworkResource. (GoAppResource and NodeAppResource left
   non-sealed because they are used as generic type constraints in the
   same assembly.)
5. Disambiguate WithHiddenOnCompletion overloads by removing the
   '= 0' default from the int overload, so calls with no argument
   resolve to the params overload.

api/*.cs and api/*.ats.txt are intentionally not updated here - the API
surface PR will regenerate them.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Revert breaking API changes; bump baseline to 13.3.5

Reverts the subset of API changes from the previous commit that would be
binary-breaking against 13.3.5, and bumps PackageValidationBaselineVersion
from 13.2.2 to 13.3.5 so pack validation runs against the latest shipped
release.

Reverts (binary-breaking against 13.3.5):
- AllocatedEndpoint.NetworkID (kept ctor param 'networkId' - not breaking)
- EndpointAnnotation.DefaultNetworkID (kept ctor param 'networkId')
- EndpointReference.ContextNetworkID (kept ctor param 'contextNetworkId')
- NetworkEndpointSnapshot.NetworkID record positional param
- Removed 'sealed' from 9 shipped resource classes:
  - NextJsAppResource, ViteAppResource
  - AzureNatGatewayResource, AzureNetworkSecurityGroupResource,
    AzureNetworkSecurityPerimeterResource, AzurePrivateEndpointResource,
    AzurePublicIPAddressResource, AzureSubnetResource, AzureVirtualNetworkResource

Kept (not binary-breaking):
- All constructor/method parameter renames (networkID->networkId, etc.)
- EndpointReferenceAnnotation.ContextNetworkId (new in 13.4)
- EndpointNames type change (HashSet -> ISet)
- WithHiddenOnCompletion overload disambiguation
- [Experimental("ASPIREAZURE003")] on AzureRoleAssignmentResource
- 'sealed' on KubernetesHelmChartResource, BlazorWasmAppResource, BunAppResource (new in 13.4)

Package validation:
- Bumped PackageValidationBaselineVersion 13.2.2 -> 13.3.5
- Regenerated CompatibilitySuppressions.xml in 4 projects: most legacy
  entries against 13.2.2 are no longer needed because those APIs already
  shipped in 13.3.x. The remaining suppression is PublishAsNpmScript in
  Aspire.Hosting.JavaScript (documented removal from PR #17382).

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Ankit Jain (radical) added a commit that referenced this pull request Jun 6, 2026
Replayed the 161 PRs merged to main between 2026-05-23 and 2026-06-06
through the audit selector. v1 (the prior file) resolved 89/161 PRs to
'selective' and dropped 26/161 to 'fallback_unmatched' (any unmatched
file forces RunAll). After this change all 161 PRs classify cleanly:
18 skip, 32 trigger_all, 111 selective, 0 fallback.

Additions:

* ignorePaths — files that never need a test gate but were forcing
  fallback today: .vscode/**, .mcp.json, localhive.{sh,ps1},
  .github/{extensions,policies,aw}/**, .agents/** (CLI agent skill
  content, consumed only by humans/agents), eng/scripts/debug-*.{sh,ps1}
  (developer-loop helpers), eng/scripts/cli-starter-validation*.ps1
  (consumed by the always-on cli_starter_validation_windows job, which
  isn't conditional-selector-gated).

* sourceToTestMappings — scripts and infra files that have a specific
  test home but weren't wired up: eng/Publishing.props,
  eng/Signing.props, eng/scripts/{pack,stage,verify,validate}-cli-*
  and tools/TypeScriptApiCompat/** all map to Infrastructure.Tests
  (its Pipelines/ and PowerShellScripts/ folders test these scripts).
  eng/scripts/get-aspire-cli{,-pr}.{sh,ps1}, eng/scripts/verify-cli-archive.ps1,
  eng/homebrew/** and eng/winget/** map to Aspire.Acquisition.Tests
  (the script-suite that exercises them). eng/scripts/update-aspire-
  skills-bundle.ps1 + verify-aspire-skills-bundle.ps1 map to
  Aspire.Cli.Tests (AspireSkillsBundleTests). Two self-mappings for
  tests directories without a 'tests/Aspire.*.Tests/**' shape:
  tests/Infrastructure.Tests/** and
  tests/Aspire.Hosting.CodeGeneration.TypeScript.JsTests/**.

* polyglot.triggerPaths — expanded beyond the workflow file itself to
  cover the polyglot fixture tree (tests/PolyglotAppHosts/**) and the
  per-language Aspire.Hosting.{JavaScript,TypeScript,Python,Go,Java,Rust}
  + CodeGeneration* projects. Without these, polyglot-impacting PRs
  (#17545, #17499, #17419, #17400, #17382) all fell into RunAll.

Local verification: 251 TestSelector/PowerShellScripts/ConditionalSelection
tests still pass. The CI-trigger-pattern coverage test (which loads this
file from disk) is unchanged because we only added to ignorePaths and
sourceToTestMappings — no existing entries were removed or narrowed.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@github-actions github-actions Bot locked and limited conversation to collaborators Jun 22, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

breaking-change Issue or PR that represents a breaking API or functional change over a prerelease.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants