Skip to content

Merge release/13.3 to main after v13.3.5 release (supersedes #17337)#17343

Merged
joperezr merged 6 commits into
mainfrom
joperezr/backmerge-13.3-to-main
May 21, 2026
Merged

Merge release/13.3 to main after v13.3.5 release (supersedes #17337)#17343
joperezr merged 6 commits into
mainfrom
joperezr/backmerge-13.3-to-main

Conversation

@joperezr
Copy link
Copy Markdown
Member

This PR supersedes #17337.

PR #17337 was created automatically by the release workflow to back-merge release/13.3 into main after the v13.3.5 release. However:

What this PR does

This branch is based on release/13.3 and:

  1. Reverts the v13.3.5 version bump (revert of Bump patch version from 13.3.4 to 13.3.5 #17315) so main keeps its 13.4.0 VersionPrefix.
  2. Merges main in to pre-resolve conflicts on this branch rather than at PR-merge time.
  3. Resolves the lone real conflict in tests/Aspire.Cli.Tests/DotNet/DotNetCliRunnerTests.cs between [release/13.3] Stop forcing MSBuild server for Aspire CLI builds #17314's RunAsyncDoesNotInjectDotnetCliUseMsBuildServerWhenNoBuildIsFalse rename and main's new binlog tests — keeping both.

Net effect on main

Only the changes from #17314 (Stop forcing MSBuild server for Aspire CLI builds) flow into main — 2 files, ~22 lines:

  • src/Aspire.Cli/DotNet/DotNetCliRunner.cs
  • tests/Aspire.Cli.Tests/DotNet/DotNetCliRunnerTests.cs

Everything else from release/13.3 is either already in main or intentionally not carried over.

Checklist

  • eng/Versions.props stays at 13.4.0 (main's version)
  • No conflict markers remain
  • Aspire.Cli.Tests builds cleanly

Replaces #17337.

aspire-repo-bot Bot and others added 6 commits May 19, 2026 19:59
Accept server-provided values for disabled interaction inputs so dynamic Azure provisioning fields such as Location can be populated after selecting an existing resource group. Preserve local edits for enabled inputs.

Co-authored-by: Damian Edwards <[email protected]>
Co-authored-by: Copilot <[email protected]>
)

* Stop forcing MSBuild server for CLI dotnet commands

Co-authored-by: davidfowl <[email protected]>

* Remove outdated override comment in DotNetCliRunner test

Co-authored-by: davidfowl <[email protected]>

---------

Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: davidfowl <[email protected]>
These jobs only download already-built CLI archives and prepare
WinGet manifests / Homebrew casks; they never run the repo build,
so artifacts/log/$(_BuildConfig) is never produced. With
enablePublishBuildArtifacts: true, the Arcade 1ES job template
injects a Publish Logs pipelineArtifact output whose targetPath
points at that empty/missing directory. 1ES path validation on
that output fails the job (continueOnError on the CopyFiles step
doesn't help because the failure is on the 1ES publish output
itself).

Set enablePublishBuildArtifacts: false on the WinGet/Homebrew
installer stage in both the internal (azure-pipelines.yml) and
unofficial (azure-pipelines-unofficial.yml) pipelines. There are
no build logs to publish from these jobs.

This fixes the Prepare Installers stage failures in the internal
pipeline (e.g. dnceng/internal build 2969660).

Co-authored-by: Ankit Jain <[email protected]>
Co-authored-by: Copilot <[email protected]>
Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: joperezr <[email protected]>
….3-to-main

# Conflicts:
#	tests/Aspire.Cli.Tests/DotNet/DotNetCliRunnerTests.cs
Copilot AI review requested due to automatic review settings May 21, 2026 04:05
@joperezr joperezr added the area-engineering-systems infrastructure helix infra engineering repo stuff label May 21, 2026
@joperezr joperezr requested a review from davidfowl as a code owner May 21, 2026 04:05
@joperezr joperezr added the area-engineering-systems infrastructure helix infra engineering repo stuff label May 21, 2026
@github-actions
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 -- 17343

Or

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

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR performs the post-release back-merge of release/13.3 into main after v13.3.5, while ensuring main keeps its 13.4.0 versioning and only the intended functional delta flows in (the #17314 change to stop forcing MSBuild server behavior for Aspire CLI dotnet invocations).

Changes:

  • Stop injecting DOTNET_CLI_USE_MSBUILD_SERVER into the environment for dotnet build (AppHost build) executions.
  • Stop injecting DOTNET_CLI_USE_MSBUILD_SERVER into the environment for dotnet run executions.
  • Update/rename CLI runner tests to assert the env var is not injected.
Show a summary per file
File Description
src/Aspire.Cli/DotNet/DotNetCliRunner.cs Removes forced DOTNET_CLI_USE_MSBUILD_SERVER injection for build/run so the .NET SDK decides MSBuild server behavior.
tests/Aspire.Cli.Tests/DotNet/DotNetCliRunnerTests.cs Updates tests to validate the CLI no longer injects DOTNET_CLI_USE_MSBUILD_SERVER and renames affected test cases.

Copilot's findings

  • Files reviewed: 2/2 changed files
  • Comments generated: 1

Comment on lines +137 to 141
public async Task BuildAsyncDoesNotInjectConfiguredDotnetCliUseMsBuildServer()
{
using var workspace = TemporaryWorkspace.Create(outputHelper);
var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj"));
await File.WriteAllTextAsync(projectFile.FullName, "Not a real project file.");
@github-actions
Copy link
Copy Markdown
Contributor

CLI E2E Tests unknown — 95 passed, 0 failed, 5 unknown (commit f5c18f5)

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
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 #26204784902

@joperezr joperezr merged commit 3d74256 into main May 21, 2026
307 checks passed
@microsoft-github-policy-service microsoft-github-policy-service Bot added this to the 13.4 milestone May 21, 2026
@aspire-repo-bot
Copy link
Copy Markdown
Contributor

✅ No documentation update needed.

Step 5 branch: docs_optional → internal_refactor

Triggered signals: none (signal_count = 0)

The PR is a back-merge of release/13.3 into main after the v13.3.5 release. The only substantive change flowing into main is from #17314 (Stop forcing MSBuild server for Aspire CLI builds):

  • src/Aspire.Cli/DotNet/DotNetCliRunner.cs — internal implementation change; no new public types, CLI options, or user-visible strings added
  • tests/Aspire.Cli.Tests/DotNet/DotNetCliRunnerTests.cs — test file only

This is a pure internal refactor with no user-facing surface change, so no documentation update is required.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area-engineering-systems infrastructure helix infra engineering repo stuff

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants