Skip to content
Merged
Show file tree
Hide file tree
Changes from 6 commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
4721112
Backflow from https://github.com/dotnet/dotnet / 4ab0111 build 304527
dotnet-maestro[bot] Mar 5, 2026
adf5ec3
Update dependencies from build 304527
dotnet-maestro[bot] Mar 5, 2026
ae4539e
Fix computing runtime version in CSharpCompilerCommand
jjonescz Mar 6, 2026
a237cb1
Merge release/10.0.2xx into darc-release/10.0.2xx-4be0628d-3a89-432b-…
dotnet-maestro[bot] Mar 9, 2026
c02848b
Update dependencies from build 305203
dotnet-maestro[bot] Mar 9, 2026
fcbc9fd
Merge branch 'release/10.0.2xx' of https://github.com/dotnet/sdk into…
DonnaChen888 Mar 10, 2026
b8dbb9d
Fix indentation only
DonnaChen888 Mar 10, 2026
5868dd7
Update dependencies from build 305491
dotnet-maestro[bot] Mar 10, 2026
50c712e
Merge release/10.0.2xx into darc-release/10.0.2xx-4be0628d-3a89-432b-…
dotnet-maestro[bot] Mar 12, 2026
ea1c5c5
Update dependencies from build 305840
dotnet-maestro[bot] Mar 12, 2026
68dce98
Update dependencies from build 305897
dotnet-maestro[bot] Mar 12, 2026
c025da1
Update .NET SDK version to 10.0.105
marcpopMSFT Mar 12, 2026
4123c76
Update dependencies from build 305952
dotnet-maestro[bot] Mar 12, 2026
29fb117
Update dependencies from build 305986
dotnet-maestro[bot] Mar 13, 2026
1511452
Merge release/10.0.2xx into darc-release/10.0.2xx-4be0628d-3a89-432b-…
dotnet-maestro[bot] Mar 13, 2026
c598da5
Update dependencies from build 306117
dotnet-maestro[bot] Mar 13, 2026
8dd6c39
Update dependencies from build 306140
dotnet-maestro[bot] Mar 14, 2026
fdc2a2e
Update dependencies from build 306236
dotnet-maestro[bot] Mar 15, 2026
d85bb6e
Update dependencies from build 306345
dotnet-maestro[bot] Mar 16, 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
1 change: 1 addition & 0 deletions NuGet.config
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
<clear />
<!--Begin: Package sources managed by Dependency Flow automation. Do not edit the sources below.-->
<!-- Begin: Package sources from dotnet-dotnet -->
<add key="darc-pub-dotnet-dotnet-fc286fa" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/darc-pub-dotnet-dotnet-fc286fac/nuget/v3/index.json" />
<!-- End: Package sources from dotnet-dotnet -->
<!-- Begin: Package sources from microsoft-testfx -->
<!-- End: Package sources from microsoft-testfx -->
Expand Down
178 changes: 116 additions & 62 deletions eng/Version.Details.props

Large diffs are not rendered by default.

246 changes: 123 additions & 123 deletions eng/Version.Details.xml

Large diffs are not rendered by default.

6 changes: 3 additions & 3 deletions eng/Versions.props
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<VersionMajor>10</VersionMajor>
<VersionMinor>0</VersionMinor>
<VersionSDKMinor>2</VersionSDKMinor>
<VersionSDKMinorPatch>0</VersionSDKMinorPatch>
<VersionSDKMinorPatch>2</VersionSDKMinorPatch>
<VersionFeature>$([System.String]::Copy('$(VersionSDKMinorPatch)').PadLeft(2, '0'))</VersionFeature>
<!-- This property powers the SdkAnalysisLevel property in end-user MSBuild code.
It should always be the hundreds-value of the current SDK version, never any
Expand Down Expand Up @@ -35,8 +35,8 @@
<VersionFeature60>36</VersionFeature60>
<VersionFeature70>20</VersionFeature70>
<!-- This version should be N-1 (ie the currently released version) in the preview branch but N-2 in main so that workloads stay behind the unreleased version -->
<VersionFeature80>$([MSBuild]::Add($(VersionFeature), 25))</VersionFeature80>
<VersionFeature90>$([MSBuild]::Add($(VersionFeature), 14))</VersionFeature90>
<VersionFeature80>$([MSBuild]::Add($(VersionFeature), 24))</VersionFeature80>
<VersionFeature90>$([MSBuild]::Add($(VersionFeature), 13))</VersionFeature90>
<!-- Should be kept in sync with VersionFeature70. It should match the version of Microsoft.NET.ILLink.Tasks
referenced by the same 7.0 SDK that references the 7.0.VersionFeature70 runtime pack. -->
<_NET70ILLinkPackVersion>7.0.100-1.23211.1</_NET70ILLinkPackVersion>
Expand Down
1 change: 0 additions & 1 deletion eng/common/core-templates/steps/publish-logs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ steps:
-runtimeSourceFeed https://ci.dot.net/internal
-runtimeSourceFeedKey '$(dotnetbuilds-internal-container-read-token-base64)'
'$(publishing-dnceng-devdiv-code-r-build-re)'
'$(MaestroAccessToken)'
'$(dn-bot-all-orgs-artifact-feeds-rw)'
'$(akams-client-id)'
'$(microsoft-symbol-server-pat)'
Expand Down
21 changes: 0 additions & 21 deletions eng/common/templates/steps/vmr-sync.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,27 +38,6 @@ steps:
displayName: Label PR commit
workingDirectory: $(Agent.BuildDirectory)/repo

