diff --git a/NuGet.config b/NuGet.config
index 23e595910..27acb5ced 100644
--- a/NuGet.config
+++ b/NuGet.config
@@ -7,6 +7,7 @@
+
diff --git a/eng/Version.Details.props b/eng/Version.Details.props
index 847e7d830..51dc6fd40 100644
--- a/eng/Version.Details.props
+++ b/eng/Version.Details.props
@@ -6,8 +6,8 @@ This file should be imported by eng/Versions.props
- 12.0.0-beta.26480.102
- 4.0.0-alpha.1.26480.102
+ 12.0.0-beta.26531.102
+ 4.0.0-alpha.1.26531.102
diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index f7c2b89c3..fa1893d60 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -1,16 +1,16 @@
-
+
-
+
https://github.com/dotnet/dotnet
- a2f466a2ccc2851d3c665f764a36b0cb59dd18b8
+ e2a826638ffc3d7c2b3e72ccf827ddfe96269d57
-
+
https://github.com/dotnet/dotnet
- a2f466a2ccc2851d3c665f764a36b0cb59dd18b8
+ e2a826638ffc3d7c2b3e72ccf827ddfe96269d57
diff --git a/eng/common/build.ps1 b/eng/common/build.ps1
index 305132a6d..64c5ed102 100644
--- a/eng/common/build.ps1
+++ b/eng/common/build.ps1
@@ -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)) {
diff --git a/eng/common/core-templates/job/onelocbuild.yml b/eng/common/core-templates/job/onelocbuild.yml
index b772dc578..bd11c2e08 100644
--- a/eng/common/core-templates/job/onelocbuild.yml
+++ b/eng/common/core-templates/job/onelocbuild.yml
@@ -106,7 +106,7 @@ jobs:
outputVariableName: 'GitHubAppInstallationToken'
condition: ${{ parameters.condition }}
- - task: OneLocBuild@2
+ - task: OneLocBuild@3
displayName: OneLocBuild
env:
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
diff --git a/eng/common/core-templates/steps/astred-artifacts.yml b/eng/common/core-templates/steps/astred-artifacts.yml
index ab01349d5..86420925b 100644
--- a/eng/common/core-templates/steps/astred-artifacts.yml
+++ b/eng/common/core-templates/steps/astred-artifacts.yml
@@ -47,7 +47,6 @@ steps:
env:
ASTRED_BINLOG_DIR: ${{ parameters.binlogDir }}
ASTRED_CAPTURE_PATH: ${{ parameters.capturePath }}
- condition: succeededOrFailed()
continueOnError: true
- pwsh: |
@@ -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:
diff --git a/eng/common/cross/install-debs.py b/eng/common/cross/install-debs.py
index 1d1dfabf7..e2d5ef403 100755
--- a/eng/common/cross/install-debs.py
+++ b/eng/common/cross/install-debs.py
@@ -36,6 +36,8 @@ async def download_file(session, url, dest_path, max_retries=3, retry_delay=2, t
f.write(content)
print(f"Downloaded {url} at {dest_path}")
return
+ elif response.status >= 500 or response.status in (408, 429):
+ response.raise_for_status()
else:
raise Exception(f"Failed to download {url}, Status Code: {response.status}")
except (asyncio.CancelledError, asyncio.TimeoutError, aiohttp.ClientError) as e:
diff --git a/eng/common/msbuild.ps1 b/eng/common/msbuild.ps1
index 807694506..161f8e807 100644
--- a/eng/common/msbuild.ps1
+++ b/eng/common/msbuild.ps1
@@ -19,11 +19,6 @@ try {
$nodeReuse = $false
}
- # 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
- }
-
MSBuild @extraArgs
}
catch {
diff --git a/eng/common/native/NativeAotSupported.props b/eng/common/native/NativeAotSupported.props
index cdff9ef03..002aa9c24 100644
--- a/eng/common/native/NativeAotSupported.props
+++ b/eng/common/native/NativeAotSupported.props
@@ -3,16 +3,15 @@
<_NativeAotSupportedOS Condition="
- '$(TargetOS)' != 'browser' and
'$(TargetOS)' != 'haiku' and
'$(TargetOS)' != 'illumos' and
'$(TargetOS)' != 'netbsd' and
- '$(TargetOS)' != 'solaris'
+ '$(TargetOS)' != 'solaris' and
+ '$(TargetOS)' != 'openharmony'
">true
<_NativeAotSupportedArch Condition="
- '$(TargetArchitecture)' != 'wasm' and
'$(TargetArchitecture)' != 's390x' and
'$(TargetArchitecture)' != 'ppc64le' and
('$(TargetArchitecture)' != 'x86' or '$(TargetOS)' == 'windows')
diff --git a/eng/common/native/install-dependencies.sh b/eng/common/native/install-dependencies.sh
index aff839fa0..be405fd62 100755
--- a/eng/common/native/install-dependencies.sh
+++ b/eng/common/native/install-dependencies.sh
@@ -26,7 +26,7 @@ case "$os" in
apt install -y build-essential gettext locales cmake llvm clang lld lldb liblldb-dev libunwind8-dev libicu-dev liblttng-ust-dev \
libssl-dev libkrb5-dev pigz cpio ninja-build file
- localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8
+ localedef -i en_US -c -f UTF-8 en_US.UTF-8
elif [ "$ID" = "fedora" ] || [ "$ID" = "rhel" ] || [ "$ID" = "azurelinux" ] || [ "$ID" = "centos" ]; then
pkg_mgr="$(command -v tdnf 2>/dev/null || command -v dnf)"
$pkg_mgr install -y cmake llvm lld lldb clang python curl libicu-devel openssl-devel krb5-devel lttng-ust-devel pigz cpio ninja-build file
diff --git a/eng/common/sdk-task.ps1 b/eng/common/sdk-task.ps1
index 8d72d803d..ad35ccb0d 100644
--- a/eng/common/sdk-task.ps1
+++ b/eng/common/sdk-task.ps1
@@ -49,15 +49,16 @@ function Print-Usage() {
Write-Host "Command line arguments not listed above are passed thru to msbuild."
}
-function Build([string]$target) {
- $logSuffix = if ($target -eq 'Execute') { '' } else { ".$target" }
- $log = Join-Path $LogDir "$task$logSuffix.binlog"
+# Restore is driven by MSBuild's /restore switch, which the shared MSBuild helper adds
+# whenever restore is enabled. No separate restore invocation is necessary.
+function Build() {
+ $log = Join-Path $LogDir "$task.binlog"
$binaryLogArg = if ($binaryLog) { "/bl:$log" } else { "" }
$outputPath = Join-Path $ToolsetDir "$task\"
MSBuild $taskProject `
$binaryLogArg `
- /t:$target `
+ /t:Execute `
/p:Configuration=$configuration `
/p:RepoRoot=$RepoRoot `
/p:BaseIntermediateOutputPath=$outputPath `
@@ -88,11 +89,7 @@ try {
ExitWithExitCode 1
}
- if ($restore) {
- Build 'Restore'
- }
-
- Build 'Execute'
+ Build
}
catch {
Write-Host $_.ScriptStackTrace
diff --git a/eng/common/sdk-task.sh b/eng/common/sdk-task.sh
index a7f1ba060..0c14d45a9 100755
--- a/eng/common/sdk-task.sh
+++ b/eng/common/sdk-task.sh
@@ -28,18 +28,17 @@ while [[ -h "$source" ]]; do
done
scriptroot="$( cd -P "$( dirname "$source" )" && pwd )"
+# Restore is driven by MSBuild's /restore switch, which the shared MSBuild helper adds
+# whenever restore is enabled. No separate restore invocation is necessary.
Build() {
- local target=$1
- local log_suffix=""
- [[ "$target" != "Execute" ]] && log_suffix=".$target"
- local log="$log_dir/$task$log_suffix.binlog"
+ local log="$log_dir/$task.binlog"
local binaryLogArg=""
[[ $binary_log == true ]] && binaryLogArg="/bl:$log"
local output_path="$toolset_dir/$task/"
MSBuild "$taskProject" \
$binaryLogArg \
- /t:"$target" \
+ /t:Execute \
/p:Configuration="$configuration" \
/p:RepoRoot="$repo_root" \
/p:BaseIntermediateOutputPath="$output_path" \
@@ -121,11 +120,7 @@ if [[ ! -e "$taskProject" ]]; then
ExitWithExitCode 1
fi
-if $restore; then
- Build "Restore"
-fi
-
-Build "Execute"
+Build
ExitWithExitCode 0
diff --git a/eng/common/tools.ps1 b/eng/common/tools.ps1
index cea14279b..04c8bb483 100644
--- a/eng/common/tools.ps1
+++ b/eng/common/tools.ps1
@@ -31,8 +31,9 @@
# Set to true to reuse msbuild nodes. Recommended to not reuse on CI.
[bool]$nodeReuse = if (Test-Path variable:nodeReuse) { $nodeReuse } else { !$ci }
-# Set to true to build with MSBuild's multi-threaded mode (-mt). Enabled by default for local builds and not run on CI.
-[bool]$msbuildMultiThreaded = if (Test-Path variable:msbuildMultiThreaded) { $msbuildMultiThreaded } else { !$ci }
+# Set to true to build with MSBuild's multi-threaded mode (-mt). Enabled by default for both local and CI builds.
+# Not applied when building with msbuild.exe (VS MSBuild).
+[bool]$msbuildMultiThreaded = if (Test-Path variable:msbuildMultiThreaded) { $msbuildMultiThreaded } else { $true }
# Configures warning treatment in msbuild.
[bool]$warnAsError = if (Test-Path variable:warnAsError) { $warnAsError } else { $true }
@@ -810,10 +811,13 @@ function MSBuild() {
}
}
- $cmdArgs = "$($buildTool.Command) /m /nologo /clp:Summary /v:$verbosity /nr:$nodeReuse /p:ContinuousIntegrationBuild=$ci"
+ $restoreSwitch = if ($restore) { ' /restore' } else { '' }
- # Build with MSBuild's multi-threaded mode.
- if ($msbuildMultiThreaded) {
+ $cmdArgs = "$($buildTool.Command)$restoreSwitch /m /nologo /clp:Summary /v:$verbosity /nr:$nodeReuse /p:ContinuousIntegrationBuild=$ci"
+
+ # Build with MSBuild's multi-threaded mode, but not with msbuild.exe (VS MSBuild) for now.
+ # TODO: Enable for VS MSBuild as well: https://github.com/dotnet/dotnet/issues/9989
+ if ($msbuildMultiThreaded -and [System.IO.Path]::GetFileName($buildTool.Path) -ne 'msbuild.exe') {
$cmdArgs += ' -mt'
}
diff --git a/eng/common/tools.sh b/eng/common/tools.sh
index fdbc19243..0e28c1117 100755
--- a/eng/common/tools.sh
+++ b/eng/common/tools.sh
@@ -60,13 +60,9 @@ else
node_reuse=${node_reuse:-true}
fi
-# Set to true to build with MSBuild's multi-threaded mode (-mt). Enabled by default for local builds and not run on CI.
+# Set to true to build with MSBuild's multi-threaded mode (-mt). Enabled by default for both local and CI builds.
msbuild_multi_threaded=$(NormalizeBoolArg "${msbuild_multi_threaded:-}")
-if [[ "$ci" == true ]]; then
- msbuild_multi_threaded=${msbuild_multi_threaded:-false}
-else
- msbuild_multi_threaded=${msbuild_multi_threaded:-true}
-fi
+msbuild_multi_threaded=${msbuild_multi_threaded:-true}
# Configures warning treatment in msbuild.
warn_as_error=$(NormalizeBoolArg "${warn_as_error:-}")
@@ -619,7 +615,12 @@ function MSBuild {
warnnotaserror_switch="/warnnotaserror:$warn_not_as_error /p:AdditionalWarningsNotAsErrors=${warn_not_as_error//;/%3B}"
fi
- RunBuildTool "$_InitializeBuildToolCommand" /m /nologo /clp:Summary /v:$verbosity /nr:$node_reuse $warnaserror_switch $mt_switch $warnnotaserror_switch ${logger_switch[@]+"${logger_switch[@]}"} /p:TreatWarningsAsErrors=$warn_as_error /p:ContinuousIntegrationBuild=$ci "$@"
+ local restore_switch=""
+ if [[ "$restore" == true ]]; then
+ restore_switch="/restore"
+ fi
+
+ RunBuildTool "$_InitializeBuildToolCommand" $restore_switch /m /nologo /clp:Summary /v:$verbosity /nr:$node_reuse $warnaserror_switch $mt_switch $warnnotaserror_switch ${logger_switch[@]+"${logger_switch[@]}"} /p:TreatWarningsAsErrors=$warn_as_error /p:ContinuousIntegrationBuild=$ci "$@"
}
function GetDarc {
diff --git a/global.json b/global.json
index e00eb7708..c06dd93c8 100644
--- a/global.json
+++ b/global.json
@@ -1,6 +1,6 @@
{
"tools": {
- "dotnet": "11.0.100-rc.1.26420.103",
+ "dotnet": "12.0.100-alpha.1.26480.102",
"runtimes": {
"dotnet": [
"8.0.0",
@@ -10,10 +10,10 @@
}
},
"msbuild-sdks": {
- "Microsoft.DotNet.Arcade.Sdk": "12.0.0-beta.26480.102"
+ "Microsoft.DotNet.Arcade.Sdk": "12.0.0-beta.26531.102"
},
"sdk": {
- "version": "11.0.100-rc.1.26420.103",
+ "version": "12.0.100-alpha.1.26480.102",
"allowPrerelease": true,
"rollForward": "latestFeature"
}
diff --git a/src/Microsoft.DotNet.ScenarioTests.SdkTemplateTests/LocalizedTemplateTests.cs b/src/Microsoft.DotNet.ScenarioTests.SdkTemplateTests/LocalizedTemplateTests.cs
index c4a789204..bfada126c 100644
--- a/src/Microsoft.DotNet.ScenarioTests.SdkTemplateTests/LocalizedTemplateTests.cs
+++ b/src/Microsoft.DotNet.ScenarioTests.SdkTemplateTests/LocalizedTemplateTests.cs
@@ -62,7 +62,6 @@ public void VerifyTemplateInstantiationInLocale(string culture, DotNetSdkTemplat
[Theory]
[MemberData(nameof(GetAspNetCoreTemplateLocaleData))]
[Trait("Category", "Offline")]
- [Trait("Category", TestCategories.RequiresNet12RuntimeTargetingPack)]
public void VerifyAspNetCoreTemplateInstantiationInLocale(string culture, DotNetSdkTemplate template, DotNetLanguage language)
=> VerifyTemplateInstantiation(culture, template, language);
diff --git a/src/Microsoft.DotNet.ScenarioTests.SdkTemplateTests/SdkTemplateTests.cs b/src/Microsoft.DotNet.ScenarioTests.SdkTemplateTests/SdkTemplateTests.cs
index ab31b4777..34dd639b1 100644
--- a/src/Microsoft.DotNet.ScenarioTests.SdkTemplateTests/SdkTemplateTests.cs
+++ b/src/Microsoft.DotNet.ScenarioTests.SdkTemplateTests/SdkTemplateTests.cs
@@ -120,7 +120,6 @@ public void VerifyWPFTemplate(DotNetLanguage language)
[Trait("Category", "Offline")]
[Trait("SkipIfPlatform", "LINUX")]
[Trait("SkipIfPlatform", "OSX")]
- [Trait("Category", TestCategories.RequiresNet12RuntimeTargetingPack)]
public void VerifyWebAppTemplate()
{
var newTest = new SdkTemplateTest(
@@ -177,7 +176,6 @@ public void VerifyMultiTFMInConsoleTemplate(DotNetLanguage language)
[InlineData(DotNetLanguage.CSharp)]
[InlineData(DotNetLanguage.FSharp)]
[Trait("Category", "RequiresPortableAssets")]
- [Trait("Category", TestCategories.RequiresNet12RuntimeTargetingPack)]
public void VerifyMVCTemplate(DotNetLanguage language)
{
var newTest = new SdkTemplateTest(
@@ -190,7 +188,6 @@ public void VerifyMVCTemplate(DotNetLanguage language)
[InlineData(DotNetLanguage.CSharp)]
[InlineData(DotNetLanguage.FSharp)]
[Trait("Category", "RequiresPortableAssets")]
- [Trait("Category", TestCategories.RequiresNet12RuntimeTargetingPack)]
public void VerifyWebAPITemplate(DotNetLanguage language)
{
var newTest = new SdkTemplateTest(
@@ -202,7 +199,6 @@ public void VerifyWebAPITemplate(DotNetLanguage language)
[Theory]
[InlineData(DotNetLanguage.CSharp)]
[InlineData(DotNetLanguage.FSharp)]
- [Trait("Category", TestCategories.RequiresNet12RuntimeTargetingPack)]
public void VerifyWebTemplate(DotNetLanguage language)
{
var newTest = new SdkTemplateTest(
@@ -213,7 +209,6 @@ public void VerifyWebTemplate(DotNetLanguage language)
[Theory]
[Trait("Category", "RequiresNonTargetRidPackages")]
- [Trait("Category", TestCategories.RequiresNet12RuntimeTargetingPack)]
[InlineData(DotNetLanguage.CSharp)]
public void VerifyBlazorWasmTemplate(DotNetLanguage language)
{
@@ -225,7 +220,6 @@ public void VerifyBlazorWasmTemplate(DotNetLanguage language)
[Theory]
[InlineData(DotNetLanguage.CSharp)]
- [Trait("Category", TestCategories.RequiresNet12RuntimeTargetingPack)]
public void VerifyRazorTemplate(DotNetLanguage language)
{
var newTest = new SdkTemplateTest(
@@ -237,7 +231,6 @@ public void VerifyRazorTemplate(DotNetLanguage language)
[Fact]
[Trait("SkipIfBuild", "Portable")] // Portable builds don't bundle an AOT compiler.
[Trait("SkipIfBuild", "Mono")] // Mono builds don't bundle an AOT compiler.
- [Trait("Category", TestCategories.RequiresNet12RuntimeTargetingPack)]
public void VerifyWebTemplatePublishBundledAot()
{
var newTest = new SdkTemplateTest(
diff --git a/src/Microsoft.DotNet.ScenarioTests.SdkTemplateTests/TestCategories.cs b/src/Microsoft.DotNet.ScenarioTests.SdkTemplateTests/TestCategories.cs
deleted file mode 100644
index d8ec44450..000000000
--- a/src/Microsoft.DotNet.ScenarioTests.SdkTemplateTests/TestCategories.cs
+++ /dev/null
@@ -1,10 +0,0 @@
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-
-namespace Microsoft.DotNet.ScenarioTests.SdkTemplateTests;
-
-internal static class TestCategories
-{
- // Temporarily excluded from VMR runs until runtime targets net12.0: https://github.com/dotnet/dotnet/issues/9637
- public const string RequiresNet12RuntimeTargetingPack = nameof(RequiresNet12RuntimeTargetingPack);
-}