Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
a087b23
Backflow from https://github.com/dotnet/dotnet / e1fc22d build 336654
dotnet-maestro[bot] Oct 14, 2026
cae3fd5
Update dependencies from build 336654
dotnet-maestro[bot] Oct 14, 2026
9a831a3
Fix SqlClient and PR attention checks
Oct 14, 2026
2226e25
Backflow from https://github.com/dotnet/dotnet / 85ada61 build 336805
dotnet-maestro[bot] Oct 19, 2026
e7a1d45
Merge main into darc-main-b03104bd-ceca-4eff-9906-7b95be4906d4
dotnet-maestro[bot] Oct 19, 2026
83f41f8
Update dependencies from build 336805
dotnet-maestro[bot] Oct 19, 2026
1d2e09c
Update dependencies from build 336905
dotnet-maestro[bot] Oct 19, 2026
40d8cbe
Merge main into darc-main-b03104bd-ceca-4eff-9906-7b95be4906d4
dotnet-maestro[bot] Oct 20, 2026
c93e402
Update dependencies from build 337216
dotnet-maestro[bot] Oct 20, 2026
3e11727
Merge main into darc-main-b03104bd-ceca-4eff-9906-7b95be4906d4
dotnet-maestro[bot] Oct 21, 2026
bd45ff7
Update dependencies from build 337438
dotnet-maestro[bot] Oct 21, 2026
08f96b0
Backflow from https://github.com/dotnet/dotnet / ee344f8 build 337683
dotnet-maestro[bot] Oct 21, 2026
96c0fdf
Update dependencies from build 337683
dotnet-maestro[bot] Oct 21, 2026
7058266
Update bootstrap SDK to 12.0.100-alpha.1.26521.103
wtgodbe Oct 21, 2026
e64576f
Remove redundant shared-framework package references
wtgodbe Oct 21, 2026
c3e7da4
Make API Explorer logging test assembly versions dynamic
wtgodbe Oct 21, 2026
89ecaba
Fix content root in endpoint redirect test fixture
wtgodbe Oct 21, 2026
876a69c
Synchronize incomplete request body test before closing the client
wtgodbe Oct 21, 2026
b78b77d
Wait for query string page navigation in routing test
wtgodbe Oct 21, 2026
0b14e71
Isolate generated template restore from parent SDK
wtgodbe Oct 21, 2026
d689430
Verify propagation-data creation tags during sampling
wtgodbe Oct 21, 2026
6ebbcd1
Isolate Kestrel certificate validation tests from TLS resumption
wtgodbe Oct 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .config/dotnet-tools.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
]
},
"dotnet-ef": {
"version": "12.0.0-alpha.1.26473.114",
"version": "12.0.0-alpha.1.26521.103",
"commands": [
"dotnet-ef"
]
Expand All @@ -27,7 +27,7 @@
]
},
"microsoft.dotnet.helix.jobmonitor": {
"version": "12.0.0-beta.26473.114",
"version": "12.0.0-beta.26521.103",
"commands": [
"dotnet-helix-job-monitor"
]
Expand Down
3 changes: 0 additions & 3 deletions Directory.Build.targets
Original file line number Diff line number Diff line change
Expand Up @@ -131,9 +131,6 @@
'$(Language)' == 'C#' AND
'$(TargetFrameworkIdentifier)' != '.NETFramework' ">
<AssemblyVersion>$(AspNetCoreMajorMinorVersion).0.0</AssemblyVersion>
<!-- Keep assembly identities compatible with the bootstrap SDK's ASP.NET Core 11 reference packs.
Remove this pin once those references are replaced with matching ASP.NET Core 12 assemblies. -->
<AssemblyVersion Condition=" '$(PinAspNetCoreAssemblyVersionToPreviousMajor)' != 'false' ">11.0.0.0</AssemblyVersion>
</PropertyGroup>

<PropertyGroup>
Expand Down
1 change: 0 additions & 1 deletion NuGet.config
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
<clear />
<!--Begin: Package sources managed by Dependency Flow automation. Do not edit the sources below.-->
<!-- Begin: Package sources from dotnet-extensions -->
<add key="darc-pub-dotnet-extensions-f7506cc" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/darc-pub-dotnet-extensions-f7506ccb/nuget/v3/index.json" />
<!-- End: Package sources from dotnet-extensions -->
<!--End: Package sources managed by Dependency Flow automation. Do not edit the sources above.-->
<add key="dotnet-eng" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json" />
Expand Down
188 changes: 94 additions & 94 deletions eng/Version.Details.props

Large diffs are not rendered by default.

378 changes: 189 additions & 189 deletions eng/Version.Details.xml

Large diffs are not rendered by default.

7 changes: 3 additions & 4 deletions eng/Versions.props
Original file line number Diff line number Diff line change
Expand Up @@ -68,9 +68,8 @@
<UsingToolVSSDK>true</UsingToolVSSDK>
<!-- Disable XLIFF tasks -->
<UsingToolXliff>false</UsingToolXliff>
<!-- Use the current SDK's nearest pruning data when targeting a newer .NET version. -->
<LoadPrunePackageDataFromNearestFramework Condition="'$(DefaultNetCoreTargetFramework)' != '$(NetCurrent)'">true</LoadPrunePackageDataFromNearestFramework>
<AllowMissingPrunePackageData Condition="'$(DefaultNetCoreTargetFramework)' != '$(NetCurrent)'">true</AllowMissingPrunePackageData>
<!-- Targetingpack support -->
<TargetingPackCurrentTargetFramework>$(DefaultNetCoreTargetFramework)</TargetingPackCurrentTargetFramework>
</PropertyGroup>

<!--
Expand Down Expand Up @@ -214,7 +213,7 @@
<MicrosoftTestingExtensionsTrxReportVersion>2.2.3</MicrosoftTestingExtensionsTrxReportVersion>
<!-- Components.Testing dependencies -->
<YarpReverseProxyVersion>2.3.0</YarpReverseProxyVersion>
<MicrosoftDataSqlClientVersion>7.1.0</MicrosoftDataSqlClientVersion>
<MicrosoftDataSqlClientVersion>7.1.1</MicrosoftDataSqlClientVersion>
<MicrosoftDataSqlClientExtensionsAzureVersion>1.0.0</MicrosoftDataSqlClientExtensionsAzureVersion>
<MicrosoftOpenApiVersion>[3.11.0,4.0.0)</MicrosoftOpenApiVersion>
<MicrosoftOpenApiYamlReaderVersion>[3.11.0,4.0.0)</MicrosoftOpenApiYamlReaderVersion>
Expand Down
8 changes: 1 addition & 7 deletions eng/build.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -100,8 +100,7 @@ Build the repository in product mode (short: -pb).
Set when building from within the VMR.

.PARAMETER MSBuildMultiThreaded
Sets MSBuild's multi-threaded mode, i.e. the -mt switch (short: -mt). Defaults to on for local builds and is not
run on CI unless explicitly requested.
Sets MSBuild's multi-threaded mode, i.e. the -mt switch (short: -mt). Defaults to on for both local and CI builds.

.PARAMETER NodeReuse
Sets the nodereuse msbuild parameter. Node reuse is disabled by default in this repository as a workaround for
Expand Down Expand Up @@ -359,11 +358,6 @@ $performDotnetBuild = $msBuildEngine -ne 'vs' -and ($BuildJava -or $BuildManaged
# Initialize global variables need to be set before the import of Arcade is imported
$restore = $RunRestore

# MSBuild's multi-threaded mode isn't run on CI unless it was explicitly requested via -msbuildMultiThreaded.
if ($CI -and -not $PSBoundParameters.ContainsKey('msbuildMultiThreaded')) {
$msbuildMultiThreaded = $false
}

# Ensure passing neither -bl nor -nobl on CI avoids errors in tools.ps1. This is needed because both parameters are
# $false by default i.e. they always exist. (We currently avoid binary logs but that is made visible in the YAML.)
if ($CI -and -not $excludeCIBinarylog) {
Expand Down
4 changes: 0 additions & 4 deletions eng/common/build.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -181,10 +181,6 @@ try {
if (-not $PSBoundParameters.ContainsKey('nodeReuse')) {
$nodeReuse = $false
}
# MSBuild's multi-threaded mode isn't run on CI unless it was explicitly requested via -msbuildMultiThreaded.
if (-not $PSBoundParameters.ContainsKey('msbuildMultiThreaded')) {
$msbuildMultiThreaded = $false
}
}

if (-not [string]::IsNullOrEmpty($binaryLogName)) {
Expand Down
135 changes: 41 additions & 94 deletions eng/common/core-templates/job/helix-job-monitor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ parameters:
type: boolean
default: false

# Azure service connection ID authorized for Helix. Required when
# Workload identity federation service connection name authorized for Helix. Required when
# useEntraAuthentication is true.
- name: azureSubscription
type: string
Expand Down Expand Up @@ -94,13 +94,12 @@ parameters:
type: boolean
default: false

# When true, test results are reported to Azure DevOps using the fully qualified test name
# (Namespace.Type.Method) as the stable automatedTestName and the visible title is qualified as
# well (--use-fully-qualified-test-name). Opt-in because it changes AzDO test identity and display;
# primarily useful for frameworks like MSTest whose display name is only the method name.
# When true (the default), test results are reported to Azure DevOps using the fully qualified test
# name (Namespace.Type.Method) as the stable automatedTestName and the visible title is qualified as
# well (--use-fully-qualified-test-name). Set to false to preserve framework-provided display names.
- name: useFullyQualifiedTestName
type: boolean
default: false
default: true

# Controls per-test output attachments. Defaults to Failed.
- name: testResultAttachmentMode
Expand Down Expand Up @@ -136,6 +135,20 @@ jobs:
displayName: Monitor Helix Jobs
timeoutInMinutes: ${{ parameters.timeoutInMinutes }}
continueOnError: ${{ parameters.continueOnError }}
variables:
HELIX_MONITOR_BASE_URI: ${{ parameters.helixBaseUri }}
HELIX_MONITOR_USE_ENTRA_AUTHENTICATION: ${{ parameters.useEntraAuthentication }}
HELIX_MONITOR_POLLING_INTERVAL_SECONDS: ${{ parameters.pollingIntervalSeconds }}
HELIX_MONITOR_FAIL_ON_FAILED_TESTS: ${{ parameters.failWorkItemsWithFailedTests }}
HELIX_MONITOR_ALLOW_NO_HELIX_JOBS: ${{ parameters.allowNoHelixJobs }}
HELIX_MONITOR_USE_FULLY_QUALIFIED_TEST_NAME: ${{ parameters.useFullyQualifiedTestName }}
HELIX_MONITOR_TIMEOUT_IN_MINUTES: ${{ parameters.timeoutInMinutes }}
HELIX_MONITOR_TEST_RESULT_UPLOAD_PARALLELISM: ${{ parameters.testResultUploadParallelism }}
HELIX_MONITOR_ORGANIZATION: ${{ parameters.organization }}
HELIX_MONITOR_REPOSITORY: ${{ parameters.repository }}
HELIX_MONITOR_TEST_RESULT_ATTACHMENT_MODE: ${{ parameters.testResultAttachmentMode }}
HELIX_MONITOR_TOOL_NUPKG_ARTIFACT_NAME: ${{ parameters.toolNupkgArtifactName }}
HELIX_MONITOR_TOOL_COMMAND: ${{ parameters.toolCommand }}
${{ if ne(length(parameters.dependsOn), 0) }}:
dependsOn: ${{ parameters.dependsOn }}
${{ if ne(parameters.condition, '') }}:
Expand All @@ -157,22 +170,6 @@ jobs:
- pwsh: throw "azureSubscription must be set when useEntraAuthentication is true."
displayName: Validate Helix Entra authentication

- ${{ if eq(parameters.useEntraAuthentication, true) }}:
- task: AzureCLI@2
displayName: Initialize Helix Entra authentication
inputs:
azureSubscription: ${{ parameters.azureSubscription }}
addSpnToEnvironment: true
scriptType: pscore
scriptLocation: inlineScript
inlineScript: |
if ([string]::IsNullOrWhiteSpace($env:servicePrincipalId) -or [string]::IsNullOrWhiteSpace($env:tenantId)) {
throw "The Helix Azure service connection did not provide a service principal or tenant ID."
}

Write-Host "##vso[task.setvariable variable=HelixEntraClientId]$env:servicePrincipalId"
Write-Host "##vso[task.setvariable variable=HelixEntraTenantId]$env:tenantId"

- ${{ if ne(parameters.toolNupkgArtifactName, '') }}:
- task: DownloadPipelineArtifact@2
displayName: Download Helix Job Monitor artifact
Expand Down Expand Up @@ -241,76 +238,26 @@ jobs:
- bash: ./eng/common/dotnet.sh tool restore
displayName: Restore Helix Job Monitor

- bash: |
set -euo pipefail

toolArgs=(
--helix-base-uri '${{ parameters.helixBaseUri }}'
--use-entra-authentication '${{ parameters.useEntraAuthentication }}'
--polling-interval-seconds '${{ parameters.pollingIntervalSeconds }}'
--fail-on-failed-tests '${{ parameters.failWorkItemsWithFailedTests }}'
--allow-no-helix-jobs '${{ parameters.allowNoHelixJobs }}'
--use-fully-qualified-test-name '${{ parameters.useFullyQualifiedTestName }}'
--max-wait-minutes "$((${{ parameters.timeoutInMinutes }} - 5))" # Set the tool's timeout slightly lower than the Azure DevOps job timeout to allow it to exit gracefully.
--stage-name '$(System.StageName)'
--stage-attempt '$(System.StageAttempt)'
--job-attempt '$(System.JobAttempt)'
--test-result-upload-parallelism '${{ parameters.testResultUploadParallelism }}'
)

organization='${{ parameters.organization }}'
repository='${{ parameters.repository }}'
testResultAttachmentMode='${{ parameters.testResultAttachmentMode }}'

# Fall back to Azure DevOps-provided environment variables when the caller did not
# supply organization / repository explicitly. BUILD_REPOSITORY_NAME is typically
# 'owner/repo' for GitHub-backed builds and 'owner-repo' for internal builds.
if [ -z "$organization" ] || [ -z "$repository" ]; then
buildRepoName="${BUILD_REPOSITORY_NAME:-}"
if [ -n "$buildRepoName" ] && [[ "$buildRepoName" == */* ]]; then
repoOwner="${buildRepoName%%/*}"
repoName="${buildRepoName#*/}"
elif [ -n "$buildRepoName" ] && [[ "$buildRepoName" == *-* ]]; then
repoOwner="${buildRepoName%%-*}"
repoName="${buildRepoName#*-}"
fi

if [ -n "${repoOwner:-}" ] && [ -n "${repoName:-}" ]; then
if [ -z "$organization" ]; then organization="$repoOwner"; fi
if [ -z "$repository" ]; then repository="$repoName"; fi
fi
fi

if [ -n "$organization" ]; then toolArgs+=( --organization "$organization" ); fi
if [ -n "$repository" ]; then toolArgs+=( --repository "$repository" ); fi
if [ -n "$testResultAttachmentMode" ]; then
toolArgs+=( --test-result-attachment-mode "$testResultAttachmentMode" )
fi

# Build.Reason and Build.SourceBranch are required to derive the Helix source filter
# the same way the Helix SDK submitter does (PR -> 'pr', internal -> 'official',
# otherwise -> 'ci'). Without these, manually-queued / scheduled / CI builds would
# be looked up under the wrong source prefix and find zero jobs.
toolArgs+=( --build-reason "$(Build.Reason)" )
toolArgs+=( --source-branch "$(Build.SourceBranch)" )

if [ -n '${{ parameters.toolNupkgArtifactName }}' ]; then
# Tool was installed from a local nupkg; run the DLL via the repo-local dotnet.
export DOTNET_ROOT="$(Build.SourcesDirectory)/.dotnet"
./eng/common/dotnet.sh exec "$(HelixJobMonitorDll)" "${toolArgs[@]}"
else
# Tool was restored from the local .config/dotnet-tools.json manifest; invoke it
# through the manifest from the repo root.
pushd "$BUILD_SOURCESDIRECTORY" > /dev/null
trap 'popd > /dev/null' EXIT
./eng/common/dotnet.sh tool run '${{ parameters.toolCommand }}' -- "${toolArgs[@]}"
fi
displayName: Monitor Helix Jobs
env:
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
${{ if eq(parameters.useEntraAuthentication, false) }}:
- ${{ if eq(parameters.useEntraAuthentication, true) }}:
- task: AzureCLI@2
displayName: Monitor Helix Jobs
inputs:
azureSubscription: ${{ parameters.azureSubscription }}
keepAzSessionActive: true
scriptType: bash
scriptLocation: inlineScript
inlineScript: |
set -euo pipefail

# AzureCLI@2 replaces SYSTEM_ACCESSTOKEN with the service connection token.
export SYSTEM_ACCESSTOKEN="$HELIX_AZDO_ACCESSTOKEN"
bash "$BUILD_SOURCESDIRECTORY/eng/common/run-helix-job-monitor.sh"
env:
HELIX_AZDO_ACCESSTOKEN: $(System.AccessToken)

- ${{ if eq(parameters.useEntraAuthentication, false) }}:
- bash: bash "$BUILD_SOURCESDIRECTORY/eng/common/run-helix-job-monitor.sh"
displayName: Monitor Helix Jobs
env:
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
HELIX_ACCESSTOKEN: ${{ parameters.helixAccessToken }}
${{ if eq(parameters.useEntraAuthentication, true) }}:
AZURESUBSCRIPTION_CLIENT_ID: $(HelixEntraClientId)
AZURESUBSCRIPTION_TENANT_ID: $(HelixEntraTenantId)
AZURESUBSCRIPTION_SERVICE_CONNECTION_ID: ${{ parameters.azureSubscription }}
2 changes: 1 addition & 1 deletion eng/common/core-templates/stages/renovate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ parameters:

# Renovate version used in the container image tag.
- name: renovateVersion
default: 43
default: 44
type: number

# Pool configuration for SDL analysis.
Expand Down
5 changes: 2 additions & 3 deletions eng/common/core-templates/steps/astred-artifacts.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,6 @@ steps:
env:
ASTRED_BINLOG_DIR: ${{ parameters.binlogDir }}
ASTRED_CAPTURE_PATH: ${{ parameters.capturePath }}
condition: succeededOrFailed()
continueOnError: true

- pwsh: |
Expand Down Expand Up @@ -94,12 +93,12 @@ steps:
env:
ASTRED_SOURCES_PATH: ${{ parameters.sourcesPath }}
ASTRED_CAPTURE_PATH: ${{ parameters.capturePath }}
condition: succeededOrFailed()
continueOnError: true

- task: UploadAstred@0
displayName: Upload Digest to Astred
condition: and(succeededOrFailed(), eq(variables['ASTRED_DIGEST_READY'], 'true'))
condition: and(succeeded(), eq(variables['ASTRED_DIGEST_READY'], 'true'))
continueOnError: true
inputs:
SourcePath: ${{ parameters.capturePath }}/upload
env:
Expand Down
Loading
Loading