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); -}