- script: |
vmr_sha=$(grep -oP '(?<=Sha=")[^"]*' $(Agent.BuildDirectory)/repo/eng/Version.Details.xml)
echo "##vso[task.setvariable variable=vmr_sha]$vmr_sha"
displayName: Obtain the vmr sha from Version.Details.xml (Unix)
condition: ne(variables['Agent.OS'], 'Windows_NT')
workingDirectory: $(Agent.BuildDirectory)/repo

- powershell: |
[xml]$xml = Get-Content -Path $(Agent.BuildDirectory)/repo/eng/Version.Details.xml
$vmr_sha = $xml.SelectSingleNode("//Source").Sha
Write-Output "##vso[task.setvariable variable=vmr_sha]$vmr_sha"
displayName: Obtain the vmr sha from Version.Details.xml (Windows)
condition: eq(variables['Agent.OS'], 'Windows_NT')
workingDirectory: $(Agent.BuildDirectory)/repo

- script: |
git fetch --all
git checkout $(vmr_sha)
displayName: Checkout VMR at correct sha for repo flow
workingDirectory: ${{ parameters.vmrPath }}

- script: |
git config --global user.name "dotnet-maestro[bot]"
git config --global user.email "dotnet-maestro[bot]@users.noreply.github.com"
Expand Down
1 change: 1 addition & 0 deletions eng/common/templates/vmr-build-pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ resources:
type: github
name: dotnet/dotnet
endpoint: dotnet
ref: refs/heads/main # Set to whatever VMR branch the PR build should insert into

stages:
- template: /eng/pipelines/templates/stages/vmr-build.yml@vmr
Expand Down
5 changes: 5 additions & 0 deletions eng/common/tools.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -824,6 +824,11 @@ function MSBuild-Core() {

$cmdArgs = "$($buildTool.Command) /m /nologo /clp:Summary /v:$verbosity /nr:$nodeReuse /p:ContinuousIntegrationBuild=$ci"

# Add -mt flag for MSBuild multithreaded mode if enabled via environment variable
if ($env:MSBUILD_MT_ENABLED -eq "1") {
$cmdArgs += ' -mt'
}

if ($warnAsError) {
$cmdArgs += ' /warnaserror /p:TreatWarningsAsErrors=true'
}
Expand Down
8 changes: 7 additions & 1 deletion eng/common/tools.sh
Original file line number Diff line number Diff line change
Expand Up @@ -526,7 +526,13 @@ function MSBuild-Core {
}
}

RunBuildTool "$_InitializeBuildToolCommand" /m /nologo /clp:Summary /v:$verbosity /nr:$node_reuse $warnaserror_switch /p:TreatWarningsAsErrors=$warn_as_error /p:ContinuousIntegrationBuild=$ci "$@"
# Add -mt flag for MSBuild multithreaded mode if enabled via environment variable
local mt_switch=""
if [[ "${MSBUILD_MT_ENABLED:-}" == "1" ]]; then
mt_switch="-mt"
fi

RunBuildTool "$_InitializeBuildToolCommand" /m /nologo /clp:Summary /v:$verbosity /nr:$node_reuse $warnaserror_switch $mt_switch /p:TreatWarningsAsErrors=$warn_as_error /p:ContinuousIntegrationBuild=$ci "$@"
}

