diff --git a/eng/Packages.props b/eng/Packages.props index e9c77ff48f9..6f4d99b91a9 100644 --- a/eng/Packages.props +++ b/eng/Packages.props @@ -19,7 +19,6 @@ - diff --git a/eng/SourceBuildPrebuiltBaseline.xml b/eng/SourceBuildPrebuiltBaseline.xml index 41e59576f29..64d04b3e036 100644 --- a/eng/SourceBuildPrebuiltBaseline.xml +++ b/eng/SourceBuildPrebuiltBaseline.xml @@ -8,14 +8,14 @@ - + - + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 33db6d8d5d9..e5e1c037839 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -53,9 +53,9 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-runtime 5535e31a712343a63f5d7d796cd874e563e5ac14 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 81cabf2857a01351e5ab578947c7403a5b128ad1 + 5535e31a712343a63f5d7d796cd874e563e5ac14 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime @@ -65,10 +65,6 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-runtime 5535e31a712343a63f5d7d796cd874e563e5ac14 - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 2aade6beb02ea367fd97c4070a4198802fe61c03 - @@ -100,9 +96,9 @@ 919d4dbfb0dffb35a702417e28ceea652d248bc6 - + https://github.com/dotnet/arcade - c7a36e53f91e41943746f97a8c183549364c5092 + ceb071c1060b8e6de404c065b4045442570caa18 - + \ No newline at end of file diff --git a/eng/Versions.props b/eng/Versions.props index 99ea81aa2c3..f3774bb5524 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -2,7 +2,7 @@ - 17.10.27 + 17.10.29 release 17.8.3 15.1.0.0 @@ -27,7 +27,6 @@ 8.0.0 8.0.0 - 8.0.1 $([System.Text.RegularExpressions.Regex]::Match($([System.IO.File]::ReadAllText('$(MSBuildThisFileDirectory)..\global.json')), '"dotnet": "([^"]*)"').Groups.get_Item(1)) 4.2.0-1.22102.8 - 8.0.0-beta.25208.7 + 8.0.0-beta.24172.5 7.0.0 - 6.0.1 + 6.0.0 4.10.0-3.24175.2 6.10.0-preview.2.81 6.0.0 @@ -73,4 +72,4 @@ $(VersionPrefix).$(FileVersion.Split('.')[3]) - + \ No newline at end of file diff --git a/eng/cibuild_bootstrapped_msbuild.ps1 b/eng/cibuild_bootstrapped_msbuild.ps1 index 71cbf493110..d587daad534 100644 --- a/eng/cibuild_bootstrapped_msbuild.ps1 +++ b/eng/cibuild_bootstrapped_msbuild.ps1 @@ -65,65 +65,11 @@ try { if ($buildStage1) { - & $PSScriptRoot\Common\Build.ps1 -restore -build -ci -msbuildEngine $msbuildEngine /p:CreateBootstrap=true @properties + & $PSScriptRoot\Common\Build.ps1 -restore -build -test -ci -msbuildEngine $msbuildEngine /p:CreateBootstrap=true @properties } KillProcessesFromRepo - $bootstrapRoot = Join-Path $Stage1BinDir "bootstrap" - - # we need to do this to guarantee we have/know where dotnet.exe is installed - $dotnetToolPath = InitializeDotNetCli $true - $dotnetExePath = Join-Path $dotnetToolPath "dotnet.exe" - - if ($msbuildEngine -eq 'vs') - { - $buildToolPath = Join-Path $bootstrapRoot "net472\MSBuild\Current\Bin\MSBuild.exe" - $buildToolCommand = ""; - $buildToolFramework = "net472" - } - else - { - $buildToolPath = $dotnetExePath - $buildToolCommand = Join-Path $bootstrapRoot "net8.0\MSBuild\MSBuild.dll" - $buildToolFramework = "net8.0" - } - - # Use separate artifacts folder for stage 2 - # $env:ArtifactsDir = Join-Path $ArtifactsDir "2\" - - & $dotnetExePath build-server shutdown - - if ($buildStage1) - { - if (Test-Path $Stage1Dir) - { - Remove-Item -Force -Recurse $Stage1Dir - } - - Move-Item -Path $ArtifactsDir -Destination $Stage1Dir -Force - } - - $buildTool = @{ Path = $buildToolPath; Command = $buildToolCommand; Tool = $msbuildEngine; Framework = $buildToolFramework } - $global:_BuildTool = $buildTool - - # Ensure that debug bits fail fast, rather than hanging waiting for a debugger attach. - $env:MSBUILDDONOTLAUNCHDEBUGGER="true" - - # Opt into performance logging. https://github.com/dotnet/msbuild/issues/5900 - $env:DOTNET_PERFLOG_DIR=$PerfLogDir - - # When using bootstrapped MSBuild: - # - Turn off node reuse (so that bootstrapped MSBuild processes don't stay running and lock files) - # - Do run tests - # - Don't try to create a bootstrap deployment - if ($onlyDocChanged) { - & $PSScriptRoot\Common\Build.ps1 -restore -build -ci /p:CreateBootstrap=false /nr:false @properties - } - else { - & $PSScriptRoot\Common\Build.ps1 -restore -build -test -ci /p:CreateBootstrap=false /nr:false @properties - } - exit $lastExitCode } catch { diff --git a/eng/cibuild_bootstrapped_msbuild.sh b/eng/cibuild_bootstrapped_msbuild.sh index 06d4ba46e21..37683f4fb1a 100755 --- a/eng/cibuild_bootstrapped_msbuild.sh +++ b/eng/cibuild_bootstrapped_msbuild.sh @@ -51,7 +51,7 @@ InitializeDotNetCli true if [[ $build_stage1 == true ]]; then - /bin/bash "$ScriptRoot/common/build.sh" --restore --build --ci --configuration $configuration /p:CreateBootstrap=true $properties $extra_properties || exit $? + /bin/bash "$ScriptRoot/common/build.sh" --restore --build --ci --test --configuration $configuration /p:CreateBootstrap=false $properties $extra_properties || exit $? fi bootstrapRoot="$Stage1Dir/bin/bootstrap" @@ -77,15 +77,3 @@ export DOTNET_PERFLOG_DIR=$PerfLogDir # Prior to 3.0, the Csc task uses this environment variable to decide whether to run # a CLI host or directly execute the compiler. export DOTNET_HOST_PATH="$_InitializeDotNetCli/dotnet" - -# When using bootstrapped MSBuild: -# - Turn off node reuse (so that bootstrapped MSBuild processes don't stay running and lock files) -# - Do run tests -# - Don't try to create a bootstrap deployment -if [ $onlyDocChanged = 0 ] -then - . "$ScriptRoot/common/build.sh" --restore --build --test --ci --nodereuse false --configuration $configuration /p:CreateBootstrap=false $properties $extra_properties - -else - . "$ScriptRoot/common/build.sh" --restore --build --ci --nodereuse false --configuration $configuration /p:CreateBootstrap=false $properties $extra_properties -fi diff --git a/eng/common/templates-official/job/source-build.yml b/eng/common/templates-official/job/source-build.yml index f983033bb02..ae8f0c8d014 100644 --- a/eng/common/templates-official/job/source-build.yml +++ b/eng/common/templates-official/job/source-build.yml @@ -54,7 +54,7 @@ jobs: pool: ${{ if eq(variables['System.TeamProject'], 'public') }}: name: $[replace(replace(eq(contains(coalesce(variables['System.PullRequest.TargetBranch'], variables['Build.SourceBranch'], 'refs/heads/main'), 'release'), 'true'), True, 'NetCore-Svc-Public' ), False, 'NetCore-Public')] - demands: ImageOverride -equals Build.Ubuntu.1804.Amd64.Open + demands: ImageOverride -equals Build.Ubuntu.2004.Amd64.Open ${{ if eq(variables['System.TeamProject'], 'internal') }}: name: $[replace(replace(eq(contains(coalesce(variables['System.PullRequest.TargetBranch'], variables['Build.SourceBranch'], 'refs/heads/main'), 'release'), 'true'), True, 'NetCore1ESPool-Svc-Internal'), False, 'NetCore1ESPool-Internal')] diff --git a/eng/common/templates/job/source-build.yml b/eng/common/templates/job/source-build.yml index c0ff472b697..1c9de37a095 100644 --- a/eng/common/templates/job/source-build.yml +++ b/eng/common/templates/job/source-build.yml @@ -54,11 +54,11 @@ jobs: pool: ${{ if eq(variables['System.TeamProject'], 'public') }}: name: $[replace(replace(eq(contains(coalesce(variables['System.PullRequest.TargetBranch'], variables['Build.SourceBranch'], 'refs/heads/main'), 'release'), 'true'), True, 'NetCore-Svc-Public' ), False, 'NetCore-Public')] - demands: ImageOverride -equals Build.Ubuntu.1804.Amd64.Open + demands: ImageOverride -equals Build.Ubuntu.2004.Amd64.Open ${{ if eq(variables['System.TeamProject'], 'internal') }}: name: $[replace(replace(eq(contains(coalesce(variables['System.PullRequest.TargetBranch'], variables['Build.SourceBranch'], 'refs/heads/main'), 'release'), 'true'), True, 'NetCore1ESPool-Svc-Internal'), False, 'NetCore1ESPool-Internal')] - demands: ImageOverride -equals Build.Ubuntu.1804.Amd64 + demands: ImageOverride -equals Build.Ubuntu.2004.Amd64 ${{ if ne(parameters.platform.pool, '') }}: pool: ${{ parameters.platform.pool }} diff --git a/src/Build.UnitTests/BackEnd/MSBuild_Tests.cs b/src/Build.UnitTests/BackEnd/MSBuild_Tests.cs index 003bf735988..16a963128d0 100644 --- a/src/Build.UnitTests/BackEnd/MSBuild_Tests.cs +++ b/src/Build.UnitTests/BackEnd/MSBuild_Tests.cs @@ -412,7 +412,7 @@ public void LogErrorWhenBuildingVCProj() /// However, it's a situation where the project author doesn't have control over the /// property value and so he can't escape it himself. /// - [Fact] + [Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")] public void PropertyOverridesContainSemicolon() { ObjectModelHelpers.DeleteTempProjectDirectory(); diff --git a/src/Build.UnitTests/EscapingInProjects_Tests.cs b/src/Build.UnitTests/EscapingInProjects_Tests.cs index 3df737c387a..cd7406fa9e3 100644 --- a/src/Build.UnitTests/EscapingInProjects_Tests.cs +++ b/src/Build.UnitTests/EscapingInProjects_Tests.cs @@ -957,7 +957,7 @@ public FullProjectsUsingMicrosoftCommonTargets(ITestOutputHelper output) /// /// ESCAPING: Escaping in conditionals is broken. /// - [Fact] + [Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")] public void SemicolonInConfiguration() { ObjectModelHelpers.DeleteTempProjectDirectory(); @@ -1017,7 +1017,7 @@ public class Class1 /// /// ESCAPING: Escaping in conditionals is broken. /// - [Fact] + [Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")] public void SemicolonInConfiguration_UsingTaskHost() { string originalOverrideTaskHostVariable = Environment.GetEnvironmentVariable("MSBUILDFORCEALLTASKSOUTOFPROC"); @@ -1087,7 +1087,7 @@ public class Class1 /// /// ESCAPING: CopyBuildTarget target fails if the output assembly name contains a semicolon or single-quote /// - [Fact] + [Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")] public void SemicolonInAssemblyName() { ObjectModelHelpers.DeleteTempProjectDirectory(); @@ -1142,7 +1142,7 @@ public class Class1 /// /// ESCAPING: CopyBuildTarget target fails if the output assembly name contains a semicolon or single-quote /// - [Fact] + [Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")] public void SemicolonInAssemblyName_UsingTaskHost() { string originalOverrideTaskHostVariable = Environment.GetEnvironmentVariable("MSBUILDFORCEALLTASKSOUTOFPROC"); @@ -1207,7 +1207,7 @@ public class Class1 /// /// ESCAPING: Conversion Issue: Properties with $(xxx) as literals are not being converted correctly /// - [Fact] + [Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")] public void DollarSignInAssemblyName() { ObjectModelHelpers.DeleteTempProjectDirectory(); @@ -1262,7 +1262,7 @@ public class Class1 /// /// ESCAPING: Conversion Issue: Properties with $(xxx) as literals are not being converted correctly /// - [Fact] + [Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")] public void DollarSignInAssemblyName_UsingTaskHost() { string originalOverrideTaskHostVariable = Environment.GetEnvironmentVariable("MSBUILDFORCEALLTASKSOUTOFPROC"); @@ -1327,7 +1327,7 @@ public class Class1 /// /// This is the case when one of the source code files in the project has a filename containing a semicolon. /// - [Fact] + [Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")] public void SemicolonInSourceCodeFilename() { ObjectModelHelpers.DeleteTempProjectDirectory(); @@ -1382,7 +1382,7 @@ public class Class1 /// /// This is the case when one of the source code files in the project has a filename containing a semicolon. /// - [Fact] + [Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")] public void SemicolonInSourceCodeFilename_UsingTaskHost() { string originalOverrideTaskHostVariable = Environment.GetEnvironmentVariable("MSBUILDFORCEALLTASKSOUTOFPROC"); diff --git a/src/MSBuild/app.amd64.config b/src/MSBuild/app.amd64.config index 712ebd985b7..a46ad099af0 100644 --- a/src/MSBuild/app.amd64.config +++ b/src/MSBuild/app.amd64.config @@ -49,8 +49,8 @@ - - + + @@ -134,8 +134,8 @@ - - + + @@ -229,4 +229,4 @@ - + \ No newline at end of file diff --git a/src/MSBuild/app.config b/src/MSBuild/app.config index de96d2730df..ab456039343 100644 --- a/src/MSBuild/app.config +++ b/src/MSBuild/app.config @@ -43,10 +43,6 @@ - - - - @@ -94,7 +90,7 @@ - + @@ -182,4 +178,4 @@ - + \ No newline at end of file diff --git a/src/Tasks.UnitTests/MSBuild_Tests.cs b/src/Tasks.UnitTests/MSBuild_Tests.cs index ad1ab81787a..4e4c0a0ef81 100644 --- a/src/Tasks.UnitTests/MSBuild_Tests.cs +++ b/src/Tasks.UnitTests/MSBuild_Tests.cs @@ -389,7 +389,7 @@ public void LogErrorWhenBuildingVCProj() #if RUNTIME_TYPE_NETCORE [Fact(Skip = "https://github.com/dotnet/msbuild/issues/259")] #else - [Fact] + [Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")] #endif public void PropertyOverridesContainSemicolon() { diff --git a/src/Tasks.UnitTests/ResourceHandling/GenerateResourceOutOfProc_Tests.cs b/src/Tasks.UnitTests/ResourceHandling/GenerateResourceOutOfProc_Tests.cs index 472d732a973..8f5a1bcd6bc 100644 --- a/src/Tasks.UnitTests/ResourceHandling/GenerateResourceOutOfProc_Tests.cs +++ b/src/Tasks.UnitTests/ResourceHandling/GenerateResourceOutOfProc_Tests.cs @@ -2566,7 +2566,7 @@ public References(ITestOutputHelper output) _output = output; } - [Fact] + [Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")] public void DontLockP2PReferenceWhenResolvingSystemTypes() { // This WriteLine is a hack. On a slow machine, the Tasks unittest fails because remoting @@ -2741,7 +2741,7 @@ public class Class1 /// Assembly.LoadFile on that relative path, which fails (LoadFile requires an /// absolute path). The fix was to use Assembly.LoadFrom instead. /// - [Fact] + [Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")] public void ReferencedAssemblySpecifiedUsingRelativePath() { // This WriteLine is a hack. On a slow machine, the Tasks unittest fails because remoting diff --git a/src/Tasks.UnitTests/ResourceHandling/GenerateResource_Tests.cs b/src/Tasks.UnitTests/ResourceHandling/GenerateResource_Tests.cs index a38fd0f4bbd..ba93bb422e4 100644 --- a/src/Tasks.UnitTests/ResourceHandling/GenerateResource_Tests.cs +++ b/src/Tasks.UnitTests/ResourceHandling/GenerateResource_Tests.cs @@ -3064,7 +3064,7 @@ public References(ITestOutputHelper output) _output = output; } - [WindowsFullFrameworkOnlyFact(additionalMessage: "Linked resources not supported on Core: https://github.com/dotnet/msbuild/issues/4094")] + [Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")] public void DontLockP2PReferenceWhenResolvingSystemTypes() { // This WriteLine is a hack. On a slow machine, the Tasks unittest fails because remoting @@ -3240,7 +3240,7 @@ public class Class1 /// which fails (LoadFile requires an absolute path). The fix was to use /// Assembly.LoadFrom instead. /// - [WindowsFullFrameworkOnlyFact(additionalMessage: "Linked resources not supported on Core: https://github.com/dotnet/msbuild/issues/4094")] + [Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")] public void ReferencedAssemblySpecifiedUsingRelativePath() { // This WriteLine is a hack. On a slow machine, the Tasks unittest fails because remoting diff --git a/src/Tasks/DownloadFile.cs b/src/Tasks/DownloadFile.cs index efe54f514ca..b606f5c5284 100644 --- a/src/Tasks/DownloadFile.cs +++ b/src/Tasks/DownloadFile.cs @@ -168,7 +168,7 @@ private async Task DownloadAsync(Uri uri, CancellationToken cancellationToken) #endif } - if (!TryGetFileName(response, out string filename)) + if (!TryGetFileName(uri, out string filename)) { Log.LogErrorWithCodeFromResources("DownloadFile.ErrorUnknownFileName", SourceUrl, nameof(DestinationFileName)); return; @@ -306,25 +306,24 @@ private static bool IsRetriable(Exception exception, out Exception actualExcepti /// /// Attempts to get the file name to use when downloading the file. /// - /// The with information about the response. + /// The uri we sent request to. /// Receives the name of the file. /// true if a file name could be determined, otherwise false. - private bool TryGetFileName(HttpResponseMessage response, out string filename) + private bool TryGetFileName(Uri requestUri, out string filename) { - if (response == null) + if (requestUri == null) { - throw new ArgumentNullException(nameof(response)); + throw new ArgumentNullException(nameof(requestUri)); } // Not all URIs contain a file name so users will have to specify one // Example: http://www.download.com/file/1/ - filename = !String.IsNullOrWhiteSpace(DestinationFileName?.ItemSpec) + filename = !string.IsNullOrWhiteSpace(DestinationFileName?.ItemSpec) ? DestinationFileName.ItemSpec // Get the file name from what the user specified - : response.Content?.Headers?.ContentDisposition?.FileName // Attempt to get the file name from the content-disposition header value - ?? Path.GetFileName(response.RequestMessage.RequestUri.LocalPath); // Otherwise attempt to get a file name from the URI + : Path.GetFileName(requestUri.LocalPath); // Otherwise attempt to get a file name from the URI - return !String.IsNullOrWhiteSpace(filename); + return !string.IsNullOrWhiteSpace(filename); } #if !NET6_0_OR_GREATER