From afbf2c1efaba2c86a64c1b1af4aeec57dda7ac1c Mon Sep 17 00:00:00 2001 From: Michael Simons <msimons@microsoft.com> Date: Wed, 31 Mar 2021 18:29:56 -0500 Subject: [PATCH] ArPow stage 1: local source-build infrastructure (#31235) Conflicts: eng/Version.Details.xml Co-authored-by: John Luo <johluo@microsoft.com> --- eng/SourceBuild.props | 69 +++++++++++++ eng/SourceBuildPrebuiltBaseline.xml | 5 + eng/Version.Details.xml | 1 + eng/build.sh | 13 ++- ...-Conditionally-set-PackAsToolShimRID.patch | 28 ++++++ ...lude-some-projects-from-source-build.patch | 27 ++++++ ...-dependency-not-used-in-source-build.patch | 77 +++++++++++++++ ...nce-versions-of-source-built-package.patch | 42 ++++++++ .../0006-Add-FreeBSD.patch | 37 +++++++ ...Support-global.json-on-arm64-as-well.patch | 42 ++++++++ ...08-use-sourcebuildRID-to-find-clrjit.patch | 25 +++++ .../0011-Fix-a-couple-issues.patch | 96 +++++++++++++++++++ .../0012-Don-t-warn-on-CA1416.patch | 26 +++++ ...se-source-built-NuGet-for-repo-tasks.patch | 39 ++++++++ .../0017-Emit-RepoTasks.binlog.patch | 25 +++++ 15 files changed, 549 insertions(+), 3 deletions(-) create mode 100644 eng/SourceBuild.props create mode 100644 eng/SourceBuildPrebuiltBaseline.xml create mode 100644 eng/source-build-patches/0002-Conditionally-set-PackAsToolShimRID.patch create mode 100644 eng/source-build-patches/0003-Exclude-some-projects-from-source-build.patch create mode 100644 eng/source-build-patches/0004-Remove-Yarn-dependency-not-used-in-source-build.patch create mode 100644 eng/source-build-patches/0005-Revert-to-reference-versions-of-source-built-package.patch create mode 100644 eng/source-build-patches/0006-Add-FreeBSD.patch create mode 100644 eng/source-build-patches/0007-Support-global.json-on-arm64-as-well.patch create mode 100644 eng/source-build-patches/0008-use-sourcebuildRID-to-find-clrjit.patch create mode 100644 eng/source-build-patches/0011-Fix-a-couple-issues.patch create mode 100644 eng/source-build-patches/0012-Don-t-warn-on-CA1416.patch create mode 100644 eng/source-build-patches/0013-Use-source-built-NuGet-for-repo-tasks.patch create mode 100644 eng/source-build-patches/0017-Emit-RepoTasks.binlog.patch diff --git a/eng/SourceBuild.props b/eng/SourceBuild.props new file mode 100644 index 00000000000..98f9b244c2a --- /dev/null +++ b/eng/SourceBuild.props @@ -0,0 +1,69 @@ +<Project> + + <PropertyGroup> + <GitHubRepositoryName>aspnetcore</GitHubRepositoryName> + <SourceBuildManagedOnly>true</SourceBuildManagedOnly> + <CloneSubmodulesToInnerSourceBuildRepo>false</CloneSubmodulesToInnerSourceBuildRepo> + </PropertyGroup> + + <Target Name="ApplySourceBuildPatchFiles" + AfterTargets="PrepareInnerSourceBuildRepoRoot" + BeforeTargets="RunInnerSourceBuildCommand"> + + <ItemGroup> + <SourceBuildPatchFile Include="$(RepositoryEngineeringDir)source-build-patches\*.patch" /> + </ItemGroup> + + <Exec + Command="git apply --ignore-whitespace --whitespace=nowarn "%(SourceBuildPatchFile.FullPath)"" + WorkingDirectory="$(InnerSourceBuildRepoRoot)" + Condition="'@(SourceBuildPatchFile)' != ''" /> + </Target> + + <!-- + Init submodules - temporarary workaround for https://github.com/dotnet/sourcelink/pull/653 + --> + <Target Name="InitSubmodules" + DependsOnTargets="PrepareInnerSourceBuildRepoRoot" + BeforeTargets="RunInnerSourceBuildCommand"> + + <Exec + Command="git submodule update --init --recursive" + WorkingDirectory="$(InnerSourceBuildRepoRoot)" + EnvironmentVariables="@(InnerBuildEnv)" /> + </Target> + + <!-- + Remove inner source .globalconfig file as both the inner and outer config files get loaded and cause a conflict. + Leaving the inner will cause all conflicting settings to be ignored. + https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/configuration-files#general-options + --> + <Target Name="RemoveInnerGlobalConfig" + DependsOnTargets="PrepareInnerSourceBuildRepoRoot" + BeforeTargets="RunInnerSourceBuildCommand"> + + <Delete Files="$(InnerSourceBuildRepoRoot).globalconfig" /> + </Target> + + <!-- + Build RepoTasks - this is normally triggered via the build script but the inner ArPow source-build is run via msbuild + --> + <Target Name="BuildRepoTasks" + Condition="'$(ArcadeInnerBuildFromSource)' == 'true'" + BeforeTargets="Execute"> + + <Exec + Command="./eng/build.sh --only-build-repo-tasks" + WorkingDirectory="$(InnerSourceBuildRepoRoot)" + EnvironmentVariables="@(InnerBuildEnv)" /> + </Target> + + <Target Name="CustomizeInnerBuildArgs" + BeforeTargets="GetSourceBuildCommandConfiguration"> + + <PropertyGroup> + <InnerBuildArgs>$(InnerBuildArgs) /p:SourceBuildRuntimeIdentifier=$(TargetRuntimeIdentifier)</InnerBuildArgs> + </PropertyGroup> + </Target> + +</Project> diff --git a/eng/SourceBuildPrebuiltBaseline.xml b/eng/SourceBuildPrebuiltBaseline.xml new file mode 100644 index 00000000000..c1b6dfbf053 --- /dev/null +++ b/eng/SourceBuildPrebuiltBaseline.xml @@ -0,0 +1,5 @@ +<UsageData> + <IgnorePatterns> + <UsagePattern IdentityGlob="*/*" /> + </IgnorePatterns> +</UsageData> diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 5f42865e28e..e3b26244763 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -299,6 +299,7 @@ <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="6.0.0-beta.21179.7"> <Uri>https://github.com/dotnet/arcade</Uri> <Sha>fd5f55c64d48b7894516cc841fba1253b2e79ffd</Sha> + <SourceBuild RepoName="arcade" ManagedOnly="true"/> </Dependency> <Dependency Name="Microsoft.DotNet.Build.Tasks.Installers" Version="6.0.0-beta.21179.7"> <Uri>https://github.com/dotnet/arcade</Uri> diff --git a/eng/build.sh b/eng/build.sh index 0721865b00a..458f2ae643a 100755 --- a/eng/build.sh +++ b/eng/build.sh @@ -21,6 +21,7 @@ run_pack=false run_tests=false build_all=false build_deps=true +only_build_repo_tasks=false build_repo_tasks=true build_managed='' build_native='' @@ -64,6 +65,7 @@ Options: Globbing patterns are supported, such as \"$(pwd)/**/*.csproj\". --no-build-deps Do not build project-to-project references and only build the specified project. --no-build-repo-tasks Suppress building RepoTasks. + --only-build-repo-tasks Only build RepoTasks. --all Build all project types. --[no-]build-native Build native projects (C, C++). Ignored in most cases i.e. with `dotnet msbuild`. @@ -195,6 +197,9 @@ while [[ $# -gt 0 ]]; do -no-build-repo-tasks|-nobuildrepotasks) build_repo_tasks=false ;; + -only-build-repo-tasks|-onlybuildrepotasks) + only_build_repo_tasks=true + ;; -arch) shift target_arch="${1:-}" @@ -366,8 +371,10 @@ if [ "$build_repo_tasks" = true ]; then ${toolset_build_args[@]+"${toolset_build_args[@]}"} fi -# This incantation avoids unbound variable issues if msbuild_args is empty -# https://stackoverflow.com/questions/7577052/bash-empty-array-expansion-with-set-u -MSBuild $_InitializeToolset -p:RepoRoot="$repo_root" ${msbuild_args[@]+"${msbuild_args[@]}"} +if [ "$only_build_repo_tasks" != true ]; then + # This incantation avoids unbound variable issues if msbuild_args is empty + # https://stackoverflow.com/questions/7577052/bash-empty-array-expansion-with-set-u + MSBuild $_InitializeToolset -p:RepoRoot="$repo_root" ${msbuild_args[@]+"${msbuild_args[@]}"} +fi ExitWithExitCode 0 diff --git a/eng/source-build-patches/0002-Conditionally-set-PackAsToolShimRID.patch b/eng/source-build-patches/0002-Conditionally-set-PackAsToolShimRID.patch new file mode 100644 index 00000000000..99a6483e940 --- /dev/null +++ b/eng/source-build-patches/0002-Conditionally-set-PackAsToolShimRID.patch @@ -0,0 +1,28 @@ +From 64d2efe24308d9e8b99fdea60c92ee1115259506 Mon Sep 17 00:00:00 2001 +From: dseefeld <dseefeld@microsoft.com> +Date: Thu, 31 Oct 2019 20:38:26 +0000 +Subject: [PATCH 02/14] Conditionally set PackAsToolShimRID + +--- + Directory.Build.targets | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/Directory.Build.targets b/Directory.Build.targets +index 4b72a52947..1a3b01e858 100644 +--- a/Directory.Build.targets ++++ b/Directory.Build.targets +@@ -52,6 +52,11 @@ + <SuppressDependenciesWhenPacking Condition="'$(SuppressDependenciesWhenPacking)' == '' AND '$(IsAnalyzersProject)' == 'true'">true</SuppressDependenciesWhenPacking> + </PropertyGroup> + ++ <PropertyGroup Condition="'$(PackAsTool)' == 'true' AND '$(IsShippingPackage)' == 'true' AND '$(DotNetBuildFromSource)' != 'true'"> ++ <!-- This is a requirement for Microsoft tool packages only. --> ++ <PackAsToolShimRuntimeIdentifiers>win-x64;win-x86</PackAsToolShimRuntimeIdentifiers> ++ </PropertyGroup> ++ + <PropertyGroup Condition=" '$(MSBuildProjectExtension)' == '.csproj' "> + <PackageId Condition=" '$(PackageId)' == '' ">$(AssemblyName)</PackageId> + <IsPackable +-- +2.18.0 + diff --git a/eng/source-build-patches/0003-Exclude-some-projects-from-source-build.patch b/eng/source-build-patches/0003-Exclude-some-projects-from-source-build.patch new file mode 100644 index 00000000000..f92f6fe3e98 --- /dev/null +++ b/eng/source-build-patches/0003-Exclude-some-projects-from-source-build.patch @@ -0,0 +1,27 @@ +From 6f903f6870011b6a11074d93a03481faac6a35dc Mon Sep 17 00:00:00 2001 +From: dseefeld <dseefeld@microsoft.com> +Date: Thu, 4 Feb 2021 15:18:11 +0000 +Subject: [PATCH] Exclude some projects from source-build + +--- + Directory.Build.props | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/Directory.Build.props b/Directory.Build.props +index 50d30f12fd..85c2f2428b 100644 +--- a/Directory.Build.props ++++ b/Directory.Build.props +@@ -27,7 +27,9 @@ + '$(IsTestAssetProject)' == 'true' OR + '$(IsBenchmarkProject)' == 'true' OR + '$(IsUnitTestProject)' == 'true'">false</IsShipping> +- ++ <IsOtherTestProject Condition="$(MSBuildProjectName.Contains('IntegrationTesting')) or $(MSBuildProjectName.Contains('TestCommon'))">true</IsOtherTestProject> ++ <ExcludeFromSourceBuild Condition="'$(IsSampleProject)' == 'true' or '$(IsTestAssetProject)' == 'true' or '$(IsBenchmarkProject)' == 'true' or '$(IsUnitTestProject)' == 'true' or '$(IsSpecificationTestProject)' == 'true' or '$(IsOtherTestProject)' == 'true'">true</ExcludeFromSourceBuild> ++ + <!-- + Following logic mimics core-setup approach as well as + https://github.com/dotnet/arcade/blob/694d59f090b743f894779d04a7ffe11cbaf352e7/src/Microsoft.DotNet.Arcade.Sdk/tools/Publish.proj#L30-L31 +-- +2.21.3 + diff --git a/eng/source-build-patches/0004-Remove-Yarn-dependency-not-used-in-source-build.patch b/eng/source-build-patches/0004-Remove-Yarn-dependency-not-used-in-source-build.patch new file mode 100644 index 00000000000..a047f721cf3 --- /dev/null +++ b/eng/source-build-patches/0004-Remove-Yarn-dependency-not-used-in-source-build.patch @@ -0,0 +1,77 @@ +From 83c0f95c563fa6eb9b446f09166cac2c62ab6390 Mon Sep 17 00:00:00 2001 +From: dseefeld <dseefeld@microsoft.com> +Date: Thu, 14 May 2020 16:29:28 +0000 +Subject: [PATCH 04/14] Remove Yarn dependency - not used in source-build + +--- + eng/targets/Npm.Common.targets | 3 --- + global.json | 1 - + .../src/Microsoft.Authentication.WebAssembly.Msal.csproj | 2 -- + ...oft.AspNetCore.Components.WebAssembly.Authentication.csproj | 2 -- + src/Shared/E2ETesting/E2ETesting.targets | 3 --- + 5 files changed, 11 deletions(-) + +diff --git a/eng/targets/Npm.Common.targets b/eng/targets/Npm.Common.targets +index 696d23402b..6086dd0843 100644 +--- a/eng/targets/Npm.Common.targets ++++ b/eng/targets/Npm.Common.targets +@@ -1,8 +1,5 @@ + <Project DefaultTargets="Build" InitialTargets="_CheckForInvalidConfiguration"> + +- <!-- Version of this SDK is set in global.json --> +- <Sdk Name="Yarn.MSBuild" /> +- + <PropertyGroup> + <NormalizedPackageId>$(PackageId.Replace('@','').Replace('/','-'))</NormalizedPackageId> + <PackageFileName>$(NormalizedPackageId)-$(PackageVersion).tgz</PackageFileName> +diff --git a/global.json b/global.json +index 501ba161bf..ee9dcaf4fa 100644 +--- a/global.json ++++ b/global.json +@@ -29,7 +29,6 @@ + "xcopy-msbuild": "16.5.0-alpha" + }, + "msbuild-sdks": { +- "Yarn.MSBuild": "1.22.10", + "Microsoft.DotNet.Arcade.Sdk": "6.0.0-beta.21167.3", + "Microsoft.DotNet.Helix.Sdk": "6.0.0-beta.21167.3" + } +diff --git a/src/Components/WebAssembly/Authentication.Msal/src/Microsoft.Authentication.WebAssembly.Msal.csproj b/src/Components/WebAssembly/Authentication.Msal/src/Microsoft.Authentication.WebAssembly.Msal.csproj +index 939ba16f88..ea2c849ea3 100644 +--- a/src/Components/WebAssembly/Authentication.Msal/src/Microsoft.Authentication.WebAssembly.Msal.csproj ++++ b/src/Components/WebAssembly/Authentication.Msal/src/Microsoft.Authentication.WebAssembly.Msal.csproj +@@ -1,7 +1,5 @@ + <Project Sdk="Microsoft.NET.Sdk.Razor"> + +- <Sdk Name="Yarn.MSBuild" /> +- + <PropertyGroup> + <TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework> + <Description>Authenticate your Blazor webassembly applications with Azure Active Directory and Azure Active Directory B2C</Description> +diff --git a/src/Components/WebAssembly/WebAssembly.Authentication/src/Microsoft.AspNetCore.Components.WebAssembly.Authentication.csproj b/src/Components/WebAssembly/WebAssembly.Authentication/src/Microsoft.AspNetCore.Components.WebAssembly.Authentication.csproj +index 21a2efba4e..b4a6a75446 100644 +--- a/src/Components/WebAssembly/WebAssembly.Authentication/src/Microsoft.AspNetCore.Components.WebAssembly.Authentication.csproj ++++ b/src/Components/WebAssembly/WebAssembly.Authentication/src/Microsoft.AspNetCore.Components.WebAssembly.Authentication.csproj +@@ -1,7 +1,5 @@ + <Project Sdk="Microsoft.NET.Sdk.Razor"> + +- <Sdk Name="Yarn.MSBuild" /> +- + <PropertyGroup> + <TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework> + <Description>Build client-side authentication for single-page applications (SPAs).</Description> +diff --git a/src/Shared/E2ETesting/E2ETesting.targets b/src/Shared/E2ETesting/E2ETesting.targets +index 76ced2cce9..eaecb913a9 100644 +--- a/src/Shared/E2ETesting/E2ETesting.targets ++++ b/src/Shared/E2ETesting/E2ETesting.targets +@@ -1,7 +1,4 @@ + <Project> +- <!-- Version of this SDK is set in global.json --> +- <Sdk Name="Yarn.MSBuild" /> +- + <!-- Make sure the settings files get copied to the test output folder. --> + <ItemGroup> + <None Update="e2eTestSettings*.json"> +-- +2.18.0 + diff --git a/eng/source-build-patches/0005-Revert-to-reference-versions-of-source-built-package.patch b/eng/source-build-patches/0005-Revert-to-reference-versions-of-source-built-package.patch new file mode 100644 index 00000000000..41a435e42bc --- /dev/null +++ b/eng/source-build-patches/0005-Revert-to-reference-versions-of-source-built-package.patch @@ -0,0 +1,42 @@ +From adef97cd8923986914006454777f9f96d48c3a42 Mon Sep 17 00:00:00 2001 +From: Chris Rummel <crummel@microsoft.com> +Date: Sun, 28 Jun 2020 18:41:22 +0000 +Subject: [PATCH 09/14] Use source-built version of MSBuild. + +--- + eng/Versions.props | 1 + + eng/tools/RepoTasks/RepoTasks.csproj | 6 +++--- + 2 files changed, 4 insertions(+), 3 deletions(-) + +diff --git a/eng/Versions.props b/eng/Versions.props +index 90bb9be..2266be5 100644 +--- a/eng/Versions.props ++++ b/eng/Versions.props +@@ -186,6 +186,7 @@ + <!-- Partner teams --> + <MicrosoftBclAsyncInterfacesVersion>1.0.0</MicrosoftBclAsyncInterfacesVersion> + <MicrosoftBuildVersion>16.9.0</MicrosoftBuildVersion> ++ <MicrosoftBuildFrameworkPackageVersion>16.9.0</MicrosoftBuildFrameworkPackageVersion> + <MicrosoftAzureSignalRVersion>1.2.0</MicrosoftAzureSignalRVersion> + <MicrosoftBuildFrameworkVersion>16.9.0</MicrosoftBuildFrameworkVersion> + <MicrosoftBuildLocatorVersion>1.2.6</MicrosoftBuildLocatorVersion> +diff --git a/eng/tools/RepoTasks/RepoTasks.csproj b/eng/tools/RepoTasks/RepoTasks.csproj +index 7fa9957..3664366 100644 +--- a/eng/tools/RepoTasks/RepoTasks.csproj ++++ b/eng/tools/RepoTasks/RepoTasks.csproj +@@ -20,9 +20,9 @@ + </ItemGroup> + + <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'"> +- <PackageReference Include="Microsoft.Build.Framework" Version="16.9.0" /> +- <PackageReference Include="Microsoft.Build.Tasks.Core" Version="16.9.0" /> +- <PackageReference Include="Microsoft.Build.Utilities.Core" Version="16.9.0" /> ++ <PackageReference Include="Microsoft.Build.Framework" Version="$(MicrosoftBuildFrameworkPackageVersion)" /> ++ <PackageReference Include="Microsoft.Build.Tasks.Core" Version="$(MicrosoftBuildFrameworkPackageVersion)" /> ++ <PackageReference Include="Microsoft.Build.Utilities.Core" Version="$(MicrosoftBuildFrameworkPackageVersion)" /> + </ItemGroup> + + <ItemGroup Condition="'$(TargetFramework)' == 'net472'"> +-- +2.18.0 + diff --git a/eng/source-build-patches/0006-Add-FreeBSD.patch b/eng/source-build-patches/0006-Add-FreeBSD.patch new file mode 100644 index 00000000000..ea1212f66b7 --- /dev/null +++ b/eng/source-build-patches/0006-Add-FreeBSD.patch @@ -0,0 +1,37 @@ +From d67aa83be72cbb1ca37aba992633da87235f397b Mon Sep 17 00:00:00 2001 +From: Tomas Weinfurt <tweinfurt@yahoo.com> +Date: Wed, 13 Nov 2019 22:32:02 -0800 +Subject: [PATCH 06/14] Add FreeBSD + +--- + Directory.Build.props | 1 + + eng/Common.props | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/Directory.Build.props b/Directory.Build.props +index cd2dabcdba..53d90f2903 100644 +--- a/Directory.Build.props ++++ b/Directory.Build.props +@@ -159,6 +159,7 @@ + win-arm64; + osx-x64; + osx-arm64; ++ freebsd-x64; + linux-musl-x64; + linux-musl-arm; + linux-musl-arm64; +diff --git a/eng/Common.props b/eng/Common.props +index 7c489b15a9..a9a69bde9f 100644 +--- a/eng/Common.props ++++ b/eng/Common.props +@@ -3,6 +3,7 @@ + <TargetOsName Condition=" '$(TargetOsName)' == '' AND $([MSBuild]::IsOSPlatform('Windows'))">win</TargetOsName> + <TargetOsName Condition=" '$(TargetOsName)' == '' AND $([MSBuild]::IsOSPlatform('OSX'))">osx</TargetOsName> + <TargetOsName Condition=" '$(TargetOsName)' == '' AND $([MSBuild]::IsOSPlatform('Linux'))">linux</TargetOsName> ++ <TargetOsName Condition=" '$(TargetOsName)' == '' AND $([MSBuild]::IsOSPlatform('FreeBSD'))">freebsd</TargetOsName> + <TargetArchitecture Condition="'$(TargetArchitecture)' == ''">x64</TargetArchitecture> + <TargetRuntimeIdentifier Condition="'$(TargetRuntimeIdentifier)' == ''">$(TargetOsName)-$(TargetArchitecture)</TargetRuntimeIdentifier> + </PropertyGroup> +-- +2.18.0 + diff --git a/eng/source-build-patches/0007-Support-global.json-on-arm64-as-well.patch b/eng/source-build-patches/0007-Support-global.json-on-arm64-as-well.patch new file mode 100644 index 00000000000..d54f0281c15 --- /dev/null +++ b/eng/source-build-patches/0007-Support-global.json-on-arm64-as-well.patch @@ -0,0 +1,42 @@ +From ca706cd8670d14fae05b36ee83de716fa19d95ba Mon Sep 17 00:00:00 2001 +From: Omair Majid <omajid@redhat.com> +Date: Wed, 23 Oct 2019 15:43:57 -0400 +Subject: [PATCH 07/14] Support global.json on arm64 as well + +arcade uses the runtime section of global.json to decide which +architecture + runtime combination needs to be installed. + +With https://github.com/dotnet/arcade/pull/4132 arcade can install +foreign SDKs in separate locations correctly. + +This change, suggested by @dougbu, makes arcade always install the +runtime for the local architecture (which means it should work on arm64 +and x64) as well as the x86 architecture (skipped on Linux). + +This gets us a working SDK/Runtime combo on arm64. +--- + global.json | 5 +---- + 1 file changed, 1 insertion(+), 4 deletions(-) + +diff --git a/global.json b/global.json +index ee9dcaf4fa..053e92ebee 100644 +--- a/global.json ++++ b/global.json +@@ -5,13 +5,10 @@ + "tools": { + "dotnet": "6.0.100-preview.3.21168.19", + "runtimes": { +- "dotnet/x64": [ ++ "dotnet": [ + "2.1.25", + "$(MicrosoftNETCoreBrowserDebugHostTransportVersion)" + ], +- "dotnet/x86": [ +- "$(MicrosoftNETCoreBrowserDebugHostTransportVersion)" +- ], + "aspnetcore/x64": [ + "3.1.13" + ] +-- +2.18.0 + diff --git a/eng/source-build-patches/0008-use-sourcebuildRID-to-find-clrjit.patch b/eng/source-build-patches/0008-use-sourcebuildRID-to-find-clrjit.patch new file mode 100644 index 00000000000..77f17bb5a97 --- /dev/null +++ b/eng/source-build-patches/0008-use-sourcebuildRID-to-find-clrjit.patch @@ -0,0 +1,25 @@ +From 2ac4c152b5c4409025dcbaf473b89a6094453e97 Mon Sep 17 00:00:00 2001 +From: adaggarwal <aditya.aggarwal@microsoft.com> +Date: Sat, 8 Feb 2020 06:43:48 +0000 +Subject: [PATCH 08/14] use-sourcebuildRID-to-find-clrjit + +--- + .../App.Runtime/src/Microsoft.AspNetCore.App.Runtime.csproj | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/Framework/App.Runtime/src/Microsoft.AspNetCore.App.Runtime.csproj b/src/Framework/App.Runtime/src/Microsoft.AspNetCore.App.Runtime.csproj +index 4199691fdb..6387557d8f 100644 +--- a/src/Framework/App.Runtime/src/Microsoft.AspNetCore.App.Runtime.csproj ++++ b/src/Framework/App.Runtime/src/Microsoft.AspNetCore.App.Runtime.csproj +@@ -411,7 +411,7 @@ This package is an internal implementation of the .NET Core SDK and is not meant + <PropertyGroup> + <!-- Pick the right coreclr jit based on whether we are cross-compiling or not. --> + <CoreCLRJitPath +- Condition="'$(CrossCompileDirectory)' == ''">$(RuntimePackageRoot)runtimes\$(RuntimeIdentifier)\native\$(LibPrefix)clrjit$(LibExtension)</CoreCLRJitPath> ++ Condition="'$(CrossCompileDirectory)' == ''">$(RuntimePackageRoot)runtimes\$(SourceBuildRuntimeIdentifier)\native\$(LibPrefix)clrjit$(LibExtension)</CoreCLRJitPath> + <CoreCLRJitPath + Condition="'$(CrossCompileDirectory)' != ''">$(RuntimePackageRoot)runtimes\$(CrossCompileDirectory)\native\$(LibPrefix)clrjit$(LibExtension)</CoreCLRJitPath> + </PropertyGroup> +-- +2.18.0 + diff --git a/eng/source-build-patches/0011-Fix-a-couple-issues.patch b/eng/source-build-patches/0011-Fix-a-couple-issues.patch new file mode 100644 index 00000000000..f32be5bebbd --- /dev/null +++ b/eng/source-build-patches/0011-Fix-a-couple-issues.patch @@ -0,0 +1,96 @@ +From 594c716ad8993df91b4cbade593b9bee7cacae47 Mon Sep 17 00:00:00 2001 +From: Chris Rummel <crummel@microsoft.com> +Date: Thu, 3 Sep 2020 06:29:25 -0500 +Subject: [PATCH 11/14] Fix a couple issues. + +--- + AspNetCore.sln | 2 - + src/Components/Components.slnf | 1 - + src/Components/ComponentsNoDeps.slnf | 1 - + .../Driver/Wasm.Performance.Driver.csproj | 37 ------------------- + 4 files changed, 41 deletions(-) + delete mode 100644 src/Components/benchmarkapps/Wasm.Performance/Driver/Wasm.Performance.Driver.csproj + +diff --git a/AspNetCore.sln b/AspNetCore.sln +index 06f5b1b4c6..4a7c2e59a8 100644 +--- a/AspNetCore.sln ++++ b/AspNetCore.sln +@@ -475,8 +475,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "benchmarkapps", "benchmarka + EndProject + Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Wasm.Performance", "Wasm.Performance", "{6276A9A0-791B-49C1-AD8F-50AC47CDC196}" + EndProject +-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Wasm.Performance.Driver", "src\Components\benchmarkapps\Wasm.Performance\Driver\Wasm.Performance.Driver.csproj", "{B81C7FA1-870F-4F21-A928-A5BE18754E6E}" +-EndProject + Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Wasm.Performance.TestApp", "src\Components\benchmarkapps\Wasm.Performance\TestApp\Wasm.Performance.TestApp.csproj", "{2AEACF69-7F68-414A-B49D-2C627D37D0F6}" + EndProject + Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Components.WebAssembly.Server.Tests", "src\Components\WebAssembly\Server\test\Microsoft.AspNetCore.Components.WebAssembly.Server.Tests.csproj", "{0C610220-E00C-4752-98A0-44A3D4B96A21}" +diff --git a/src/Components/Components.slnf b/src/Components/Components.slnf +index d023481b95..a28aa122b1 100644 +--- a/src/Components/Components.slnf ++++ b/src/Components/Components.slnf +@@ -37,7 +37,6 @@ + "src\\Components\\WebAssembly\\testassets\\WasmLinkerTest.csproj", + "src\\Components\\Web\\src\\Microsoft.AspNetCore.Components.Web.csproj", + "src\\Components\\Web\\test\\Microsoft.AspNetCore.Components.Web.Tests.csproj", +- "src\\Components\\benchmarkapps\\Wasm.Performance\\Driver\\Wasm.Performance.Driver.csproj", + "src\\Components\\benchmarkapps\\Wasm.Performance\\TestApp\\Wasm.Performance.TestApp.csproj", + "src\\Components\\test\\E2ETest\\Microsoft.AspNetCore.Components.E2ETests.csproj", + "src\\Components\\test\\testassets\\BasicTestApp\\BasicTestApp.csproj", +diff --git a/src/Components/ComponentsNoDeps.slnf b/src/Components/ComponentsNoDeps.slnf +index 7cf830b329..82e51fba83 100644 +--- a/src/Components/ComponentsNoDeps.slnf ++++ b/src/Components/ComponentsNoDeps.slnf +@@ -39,7 +39,6 @@ + "src\\Components\\Web\\src\\Microsoft.AspNetCore.Components.Web.csproj", + "src\\Components\\Web\\test\\Microsoft.AspNetCore.Components.Web.Tests.csproj", + "src\\Components\\benchmarkapps\\Wasm.Performance\\ConsoleHost\\Wasm.Performance.ConsoleHost.csproj", +- "src\\Components\\benchmarkapps\\Wasm.Performance\\Driver\\Wasm.Performance.Driver.csproj", + "src\\Components\\benchmarkapps\\Wasm.Performance\\TestApp\\Wasm.Performance.TestApp.csproj", + "src\\Components\\test\\E2ETest\\Microsoft.AspNetCore.Components.E2ETests.csproj", + "src\\Components\\test\\testassets\\BasicTestApp\\BasicTestApp.csproj", +diff --git a/src/Components/benchmarkapps/Wasm.Performance/Driver/Wasm.Performance.Driver.csproj b/src/Components/benchmarkapps/Wasm.Performance/Driver/Wasm.Performance.Driver.csproj +deleted file mode 100644 +index 346ddc48f1..0000000000 +--- a/src/Components/benchmarkapps/Wasm.Performance/Driver/Wasm.Performance.Driver.csproj ++++ /dev/null +@@ -1,37 +0,0 @@ +-<Project Sdk="Microsoft.NET.Sdk.Web"> +- +- <PropertyGroup> +- <TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework> +- <OutputType>exe</OutputType> +- +- <IsShippingPackage>false</IsShippingPackage> +- <!-- WebDriver is not strong-named, so this test project cannot be strong named either. --> +- <SignAssembly>false</SignAssembly> +- <IsTestAssetProject>true</IsTestAssetProject> +- <RuntimeIdentifier>linux-x64</RuntimeIdentifier> +- </PropertyGroup> +- +- <ItemGroup> +- <Reference Include="Microsoft.AspNetCore" /> +- <Reference Include="Microsoft.AspNetCore.Cors" /> +- <Reference Include="Microsoft.AspNetCore.Components.WebAssembly.Server" /> +- <Reference Include="Selenium.Support" /> +- <Reference Include="Selenium.WebDriver" /> +- <ProjectReference Include="..\TestApp\Wasm.Performance.TestApp.csproj" /> +- </ItemGroup> +- +- <ItemGroup> +- <Compile Include="..\..\..\WebAssembly\DevServer\src\Server\*.cs" /> +- </ItemGroup> +- +- <Target Name="_AddTestProjectMetadataAttributes" BeforeTargets="BeforeCompile"> +- <ItemGroup> +- <AssemblyAttribute +- Include="System.Reflection.AssemblyMetadataAttribute"> +- <_Parameter1>TestAppLocatiion</_Parameter1> +- <_Parameter2>$(MSBuildThisFileDirectory)..\TestApp\</_Parameter2> +- </AssemblyAttribute> +- </ItemGroup> +- </Target> +- +-</Project> +-- +2.18.0 + diff --git a/eng/source-build-patches/0012-Don-t-warn-on-CA1416.patch b/eng/source-build-patches/0012-Don-t-warn-on-CA1416.patch new file mode 100644 index 00000000000..87415782f67 --- /dev/null +++ b/eng/source-build-patches/0012-Don-t-warn-on-CA1416.patch @@ -0,0 +1,26 @@ +From 446691a345e68861bd653c1be4b9111aafad5613 Mon Sep 17 00:00:00 2001 +From: dseefeld <dseefeld@microsoft.com> +Date: Thu, 8 Oct 2020 14:18:02 +0000 +Subject: [PATCH 12/14] Don't warn on CA1416 + +--- + Directory.Build.props | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/Directory.Build.props b/Directory.Build.props +index 53d90f2903..72cee68b4e 100644 +--- a/Directory.Build.props ++++ b/Directory.Build.props +@@ -102,6 +102,9 @@ + + <!-- Warnings and errors --> + <PropertyGroup> ++ <!-- Don't warn on CA1416 since source-build TFM changes ++ are causing the warning to occur --> ++ <NoWarn>$(NoWarn);CA1416</NoWarn> + <!-- Ensure API docs are available. --> + <NoWarn>$(NoWarn.Replace('1591', ''))</NoWarn> + +-- +2.18.0 + diff --git a/eng/source-build-patches/0013-Use-source-built-NuGet-for-repo-tasks.patch b/eng/source-build-patches/0013-Use-source-built-NuGet-for-repo-tasks.patch new file mode 100644 index 00000000000..8c00f50d1be --- /dev/null +++ b/eng/source-build-patches/0013-Use-source-built-NuGet-for-repo-tasks.patch @@ -0,0 +1,39 @@ +From 1fa8097f1a6a49606c0aefad2763f3e0adf0e845 Mon Sep 17 00:00:00 2001 +From: Davis Goodin <dagood@microsoft.com> +Date: Fri, 6 Nov 2020 10:41:33 -0600 +Subject: [PATCH 13/14] Use source-built NuGet for repo tasks + +This allows us to use the source-built version of NuGet when we +have it, to avoid prebuilts. +--- + eng/Versions.props | 1 + + eng/tools/RepoTasks/RepoTasks.csproj | 2 +- + 2 files changed, 2 insertion(+), 1 deletion(-) + +diff --git a/eng/Versions.props b/eng/Versions.props +index 90bb9be..20a4c8c 100644 +--- a/eng/Versions.props ++++ b/eng/Versions.props +@@ -208,6 +208,7 @@ + <MicrosoftWebXdtVersion>1.4.0</MicrosoftWebXdtVersion> + <SystemIdentityModelTokensJwtVersion>6.8.0</SystemIdentityModelTokensJwtVersion> + <NuGetVersioningVersion>5.9.0</NuGetVersioningVersion> ++ <NuGetVersioningPackageVersion>5.9.0</NuGetVersioningPackageVersion> + <NuGetFrameworksVersion>5.9.0</NuGetFrameworksVersion> + <SystemNetExperimentalMsQuicVersion>5.0.0-alpha.20560.6</SystemNetExperimentalMsQuicVersion> + <!-- Packages from 2.1, 3.1, and 5.0 branches used for site extension build. --> +diff --git a/eng/tools/RepoTasks/RepoTasks.csproj b/eng/tools/RepoTasks/RepoTasks.csproj +index 2b09f16594..657974b2b0 100644 +--- a/eng/tools/RepoTasks/RepoTasks.csproj ++++ b/eng/tools/RepoTasks/RepoTasks.csproj +@@ -15,7 +15,7 @@ + </PropertyGroup> + + <ItemGroup> +- <PackageReference Include="NuGet.Packaging" Version="5.9.0" /> ++ <PackageReference Include="NuGet.Packaging" Version="$(NuGetVersioningPackageVersion)" /> + <PackageReference Include="Microsoft.Extensions.DependencyModel" Version="2.1.0" /> + </ItemGroup> + +-- +2.18.0 diff --git a/eng/source-build-patches/0017-Emit-RepoTasks.binlog.patch b/eng/source-build-patches/0017-Emit-RepoTasks.binlog.patch new file mode 100644 index 00000000000..79cc2f7ab9e --- /dev/null +++ b/eng/source-build-patches/0017-Emit-RepoTasks.binlog.patch @@ -0,0 +1,25 @@ +From 8f63217ad54ec431e398753b2bf745a1eb565e36 Mon Sep 17 00:00:00 2001 +From: Davis Goodin <dagood@microsoft.com> +Date: Mon, 21 Dec 2020 14:37:58 -0600 +Subject: [PATCH] Emit RepoTasks.binlog + +Lets us diagnose errors that occur while building RepoTasks.csproj. +--- + eng/build.sh | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/eng/build.sh b/eng/build.sh +index 3c3cab39ce..029bb4f0c8 100755 +--- a/eng/build.sh ++++ b/eng/build.sh +@@ -363,6 +363,7 @@ if [ "$build_repo_tasks" = true ]; then + -p:Restore=$run_restore \ + -p:Build=true \ + -clp:NoSummary \ ++ -bl:RepoTasks.binlog \ + ${toolset_build_args[@]+"${toolset_build_args[@]}"} + fi + +-- +2.25.4 + -- GitLab