function GetDarc {
Expand Down
38 changes: 32 additions & 6 deletions eng/common/vmr-sync.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -103,12 +103,20 @@ Set-StrictMode -Version Latest
Highlight 'Installing .NET, preparing the tooling..'
. .\eng\common\tools.ps1
$dotnetRoot = InitializeDotNetCli -install:$true
$env:DOTNET_ROOT = $dotnetRoot
$darc = Get-Darc
$dotnet = "$dotnetRoot\dotnet.exe"

Highlight "Starting the synchronization of VMR.."

# Synchronize the VMR
$versionDetailsPath = Resolve-Path (Join-Path $PSScriptRoot '..\Version.Details.xml') | Select-Object -ExpandProperty Path
[xml]$versionDetails = Get-Content -Path $versionDetailsPath
$repoName = $versionDetails.SelectSingleNode('//Source').Mapping
if (-not $repoName) {
Fail "Failed to resolve repo mapping from $versionDetailsPath"
exit 1
}

$darcArgs = (
"vmr", "forwardflow",
"--tmp", $tmpDir,
Expand All @@ -130,9 +138,27 @@ if ($LASTEXITCODE -eq 0) {
Highlight "Synchronization succeeded"
}
else {
Fail "Synchronization of repo to VMR failed!"
Fail "'$vmrDir' is left in its last state (re-run of this script will reset it)."
Fail "Please inspect the logs which contain path to the failing patch file (use -debugOutput to get all the details)."
Fail "Once you make changes to the conflicting VMR patch, commit it locally and re-run this script."
exit 1
Highlight "Failed to flow code into the local VMR. Falling back to resetting the VMR to match repo contents..."
git -C $vmrDir reset --hard

$resetArgs = (
"vmr", "reset",
"${repoName}:HEAD",
"--vmr", $vmrDir,
"--tmp", $tmpDir,
"--additional-remotes", "${repoName}:${repoRoot}"
)

& "$darc" $resetArgs

if ($LASTEXITCODE -eq 0) {
Highlight "Successfully reset the VMR using 'darc vmr reset'"
}
else {
Fail "Synchronization of repo to VMR failed!"
Fail "'$vmrDir' is left in its last state (re-run of this script will reset it)."
Fail "Please inspect the logs which contain path to the failing patch file (use -debugOutput to get all the details)."
Fail "Once you make changes to the conflicting VMR patch, commit it locally and re-run this script."
exit 1
}
}
30 changes: 25 additions & 5 deletions eng/common/vmr-sync.sh
Original file line number Diff line number Diff line change
Expand Up @@ -186,6 +186,13 @@ fi

# Synchronize the VMR

version_details_path=$(cd "$scriptroot/.."; pwd -P)/Version.Details.xml
repo_name=$(grep -m 1 '<Source ' "$version_details_path" | sed -n 's/.*Mapping="\([^"]*\)".*/\1/p')
if [[ -z "$repo_name" ]]; then
fail "Failed to resolve repo mapping from $version_details_path"
exit 1
fi

export DOTNET_ROOT="$dotnetDir"

"$darc_tool" vmr forwardflow \
Expand All @@ -199,9 +206,22 @@ export DOTNET_ROOT="$dotnetDir"
if [[ $? == 0 ]]; then
highlight "Synchronization succeeded"
else
fail "Synchronization of repo to VMR failed!"
fail "'$vmr_dir' is left in its last state (re-run of this script will reset it)."
fail "Please inspect the logs which contain path to the failing patch file (use --debug to get all the details)."
fail "Once you make changes to the conflicting VMR patch, commit it locally and re-run this script."
exit 1
highlight "Failed to flow code into the local VMR. Falling back to resetting the VMR to match repo contents..."
git -C "$vmr_dir" reset --hard

"$darc_tool" vmr reset \
"$repo_name:HEAD" \
--vmr "$vmr_dir" \
--tmp "$tmp_dir" \
--additional-remotes "$repo_name:$repo_root"

if [[ $? == 0 ]]; then
highlight "Successfully reset the VMR using 'darc vmr reset'"
else
fail "Synchronization of repo to VMR failed!"
fail "'$vmr_dir' is left in its last state (re-run of this script will reset it)."
fail "Please inspect the logs which contain path to the failing patch file (use --debug to get all the details)."
fail "Once you make changes to the conflicting VMR patch, commit it locally and re-run this script."
exit 1
fi
fi
6 changes: 3 additions & 3 deletions global.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"errorMessage": "The .NET SDK is not installed or is not configured correctly. Please run ./build to install the correct SDK version locally."
},
"tools": {
"dotnet": "10.0.102",
"dotnet": "10.0.103",
"runtimes": {
"dotnet": [
"$(MicrosoftNETCorePlatformsPackageVersion)"
Expand All @@ -21,8 +21,8 @@
}
},
"msbuild-sdks": {
"Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26120.103",
"Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26120.103",
"Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26159.104",
"Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26159.104",
"Microsoft.Build.NoTargets": "3.7.0",
"Microsoft.Build.Traversal": "3.4.0",
"Microsoft.WixToolset.Sdk": "5.0.2-dotnet.2811440"
Expand Down
35 changes: 32 additions & 3 deletions src/Cli/dotnet/Commands/Run/CSharpCompilerCommand.cs
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,8 @@ internal sealed partial class CSharpCompilerCommand
private static string DotNetRootPath => field ??= Path.GetDirectoryName(Path.GetDirectoryName(SdkPath)!)!;
private static string ClientDirectory => field ??= Path.Combine(SdkPath, "Roslyn", "bincore");
private static string NuGetCachePath => field ??= SettingsUtility.GetGlobalPackagesFolder(Settings.LoadDefaultSettings(null));
internal static string RuntimeVersion => field ??= RuntimeInformation.FrameworkDescription.Split(' ').Last();
private static string DefaultRuntimeVersion => field ??= GetDefaultRuntimeVersion();
internal static string RuntimeVersion => field ??= ComputeRuntimeVersion();
private static string DefaultRuntimeVersion => field ??= ComputeDefaultRuntimeVersion();
private static string TargetFrameworkVersion => Product.TargetFrameworkVersion;

public required string EntryPointFileFullPath { get; init; }
Expand Down Expand Up @@ -432,10 +432,39 @@ public static bool IsPathOption(string arg, out int colonIndex)
return false;
}

private static string ComputeRuntimeVersion()
{
var result = GetConfiguredRuntimeVersion() ?? GetExecutingRuntimeVersion();
Debug.Assert(!string.IsNullOrWhiteSpace(result));
return result;

static string? GetConfiguredRuntimeVersion()
{
string runtimeConfigPath = Path.Combine(SdkPath, "dotnet.runtimeconfig.json");
if (!File.Exists(runtimeConfigPath)) return null;

using var stream = File.OpenRead(runtimeConfigPath);
using var jsonDoc = JsonDocument.Parse(stream);

JsonElement root = jsonDoc.RootElement;
if (!root.TryGetProperty("runtimeOptions", out JsonElement runtimeOptions) ||
!runtimeOptions.TryGetProperty("framework", out JsonElement framework)) return null;

string? runtimeVersion = framework.GetProperty("version").GetString();
return runtimeVersion;
}

static string? GetExecutingRuntimeVersion()
{
var executingRuntimeVersion = Path.GetFileName(Path.GetDirectoryName(System.Runtime.InteropServices.RuntimeEnvironment.GetRuntimeDirectory()));
return executingRuntimeVersion;
}
}

/// <summary>
/// See <c>GenerateDefaultRuntimeFrameworkVersion</c>.
/// </summary>
private static string GetDefaultRuntimeVersion()
private static string ComputeDefaultRuntimeVersion()
{
if (NuGetVersion.TryParse(RuntimeVersion, out var version))
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
{
"tool": {
"name": "Microsoft.CodeAnalysis.CSharp.NetAnalyzers",
"version": "10.0.200",
"version": "10.0.202",
"language": "en-US"
},
"rules": {
Expand Down Expand Up @@ -708,7 +708,7 @@
{
"tool": {
"name": "Microsoft.CodeAnalysis.NetAnalyzers",
"version": "10.0.200",
"version": "10.0.202",
"language": "en-US"
},
"rules": {
Expand Down Expand Up @@ -6503,7 +6503,7 @@
{
"tool": {
"name": "Microsoft.CodeAnalysis.VisualBasic.NetAnalyzers",
"version": "10.0.200",
"version": "10.0.202",
"language": "en-US"
},
"rules": {
Expand Down
Loading