Merge branch 'main' into merge/release/8.0.2xx-to-main

# Conflicts:
#	src/SourceBuild/content/eng/Versions.props
#	src/SourceBuild/content/global.json
This commit is contained in:
Michael Yanni 2023-10-19 13:40:15 -07:00
commit be3df24252
81 changed files with 2011 additions and 220 deletions

View file

@ -26,7 +26,7 @@
<DebugSymbols>true</DebugSymbols>
<IsShipping>true</IsShipping>
<CoreSdkTargetFramework>net8.0</CoreSdkTargetFramework>
<CoreSdkTargetFramework>net9.0</CoreSdkTargetFramework>
<!-- MSB3243 and MSB3247 fire when attempting to resolve references to the same assembly from different cultures.
This is a prevalent problem in building the precomputed assembly reference cache. Limiting the assemblies resolved

View file

@ -7,6 +7,7 @@
<clear />
<!--Begin: Package sources managed by Dependency Flow automation. Do not edit the sources below.-->
<!-- Begin: Package sources from DotNet-msbuild-Trusted -->
<add key="darc-pub-DotNet-msbuild-Trusted-6cdef42" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/darc-pub-DotNet-msbuild-Trusted-6cdef424/nuget/v3/index.json" />
<!-- End: Package sources from DotNet-msbuild-Trusted -->
<!-- Begin: Package sources from dotnet-sdk -->
<!-- End: Package sources from dotnet-sdk -->

View file

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net8.0</TargetFramework>
<TargetFramework>net9.0</TargetFramework>
<TargetPlatformIdentifier>Windows</TargetPlatformIdentifier>
</PropertyGroup>
</Project>

View file

@ -5,42 +5,42 @@
Source-build uses transitive dependency resolution to determine correct build SHA of all product contributing repos.
The order of dependencies is important and should not be modified without approval from dotnet/source-build-internal.
-->
<Dependency Name="Microsoft.WindowsDesktop.App.Ref" Version="9.0.0-alpha.1.23456.3" CoherentParentDependency="Microsoft.NET.Sdk">
<Dependency Name="Microsoft.WindowsDesktop.App.Ref" Version="9.0.0-alpha.1.23477.3" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://github.com/dotnet/windowsdesktop</Uri>
<Sha>52e969f93c15d4eaa2f709ebbfe168fb1bb09fa2</Sha>
<Sha>16efaf8b79a8924f02a8e7500bc7d81d1253007d</Sha>
</Dependency>
<Dependency Name="VS.Redist.Common.WindowsDesktop.SharedFramework.x64.9.0" Version="9.0.0-alpha.1.23456.3" CoherentParentDependency="Microsoft.NET.Sdk">
<Dependency Name="VS.Redist.Common.WindowsDesktop.SharedFramework.x64.9.0" Version="9.0.0-alpha.1.23477.3" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://github.com/dotnet/windowsdesktop</Uri>
<Sha>52e969f93c15d4eaa2f709ebbfe168fb1bb09fa2</Sha>
<Sha>16efaf8b79a8924f02a8e7500bc7d81d1253007d</Sha>
</Dependency>
<Dependency Name="VS.Redist.Common.WindowsDesktop.TargetingPack.x64.9.0" Version="9.0.0-alpha.1.23456.3" CoherentParentDependency="Microsoft.NET.Sdk">
<Dependency Name="VS.Redist.Common.WindowsDesktop.TargetingPack.x64.9.0" Version="9.0.0-alpha.1.23477.3" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://github.com/dotnet/windowsdesktop</Uri>
<Sha>52e969f93c15d4eaa2f709ebbfe168fb1bb09fa2</Sha>
<Sha>16efaf8b79a8924f02a8e7500bc7d81d1253007d</Sha>
</Dependency>
<Dependency Name="Microsoft.WindowsDesktop.App.Runtime.win-x64" Version="9.0.0-alpha.1.23456.3" CoherentParentDependency="Microsoft.NET.Sdk">
<Dependency Name="Microsoft.WindowsDesktop.App.Runtime.win-x64" Version="9.0.0-alpha.1.23477.3" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://github.com/dotnet/windowsdesktop</Uri>
<Sha>52e969f93c15d4eaa2f709ebbfe168fb1bb09fa2</Sha>
<Sha>16efaf8b79a8924f02a8e7500bc7d81d1253007d</Sha>
</Dependency>
<Dependency Name="VS.Redist.Common.NetCore.SharedFramework.x64.9.0" Version="9.0.0-alpha.1.23470.17" CoherentParentDependency="Microsoft.NET.Sdk">
<Dependency Name="VS.Redist.Common.NetCore.SharedFramework.x64.9.0" Version="9.0.0-alpha.1.23512.2" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://github.com/dotnet/runtime</Uri>
<Sha>736dabeca728ccf8b911d96d1b4c575b4d0db7d2</Sha>
<Sha>b331f23f3fb62ae355a42d2ec9c8aefdd0da4073</Sha>
<SourceBuild RepoName="runtime" ManagedOnly="false" />
</Dependency>
<Dependency Name="Microsoft.NETCore.App.Ref" Version="9.0.0-alpha.1.23470.17" CoherentParentDependency="Microsoft.NET.Sdk">
<Dependency Name="Microsoft.NETCore.App.Ref" Version="9.0.0-alpha.1.23512.2" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://github.com/dotnet/runtime</Uri>
<Sha>736dabeca728ccf8b911d96d1b4c575b4d0db7d2</Sha>
<Sha>b331f23f3fb62ae355a42d2ec9c8aefdd0da4073</Sha>
</Dependency>
<Dependency Name="VS.Redist.Common.NetCore.TargetingPack.x64.9.0" Version="9.0.0-alpha.1.23470.1" CoherentParentDependency="Microsoft.NET.Sdk">
<Dependency Name="VS.Redist.Common.NetCore.TargetingPack.x64.9.0" Version="9.0.0-alpha.1.23512.2" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://github.com/dotnet/runtime</Uri>
<Sha>f8c110b8003d68cc635add4ca791d6cf2e645561</Sha>
<Sha>b331f23f3fb62ae355a42d2ec9c8aefdd0da4073</Sha>
</Dependency>
<Dependency Name="Microsoft.NETCore.App.Runtime.win-x64" Version="9.0.0-alpha.1.23470.17" CoherentParentDependency="Microsoft.NET.Sdk">
<Dependency Name="Microsoft.NETCore.App.Runtime.win-x64" Version="9.0.0-alpha.1.23512.2" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://github.com/dotnet/runtime</Uri>
<Sha>736dabeca728ccf8b911d96d1b4c575b4d0db7d2</Sha>
<Sha>b331f23f3fb62ae355a42d2ec9c8aefdd0da4073</Sha>
</Dependency>
<Dependency Name="Microsoft.NETCore.App.Host.win-x64" Version="9.0.0-alpha.1.23470.17" CoherentParentDependency="Microsoft.NET.Sdk">
<Dependency Name="Microsoft.NETCore.App.Host.win-x64" Version="9.0.0-alpha.1.23512.2" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://github.com/dotnet/runtime</Uri>
<Sha>736dabeca728ccf8b911d96d1b4c575b4d0db7d2</Sha>
<Sha>b331f23f3fb62ae355a42d2ec9c8aefdd0da4073</Sha>
</Dependency>
<!-- Change blob version in GenerateLayout.targets if this is unpinned to service targeting pack -->
<!-- No new netstandard.library planned for 3.1 timeframe at this time. -->
@ -48,55 +48,55 @@
<Uri>https://github.com/dotnet/core-setup</Uri>
<Sha>7d57652f33493fa022125b7f63aad0d70c52d810</Sha>
</Dependency>
<Dependency Name="Microsoft.NETCore.Platforms" Version="9.0.0-alpha.1.23470.17" CoherentParentDependency="Microsoft.NET.Sdk">
<Dependency Name="Microsoft.NETCore.Platforms" Version="9.0.0-alpha.1.23512.2" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://github.com/dotnet/runtime</Uri>
<Sha>736dabeca728ccf8b911d96d1b4c575b4d0db7d2</Sha>
<Sha>b331f23f3fb62ae355a42d2ec9c8aefdd0da4073</Sha>
</Dependency>
<Dependency Name="Microsoft.AspNetCore.App.Ref" Version="9.0.0-alpha.1.23470.9" CoherentParentDependency="Microsoft.NET.Sdk">
<Dependency Name="Microsoft.AspNetCore.App.Ref" Version="9.0.0-alpha.1.23512.8" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://github.com/dotnet/aspnetcore</Uri>
<Sha>fa54329186df2e11b40bdfec4ae08f16fdbe9d99</Sha>
<Sha>3d83ad986828391652e48ebd037c5f485b4edd26</Sha>
</Dependency>
<Dependency Name="Microsoft.AspNetCore.App.Ref.Internal" Version="9.0.0-alpha.1.23470.9" CoherentParentDependency="Microsoft.NET.Sdk">
<Dependency Name="Microsoft.AspNetCore.App.Ref.Internal" Version="9.0.0-alpha.1.23512.8" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://github.com/dotnet/aspnetcore</Uri>
<Sha>fa54329186df2e11b40bdfec4ae08f16fdbe9d99</Sha>
<Sha>3d83ad986828391652e48ebd037c5f485b4edd26</Sha>
<SourceBuild RepoName="aspnetcore" ManagedOnly="true" />
</Dependency>
<Dependency Name="Microsoft.AspNetCore.App.Runtime.win-x64" Version="9.0.0-alpha.1.23470.9" CoherentParentDependency="Microsoft.NET.Sdk">
<Dependency Name="Microsoft.AspNetCore.App.Runtime.win-x64" Version="9.0.0-alpha.1.23512.8" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://github.com/dotnet/aspnetcore</Uri>
<Sha>fa54329186df2e11b40bdfec4ae08f16fdbe9d99</Sha>
<Sha>3d83ad986828391652e48ebd037c5f485b4edd26</Sha>
</Dependency>
<Dependency Name="VS.Redist.Common.AspNetCore.SharedFramework.x64.9.0" Version="9.0.0-alpha.1.23470.9" CoherentParentDependency="Microsoft.NET.Sdk">
<Dependency Name="VS.Redist.Common.AspNetCore.SharedFramework.x64.9.0" Version="9.0.0-alpha.1.23512.8" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://github.com/dotnet/aspnetcore</Uri>
<Sha>fa54329186df2e11b40bdfec4ae08f16fdbe9d99</Sha>
<Sha>3d83ad986828391652e48ebd037c5f485b4edd26</Sha>
</Dependency>
<Dependency Name="dotnet-dev-certs" Version="9.0.0-alpha.1.23470.9" CoherentParentDependency="Microsoft.NET.Sdk">
<Dependency Name="dotnet-dev-certs" Version="9.0.0-alpha.1.23512.8" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://github.com/dotnet/aspnetcore</Uri>
<Sha>fa54329186df2e11b40bdfec4ae08f16fdbe9d99</Sha>
<Sha>3d83ad986828391652e48ebd037c5f485b4edd26</Sha>
</Dependency>
<Dependency Name="dotnet-user-jwts" Version="9.0.0-alpha.1.23470.9" CoherentParentDependency="Microsoft.NET.Sdk">
<Dependency Name="dotnet-user-jwts" Version="9.0.0-alpha.1.23512.8" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://github.com/dotnet/aspnetcore</Uri>
<Sha>fa54329186df2e11b40bdfec4ae08f16fdbe9d99</Sha>
<Sha>3d83ad986828391652e48ebd037c5f485b4edd26</Sha>
</Dependency>
<Dependency Name="dotnet-user-secrets" Version="9.0.0-alpha.1.23470.9" CoherentParentDependency="Microsoft.NET.Sdk">
<Dependency Name="dotnet-user-secrets" Version="9.0.0-alpha.1.23512.8" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://github.com/dotnet/aspnetcore</Uri>
<Sha>fa54329186df2e11b40bdfec4ae08f16fdbe9d99</Sha>
<Sha>3d83ad986828391652e48ebd037c5f485b4edd26</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.Common.ItemTemplates" Version="9.0.100-alpha.1.23477.13">
<Dependency Name="Microsoft.DotNet.Common.ItemTemplates" Version="9.0.100-alpha.1.23512.21">
<Uri>https://github.com/dotnet/sdk</Uri>
<Sha>db5e29522ce8381a9b4c133e9001edb1f90a7d5c</Sha>
<Sha>fdb372b3219a898aa5f8bb5c135afbfd6b81e8c4</Sha>
</Dependency>
<Dependency Name="Microsoft.TemplateEngine.Cli" Version="9.0.100-alpha.1.23477.13">
<Dependency Name="Microsoft.TemplateEngine.Cli" Version="9.0.100-alpha.1.23512.21">
<Uri>https://github.com/dotnet/sdk</Uri>
<Sha>db5e29522ce8381a9b4c133e9001edb1f90a7d5c</Sha>
<Sha>fdb372b3219a898aa5f8bb5c135afbfd6b81e8c4</Sha>
</Dependency>
<Dependency Name="Microsoft.NET.Sdk" Version="9.0.100-alpha.1.23477.13">
<Dependency Name="Microsoft.NET.Sdk" Version="9.0.100-alpha.1.23512.21">
<Uri>https://github.com/dotnet/sdk</Uri>
<Sha>db5e29522ce8381a9b4c133e9001edb1f90a7d5c</Sha>
<Sha>fdb372b3219a898aa5f8bb5c135afbfd6b81e8c4</Sha>
<SourceBuild RepoName="sdk" ManagedOnly="true" />
</Dependency>
<Dependency Name="Microsoft.DotNet.MSBuildSdkResolver" Version="9.0.100-alpha.1.23477.13">
<Dependency Name="Microsoft.DotNet.MSBuildSdkResolver" Version="9.0.100-alpha.1.23512.21">
<Uri>https://github.com/dotnet/sdk</Uri>
<Sha>db5e29522ce8381a9b4c133e9001edb1f90a7d5c</Sha>
<Sha>fdb372b3219a898aa5f8bb5c135afbfd6b81e8c4</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.Test.ProjectTemplates.2.1" Version="1.0.2-beta4.22406.1">
<Uri>https://github.com/dotnet/test-templates</Uri>
@ -128,62 +128,62 @@
<Uri>https://github.com/dotnet/wpf</Uri>
<Sha>3a8376ca92de4c85dd92b05fba8a1c0a49b14cb9</Sha>
</Dependency>
<Dependency Name="Microsoft.FSharp.Compiler" Version="12.8.0-beta.23470.1" CoherentParentDependency="Microsoft.NET.Sdk">
<Dependency Name="Microsoft.FSharp.Compiler" Version="12.8.0-beta.23510.3" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://github.com/dotnet/fsharp</Uri>
<Sha>767ffa73e8147418ecf54df376e6685b03efd6e4</Sha>
<Sha>736b7454a057e390bf46a05c0f2d8b5760fd5ce9</Sha>
</Dependency>
<Dependency Name="Microsoft.SourceBuild.Intermediate.fsharp" Version="8.0.100-beta.23470.1" CoherentParentDependency="Microsoft.NET.Sdk">
<Dependency Name="Microsoft.SourceBuild.Intermediate.fsharp" Version="8.0.200-beta.23510.3" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://github.com/dotnet/fsharp</Uri>
<Sha>767ffa73e8147418ecf54df376e6685b03efd6e4</Sha>
<Sha>736b7454a057e390bf46a05c0f2d8b5760fd5ce9</Sha>
<SourceBuild RepoName="fsharp" ManagedOnly="true" />
</Dependency>
<Dependency Name="Microsoft.NET.Test.Sdk" Version="17.8.0-release-23468-02" CoherentParentDependency="Microsoft.NET.Sdk">
<Dependency Name="Microsoft.NET.Test.Sdk" Version="17.9.0-preview-23509-01" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://github.com/microsoft/vstest</Uri>
<Sha>cf7d549fc0197abaabec19d61d2c20d7a7b089f8</Sha>
<Sha>89a55b6ca9270e3e12e3e158104518c225f5ed46</Sha>
<SourceBuild RepoName="vstest" ManagedOnly="true" />
</Dependency>
<Dependency Name="Microsoft.NET.ILLink.Tasks" Version="9.0.0-alpha.1.23470.17" CoherentParentDependency="Microsoft.NET.Sdk">
<Dependency Name="Microsoft.NET.ILLink.Tasks" Version="9.0.0-alpha.1.23512.2" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://github.com/dotnet/runtime</Uri>
<Sha>736dabeca728ccf8b911d96d1b4c575b4d0db7d2</Sha>
<Sha>b331f23f3fb62ae355a42d2ec9c8aefdd0da4073</Sha>
</Dependency>
<Dependency Name="Microsoft.Net.Compilers.Toolset" Version="4.8.0-3.23470.12" CoherentParentDependency="Microsoft.NET.Sdk">
<Dependency Name="Microsoft.Net.Compilers.Toolset" Version="4.9.0-1.23511.8" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://github.com/dotnet/roslyn</Uri>
<Sha>79963f8a40c6429cd25667c4c62e717b4ca72098</Sha>
<Sha>17e4696ee6ed0a077650e8cabe6f507e2497a8da</Sha>
<SourceBuild RepoName="roslyn" ManagedOnly="true" />
</Dependency>
<Dependency Name="Microsoft.Build" Version="17.8.0-preview-23469-05" CoherentParentDependency="Microsoft.NET.Sdk">
<Dependency Name="Microsoft.Build" Version="17.9.0-preview-23511-03" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://github.com/dotnet/msbuild</Uri>
<Sha>60ae06f6d20616f524a751373aea071df8c2ae48</Sha>
<Sha>a9341111228592c25c43ecf6858e7b39e525b5a1</Sha>
<SourceBuild RepoName="msbuild" ManagedOnly="true" />
</Dependency>
<Dependency Name="NuGet.Build.Tasks" Version="6.8.0-rc.112" CoherentParentDependency="Microsoft.NET.Sdk">
<Dependency Name="NuGet.Build.Tasks" Version="6.9.0-preview.1.13" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://github.com/nuget/nuget.client</Uri>
<Sha>f47eb5771ee3f9a100d0b31d82ccb5ee600a56ed</Sha>
<Sha>5ce332fb834feea1f6c974d17456c8c9d5504e09</Sha>
<SourceBuildTarball RepoName="nuget-client" ManagedOnly="true" />
</Dependency>
<Dependency Name="Microsoft.ApplicationInsights" Version="2.0.0">
<Uri>https://github.com/Microsoft/ApplicationInsights-dotnet</Uri>
<Sha>53b80940842204f78708a538628288ff5d741a1d</Sha>
</Dependency>
<Dependency Name="Microsoft.NET.Workload.Emscripten.Current.Manifest-9.0.100.Transport" Version="9.0.0-alpha.1.23465.3" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
<Dependency Name="Microsoft.NET.Workload.Emscripten.Current.Manifest-9.0.100.Transport" Version="9.0.0-alpha.1.23507.1" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
<Uri>https://github.com/dotnet/emsdk</Uri>
<Sha>bebe955e9f7d392fbca594b1c76c54ba2e27027e</Sha>
<Sha>97568ad0e2120f194df7ac3895e9589fcc8a255b</Sha>
<SourceBuild RepoName="emsdk" ManagedOnly="true" />
</Dependency>
<Dependency Name="Microsoft.Deployment.DotNet.Releases" Version="2.0.0-preview.1.23463.1" CoherentParentDependency="Microsoft.NET.Sdk">
<Dependency Name="Microsoft.Deployment.DotNet.Releases" Version="2.0.0-preview.1.23478.2" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://github.com/dotnet/deployment-tools</Uri>
<Sha>5957c5c5f85f17c145e7fab4ece37ad6aafcded9</Sha>
<Sha>8babbda6fb22b1410c256bfffed9a8041ff87025</Sha>
</Dependency>
<!-- Explicit dependency because Microsoft.Deployment.DotNet.Releases has different versioning
than the SB intermediate -->
<Dependency Name="Microsoft.SourceBuild.Intermediate.deployment-tools" Version="8.0.0-preview.6.23463.1" CoherentParentDependency="Microsoft.NET.Sdk">
<Dependency Name="Microsoft.SourceBuild.Intermediate.deployment-tools" Version="8.0.0-preview.6.23478.2" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://github.com/dotnet/deployment-tools</Uri>
<Sha>5957c5c5f85f17c145e7fab4ece37ad6aafcded9</Sha>
<Sha>8babbda6fb22b1410c256bfffed9a8041ff87025</Sha>
<SourceBuild RepoName="deployment-tools" ManagedOnly="true" />
</Dependency>
<Dependency Name="Microsoft.SourceBuild.Intermediate.source-build-externals" Version="9.0.0-alpha.1.23502.3">
<Dependency Name="Microsoft.SourceBuild.Intermediate.source-build-externals" Version="9.0.0-alpha.1.23518.2">
<Uri>https://github.com/dotnet/source-build-externals</Uri>
<Sha>588fbcbc2a221bc6cea33f12eb73c9117994154e</Sha>
<Sha>54ad220ef4f236325dec31f2c0c66fa48a6fce33</Sha>
<SourceBuild RepoName="source-build-externals" ManagedOnly="true" />
</Dependency>
<Dependency Name="Microsoft.SourceBuild.Intermediate.symreader" Version="2.1.0-beta.23253.1">
@ -202,18 +202,18 @@
</Dependency>
</ProductDependencies>
<ToolsetDependencies>
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="8.0.0-beta.23463.1">
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="9.0.0-beta.23518.2">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>1d451c32dda2314c721adbf8829e1c0cd4e681ff</Sha>
<Sha>6a5ca678aef84f34a1fccc46f76623f41da56553</Sha>
<SourceBuild RepoName="arcade" ManagedOnly="true" />
</Dependency>
<Dependency Name="Microsoft.DotNet.CMake.Sdk" Version="8.0.0-beta.23463.1">
<Dependency Name="Microsoft.DotNet.CMake.Sdk" Version="9.0.0-beta.23518.2">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>1d451c32dda2314c721adbf8829e1c0cd4e681ff</Sha>
<Sha>6a5ca678aef84f34a1fccc46f76623f41da56553</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.Build.Tasks.Installers" Version="8.0.0-beta.23463.1">
<Dependency Name="Microsoft.DotNet.Build.Tasks.Installers" Version="9.0.0-beta.23518.2">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>1d451c32dda2314c721adbf8829e1c0cd4e681ff</Sha>
<Sha>6a5ca678aef84f34a1fccc46f76623f41da56553</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.Darc" Version="1.1.0-beta.23430.3">
<Uri>https://github.com/dotnet/arcade-services</Uri>
@ -227,14 +227,14 @@
<Uri>https://github.com/dotnet/runtime</Uri>
<Sha>af841c8b33cecc92d74222298f1e45bf7bf3d90a</Sha>
</Dependency>
<Dependency Name="Microsoft.SourceBuild.Intermediate.source-build-reference-packages" Version="8.0.0-alpha.1.23428.2">
<Dependency Name="Microsoft.SourceBuild.Intermediate.source-build-reference-packages" Version="9.0.0-alpha.1.23502.1">
<Uri>https://github.com/dotnet/source-build-reference-packages</Uri>
<Sha>26ce96327dd346534926c4551f8b8d62a6fc724f</Sha>
<Sha>05ffbf9df6c1dc621665ee1864874c4fe6de874c</Sha>
<SourceBuild RepoName="source-build-reference-packages" ManagedOnly="true" />
</Dependency>
<Dependency Name="Microsoft.DotNet.XliffTasks" Version="1.0.0-beta.23426.1" CoherentParentDependency="Microsoft.DotNet.Arcade.Sdk">
<Dependency Name="Microsoft.DotNet.XliffTasks" Version="1.0.0-beta.23516.1" CoherentParentDependency="Microsoft.DotNet.Arcade.Sdk">
<Uri>https://github.com/dotnet/xliff-tasks</Uri>
<Sha>194f32828726c3f1f63f79f3dc09b9e99c157b11</Sha>
<Sha>d66a09c8b11e1235273c8e6cd946e5c8e247f189</Sha>
<SourceBuild RepoName="xliff-tasks" ManagedOnly="true" />
</Dependency>
<Dependency Name="Microsoft.DotNet.ScenarioTests.SdkTemplateTests" Version="8.0.0-preview.23424.2">

View file

@ -39,7 +39,7 @@
</PropertyGroup>
<PropertyGroup>
<!-- Dependency from https://github.com/dotnet/arcade -->
<MicrosoftDotNetBuildTasksInstallersPackageVersion>8.0.0-beta.23463.1</MicrosoftDotNetBuildTasksInstallersPackageVersion>
<MicrosoftDotNetBuildTasksInstallersPackageVersion>9.0.0-beta.23518.2</MicrosoftDotNetBuildTasksInstallersPackageVersion>
</PropertyGroup>
<PropertyGroup>
<!-- Dependency from https://github.com/dotnet/arcade-services -->
@ -71,50 +71,50 @@
</PropertyGroup>
<PropertyGroup>
<!-- Dependencies from https://github.com/aspnet/AspNetCore -->
<MicrosoftAspNetCoreAppRuntimewinx64PackageVersion>9.0.0-alpha.1.23470.9</MicrosoftAspNetCoreAppRuntimewinx64PackageVersion>
<MicrosoftAspNetCoreAppRefPackageVersion>9.0.0-alpha.1.23470.9</MicrosoftAspNetCoreAppRefPackageVersion>
<MicrosoftAspNetCoreAppRefInternalPackageVersion>9.0.0-alpha.1.23470.9</MicrosoftAspNetCoreAppRefInternalPackageVersion>
<VSRedistCommonAspNetCoreSharedFrameworkx6490PackageVersion>9.0.0-alpha.1.23470.9</VSRedistCommonAspNetCoreSharedFrameworkx6490PackageVersion>
<dotnetdevcertsPackageVersion>9.0.0-alpha.1.23470.9</dotnetdevcertsPackageVersion>
<dotnetuserjwtsPackageVersion>9.0.0-alpha.1.23470.9</dotnetuserjwtsPackageVersion>
<dotnetusersecretsPackageVersion>9.0.0-alpha.1.23470.9</dotnetusersecretsPackageVersion>
<MicrosoftAspNetCoreAppRuntimewinx64PackageVersion>9.0.0-alpha.1.23512.8</MicrosoftAspNetCoreAppRuntimewinx64PackageVersion>
<MicrosoftAspNetCoreAppRefPackageVersion>9.0.0-alpha.1.23512.8</MicrosoftAspNetCoreAppRefPackageVersion>
<MicrosoftAspNetCoreAppRefInternalPackageVersion>9.0.0-alpha.1.23512.8</MicrosoftAspNetCoreAppRefInternalPackageVersion>
<VSRedistCommonAspNetCoreSharedFrameworkx6490PackageVersion>9.0.0-alpha.1.23512.8</VSRedistCommonAspNetCoreSharedFrameworkx6490PackageVersion>
<dotnetdevcertsPackageVersion>9.0.0-alpha.1.23512.8</dotnetdevcertsPackageVersion>
<dotnetuserjwtsPackageVersion>9.0.0-alpha.1.23512.8</dotnetuserjwtsPackageVersion>
<dotnetusersecretsPackageVersion>9.0.0-alpha.1.23512.8</dotnetusersecretsPackageVersion>
</PropertyGroup>
<PropertyGroup>
<MicroBuildCorePackageVersion>0.2.0</MicroBuildCorePackageVersion>
</PropertyGroup>
<PropertyGroup>
<!-- Dependencies from https://github.com/dotnet/sdk -->
<MicrosoftDotNetCommonItemTemplatesPackageVersion>9.0.100-alpha.1.23477.13</MicrosoftDotNetCommonItemTemplatesPackageVersion>
<MicrosoftNETSdkPackageVersion>9.0.100-alpha.1.23477.13</MicrosoftNETSdkPackageVersion>
<MicrosoftDotNetMSBuildSdkResolverPackageVersion>9.0.100-alpha.1.23477.13</MicrosoftDotNetMSBuildSdkResolverPackageVersion>
<MicrosoftDotNetCommonItemTemplatesPackageVersion>9.0.100-alpha.1.23512.21</MicrosoftDotNetCommonItemTemplatesPackageVersion>
<MicrosoftNETSdkPackageVersion>9.0.100-alpha.1.23512.21</MicrosoftNETSdkPackageVersion>
<MicrosoftDotNetMSBuildSdkResolverPackageVersion>9.0.100-alpha.1.23512.21</MicrosoftDotNetMSBuildSdkResolverPackageVersion>
<MicrosoftNETBuildExtensionsPackageVersion>$(MicrosoftNETSdkPackageVersion)</MicrosoftNETBuildExtensionsPackageVersion>
<MicrosoftDotnetToolsetInternalPackageVersion>$(MicrosoftNETSdkPackageVersion)</MicrosoftDotnetToolsetInternalPackageVersion>
<MicrosoftDotnetTemplateLocatorPackageVersion>$(MicrosoftNETSdkPackageVersion)</MicrosoftDotnetTemplateLocatorPackageVersion>
</PropertyGroup>
<PropertyGroup>
<!-- Dependencies from https://github.com/dotnet/roslyn -->
<MicrosoftNetCompilersToolsetPackageVersion>4.8.0-3.23470.12</MicrosoftNetCompilersToolsetPackageVersion>
<MicrosoftNetCompilersToolsetPackageVersion>4.9.0-1.23511.8</MicrosoftNetCompilersToolsetPackageVersion>
</PropertyGroup>
<PropertyGroup>
<!-- Dependencies from https://github.com/dotnet/corefx -->
<MicrosoftNETCorePlatformsPackageVersion>9.0.0-alpha.1.23470.17</MicrosoftNETCorePlatformsPackageVersion>
<MicrosoftNETCorePlatformsPackageVersion>9.0.0-alpha.1.23512.2</MicrosoftNETCorePlatformsPackageVersion>
</PropertyGroup>
<PropertyGroup>
<!-- Dependencies from https://github.com/dotnet/core-setup -->
<VSRedistCommonNetCoreSharedFrameworkx6490PackageVersion>9.0.0-alpha.1.23470.17</VSRedistCommonNetCoreSharedFrameworkx6490PackageVersion>
<VSRedistCommonNetCoreTargetingPackx6490PackageVersion>9.0.0-alpha.1.23470.17</VSRedistCommonNetCoreTargetingPackx6490PackageVersion>
<MicrosoftNETCoreAppRuntimewinx64PackageVersion>9.0.0-alpha.1.23470.17</MicrosoftNETCoreAppRuntimewinx64PackageVersion>
<MicrosoftNETCoreAppHostwinx64PackageVersion>9.0.0-alpha.1.23470.17</MicrosoftNETCoreAppHostwinx64PackageVersion>
<MicrosoftNETCoreAppRefPackageVersion>9.0.0-alpha.1.23470.17</MicrosoftNETCoreAppRefPackageVersion>
<VSRedistCommonNetCoreSharedFrameworkx6490PackageVersion>9.0.0-alpha.1.23512.2</VSRedistCommonNetCoreSharedFrameworkx6490PackageVersion>
<VSRedistCommonNetCoreTargetingPackx6490PackageVersion>9.0.0-alpha.1.23512.2</VSRedistCommonNetCoreTargetingPackx6490PackageVersion>
<MicrosoftNETCoreAppRuntimewinx64PackageVersion>9.0.0-alpha.1.23512.2</MicrosoftNETCoreAppRuntimewinx64PackageVersion>
<MicrosoftNETCoreAppHostwinx64PackageVersion>9.0.0-alpha.1.23512.2</MicrosoftNETCoreAppHostwinx64PackageVersion>
<MicrosoftNETCoreAppRefPackageVersion>9.0.0-alpha.1.23512.2</MicrosoftNETCoreAppRefPackageVersion>
<MicrosoftNETCoreDotNetHostResolverPackageVersion>8.0.0-rc.1.23414.4</MicrosoftNETCoreDotNetHostResolverPackageVersion>
<NETStandardLibraryRefPackageVersion>2.1.0</NETStandardLibraryRefPackageVersion>
</PropertyGroup>
<PropertyGroup>
<!-- Dependencies from https://github.com/dotnet/windowsdesktop -->
<VSRedistCommonWindowsDesktopSharedFrameworkx6490PackageVersion>9.0.0-alpha.1.23456.3</VSRedistCommonWindowsDesktopSharedFrameworkx6490PackageVersion>
<VSRedistCommonWindowsDesktopTargetingPackx6490PackageVersion>9.0.0-alpha.1.23456.3</VSRedistCommonWindowsDesktopTargetingPackx6490PackageVersion>
<MicrosoftWindowsDesktopAppRuntimewinx64PackageVersion>9.0.0-alpha.1.23456.3</MicrosoftWindowsDesktopAppRuntimewinx64PackageVersion>
<MicrosoftWindowsDesktopAppRefPackageVersion>9.0.0-alpha.1.23456.3</MicrosoftWindowsDesktopAppRefPackageVersion>
<VSRedistCommonWindowsDesktopSharedFrameworkx6490PackageVersion>9.0.0-alpha.1.23477.3</VSRedistCommonWindowsDesktopSharedFrameworkx6490PackageVersion>
<VSRedistCommonWindowsDesktopTargetingPackx6490PackageVersion>9.0.0-alpha.1.23477.3</VSRedistCommonWindowsDesktopTargetingPackx6490PackageVersion>
<MicrosoftWindowsDesktopAppRuntimewinx64PackageVersion>9.0.0-alpha.1.23477.3</MicrosoftWindowsDesktopAppRuntimewinx64PackageVersion>
<MicrosoftWindowsDesktopAppRefPackageVersion>9.0.0-alpha.1.23477.3</MicrosoftWindowsDesktopAppRefPackageVersion>
</PropertyGroup>
<PropertyGroup>
<!-- Runtime and Apphost pack versions are the same for all RIDs. We flow the x64 -->
@ -126,11 +126,11 @@
</PropertyGroup>
<PropertyGroup>
<!-- Dependencies from https://github.com/NuGet/NuGet.Client -->
<NuGetBuildTasksPackageVersion>6.8.0-rc.112</NuGetBuildTasksPackageVersion>
<NuGetBuildTasksPackageVersion>6.9.0-preview.1.13</NuGetBuildTasksPackageVersion>
</PropertyGroup>
<!-- Dependencies from https://github.com/dotnet/deployment-tools -->
<PropertyGroup>
<MicrosoftDeploymentDotNetReleasesVersion>2.0.0-preview.1.23463.1</MicrosoftDeploymentDotNetReleasesVersion>
<MicrosoftDeploymentDotNetReleasesVersion>2.0.0-preview.1.23478.2</MicrosoftDeploymentDotNetReleasesVersion>
</PropertyGroup>
<PropertyGroup>
<!-- Automated versions for asp.net templates -->
@ -238,7 +238,7 @@
<PropertyGroup>
<VersionToolsVersion>2.2.0-beta.19072.10</VersionToolsVersion>
<DotnetDebToolVersion>2.0.0</DotnetDebToolVersion>
<MicrosoftNETTestSdkVersion>17.8.0-release-23468-02</MicrosoftNETTestSdkVersion>
<MicrosoftNETTestSdkVersion>17.9.0-preview-23509-01</MicrosoftNETTestSdkVersion>
<MicrosoftExtensionsLoggingConsoleVersion>8.0.0-alpha.1.22557.12</MicrosoftExtensionsLoggingConsoleVersion>
<MicrosoftDotNetScenarioTestsSdkTemplateTestsVersion>8.0.0-preview.23424.2</MicrosoftDotNetScenarioTestsSdkTemplateTestsVersion>
</PropertyGroup>
@ -254,7 +254,7 @@
<XamarinMacOSWorkloadManifestVersion>13.3.8825-net8-rc1</XamarinMacOSWorkloadManifestVersion>
<XamarinTvOSWorkloadManifestVersion>16.4.8825-net8-rc1</XamarinTvOSWorkloadManifestVersion>
<!-- Workloads from dotnet/emsdk -->
<MicrosoftNETWorkloadEmscriptenCurrentManifest90100TransportPackageVersion>9.0.0-alpha.1.23465.3</MicrosoftNETWorkloadEmscriptenCurrentManifest90100TransportPackageVersion>
<MicrosoftNETWorkloadEmscriptenCurrentManifest90100TransportPackageVersion>9.0.0-alpha.1.23507.1</MicrosoftNETWorkloadEmscriptenCurrentManifest90100TransportPackageVersion>
<EmscriptenWorkloadManifestVersion>$(MicrosoftNETWorkloadEmscriptenCurrentManifest90100TransportPackageVersion)</EmscriptenWorkloadManifestVersion>
<!-- emsdk workload prerelease version band must match the emsdk feature band -->
<EmscriptenWorkloadFeatureBand>9.0.100$([System.Text.RegularExpressions.Regex]::Match($(EmscriptenWorkloadManifestVersion), `-[A-z]*[\.]*\d*`))</EmscriptenWorkloadFeatureBand>

View file

@ -105,7 +105,7 @@ while [[ $# > 0 ]]; do
-binarylog|-bl)
binary_log=true
;;
-excludeCIBinarylog|-nobl)
-excludecibinarylog|-nobl)
exclude_ci_binary_log=true
;;
-pipelineslog|-pl)

View file

@ -487,7 +487,7 @@ if [[ "$__CodeName" == "alpine" ]]; then
-X "http://dl-cdn.alpinelinux.org/alpine/$version/main" \
-X "http://dl-cdn.alpinelinux.org/alpine/$version/community" \
-U $__ApkSignatureArg --root "$__RootfsDir" --arch "$__AlpineArch" \
search 'llvm*-libs' | sort | tail -1 | sed 's/-[^-]*//2g')"
search 'llvm*-libs' | grep -E '^llvm' | sort | tail -1 | sed 's/-[^-]*//2g')"
fi
# install all packages in one go

View file

@ -0,0 +1,9 @@
diff -u -r a/usr/lib/libc.so b/usr/lib/libc.so
--- a/usr/lib64/libc.so 2016-12-30 23:00:08.284951863 +0900
+++ b/usr/lib64/libc.so 2016-12-30 23:00:32.140951815 +0900
@@ -2,4 +2,4 @@
Use the shared library, but some functions are only in
the static library, so try that secondarily. */
OUTPUT_FORMAT(elf64-littleriscv)
-GROUP ( /lib64/libc.so.6 /usr/lib64/libc_nonshared.a AS_NEEDED ( /lib64/ld-linux-riscv64-lp64d.so.1 ) )
+GROUP ( libc.so.6 libc_nonshared.a AS_NEEDED ( ld-linux-riscv64-lp64d.so.1 ) )

View file

@ -22,6 +22,10 @@ case "$ARCH" in
TIZEN_ARCH="x86_64"
LINK_ARCH="x86"
;;
riscv64)
TIZEN_ARCH="riscv64"
LINK_ARCH="riscv"
;;
*)
echo "Unsupported architecture for tizen: $ARCH"
exit 1
@ -58,4 +62,21 @@ rm -rf $TIZEN_TMP_DIR
echo ">>Start configuring Tizen rootfs"
ln -sfn asm-${LINK_ARCH} ./usr/include/asm
patch -p1 < $__TIZEN_CROSSDIR/tizen.patch
if [[ "$TIZEN_ARCH" == "riscv64" ]]; then
echo "Fixing broken symlinks in $PWD"
rm ./usr/lib64/libresolv.so
ln -s ../../lib64/libresolv.so.2 ./usr/lib64/libresolv.so
rm ./usr/lib64/libpthread.so
ln -s ../../lib64/libpthread.so.0 ./usr/lib64/libpthread.so
rm ./usr/lib64/libdl.so
ln -s ../../lib64/libdl.so.2 ./usr/lib64/libdl.so
rm ./usr/lib64/libutil.so
ln -s ../../lib64/libutil.so.1 ./usr/lib64/libutil.so
rm ./usr/lib64/libm.so
ln -s ../../lib64/libm.so.6 ./usr/lib64/libm.so
rm ./usr/lib64/librt.so
ln -s ../../lib64/librt.so.1 ./usr/lib64/librt.so
rm ./lib/ld-linux-riscv64-lp64d.so.1
ln -s ../lib64/ld-linux-riscv64-lp64d.so.1 ./lib/ld-linux-riscv64-lp64d.so.1
fi
echo "<<Finish configuring Tizen rootfs"

View file

@ -156,17 +156,28 @@ fetch_tizen_pkgs()
done
}
if [ "$TIZEN_ARCH" == "riscv64" ]; then
BASE="Tizen-Base-RISCV"
UNIFIED="Tizen-Unified-RISCV"
else
BASE="Tizen-Base"
UNIFIED="Tizen-Unified"
fi
Inform "Initialize ${TIZEN_ARCH} base"
fetch_tizen_pkgs_init standard Tizen-Base
fetch_tizen_pkgs_init standard $BASE
Inform "fetch common packages"
fetch_tizen_pkgs ${TIZEN_ARCH} gcc gcc-devel-static glibc glibc-devel libicu libicu-devel libatomic linux-glibc-devel keyutils keyutils-devel libkeyutils
Inform "fetch coreclr packages"
fetch_tizen_pkgs ${TIZEN_ARCH} lldb lldb-devel libgcc libstdc++ libstdc++-devel libunwind libunwind-devel lttng-ust-devel lttng-ust userspace-rcu-devel userspace-rcu
fetch_tizen_pkgs ${TIZEN_ARCH} libgcc libstdc++ libstdc++-devel libunwind libunwind-devel lttng-ust-devel lttng-ust userspace-rcu-devel userspace-rcu
if [ "$TIZEN_ARCH" != "riscv64" ]; then
fetch_tizen_pkgs ${TIZEN_ARCH} lldb lldb-devel
fi
Inform "fetch corefx packages"
fetch_tizen_pkgs ${TIZEN_ARCH} libcom_err libcom_err-devel zlib zlib-devel libopenssl11 libopenssl1.1-devel krb5 krb5-devel
Inform "Initialize standard unified"
fetch_tizen_pkgs_init standard Tizen-Unified
fetch_tizen_pkgs_init standard $UNIFIED
Inform "fetch corefx packages"
fetch_tizen_pkgs ${TIZEN_ARCH} gssdp gssdp-devel tizen-release

View file

@ -40,7 +40,7 @@ if(TARGET_ARCH_NAME STREQUAL "arm")
set(TOOLCHAIN "arm-linux-gnueabihf")
endif()
if(TIZEN)
set(TIZEN_TOOLCHAIN "armv7hl-tizen-linux-gnueabihf/9.2.0")
set(TIZEN_TOOLCHAIN "armv7hl-tizen-linux-gnueabihf/13.1.0")
endif()
elseif(TARGET_ARCH_NAME STREQUAL "arm64")
set(CMAKE_SYSTEM_PROCESSOR aarch64)
@ -49,7 +49,7 @@ elseif(TARGET_ARCH_NAME STREQUAL "arm64")
elseif(LINUX)
set(TOOLCHAIN "aarch64-linux-gnu")
if(TIZEN)
set(TIZEN_TOOLCHAIN "aarch64-tizen-linux-gnu/9.2.0")
set(TIZEN_TOOLCHAIN "aarch64-tizen-linux-gnu/13.1.0")
endif()
elseif(FREEBSD)
set(triple "aarch64-unknown-freebsd12")
@ -58,7 +58,7 @@ elseif(TARGET_ARCH_NAME STREQUAL "armel")
set(CMAKE_SYSTEM_PROCESSOR armv7l)
set(TOOLCHAIN "arm-linux-gnueabi")
if(TIZEN)
set(TIZEN_TOOLCHAIN "armv7l-tizen-linux-gnueabi/9.2.0")
set(TIZEN_TOOLCHAIN "armv7l-tizen-linux-gnueabi/13.1.0")
endif()
elseif(TARGET_ARCH_NAME STREQUAL "armv6")
set(CMAKE_SYSTEM_PROCESSOR armv6l)
@ -80,6 +80,9 @@ elseif(TARGET_ARCH_NAME STREQUAL "riscv64")
set(TOOLCHAIN "riscv64-alpine-linux-musl")
else()
set(TOOLCHAIN "riscv64-linux-gnu")
if(TIZEN)
set(TIZEN_TOOLCHAIN "riscv64-tizen-linux-gnu/13.1.0")
endif()
endif()
elseif(TARGET_ARCH_NAME STREQUAL "s390x")
set(CMAKE_SYSTEM_PROCESSOR s390x)
@ -95,7 +98,7 @@ elseif(TARGET_ARCH_NAME STREQUAL "x64")
elseif(LINUX)
set(TOOLCHAIN "x86_64-linux-gnu")
if(TIZEN)
set(TIZEN_TOOLCHAIN "x86_64-tizen-linux-gnu/9.2.0")
set(TIZEN_TOOLCHAIN "x86_64-tizen-linux-gnu/13.1.0")
endif()
elseif(FREEBSD)
set(triple "x86_64-unknown-freebsd12")
@ -112,7 +115,7 @@ elseif(TARGET_ARCH_NAME STREQUAL "x86")
set(TOOLCHAIN "i686-linux-gnu")
endif()
if(TIZEN)
set(TIZEN_TOOLCHAIN "i586-tizen-linux-gnu/9.2.0")
set(TIZEN_TOOLCHAIN "i586-tizen-linux-gnu/13.1.0")
endif()
else()
message(FATAL_ERROR "Arch is ${TARGET_ARCH_NAME}. Only arm, arm64, armel, armv6, ppc64le, riscv64, s390x, x64 and x86 are supported!")
@ -144,6 +147,10 @@ if(TIZEN)
include_directories(SYSTEM ${CROSS_ROOTFS}/usr/lib64/gcc/${TIZEN_TOOLCHAIN}/include/c++/)
include_directories(SYSTEM ${CROSS_ROOTFS}/usr/lib64/gcc/${TIZEN_TOOLCHAIN}/include/c++/x86_64-tizen-linux-gnu)
endif()
if(TARGET_ARCH_NAME STREQUAL "riscv64")
include_directories(SYSTEM ${CROSS_ROOTFS}/usr/lib64/gcc/${TIZEN_TOOLCHAIN}/include/c++/)
include_directories(SYSTEM ${CROSS_ROOTFS}/usr/lib64/gcc/${TIZEN_TOOLCHAIN}/include/c++/riscv64-tizen-linux-gnu)
endif()
endif()
if(ANDROID)
@ -270,7 +277,7 @@ if(TARGET_ARCH_NAME MATCHES "^(arm|armel)$")
add_toolchain_linker_flag("-L${CROSS_ROOTFS}/usr/lib")
add_toolchain_linker_flag("-L${CROSS_ROOTFS}/usr/lib/gcc/${TIZEN_TOOLCHAIN}")
endif()
elseif(TARGET_ARCH_NAME MATCHES "^(arm64|x64)$")
elseif(TARGET_ARCH_NAME MATCHES "^(arm64|x64|riscv64)$")
if(TIZEN)
add_toolchain_linker_flag("-B${CROSS_ROOTFS}/usr/lib64/gcc/${TIZEN_TOOLCHAIN}")
add_toolchain_linker_flag("-L${CROSS_ROOTFS}/lib64")

View file

@ -7,7 +7,7 @@ try {
. $PSScriptRoot\post-build-utils.ps1
if ($PromoteToChannels -eq "") {
Write-PipelineTaskError -Type 'warning' -Message "This build won't publish assets as it's not configured to any Maestro channel. If that wasn't intended use Darc to configure a default channel using add-default-channel for this branch or to promote it to a channel using add-build-to-channel. See https://github.com/dotnet/arcade/blob/master/Documentation/Darc.md#assigning-an-individual-build-to-a-channel for more info."
Write-PipelineTaskError -Type 'warning' -Message "This build won't publish assets as it's not configured to any Maestro channel. If that wasn't intended use Darc to configure a default channel using add-default-channel for this branch or to promote it to a channel using add-build-to-channel. See https://github.com/dotnet/arcade/blob/main/Documentation/Darc.md#assigning-an-individual-build-to-a-channel for more info."
ExitWithExitCode 0
}

View file

@ -64,7 +64,7 @@ try {
$GlobalJson.tools | Add-Member -Name "vs" -Value (ConvertFrom-Json "{ `"version`": `"16.5`" }") -MemberType NoteProperty
}
if( -not ($GlobalJson.tools.PSObject.Properties.Name -match "xcopy-msbuild" )) {
$GlobalJson.tools | Add-Member -Name "xcopy-msbuild" -Value "17.6.0-2" -MemberType NoteProperty
$GlobalJson.tools | Add-Member -Name "xcopy-msbuild" -Value "17.8.1-2" -MemberType NoteProperty
}
if ($GlobalJson.tools."xcopy-msbuild".Trim() -ine "none") {
$xcopyMSBuildToolsFolder = InitializeXCopyMSBuild $GlobalJson.tools."xcopy-msbuild" -install $true

View file

@ -154,7 +154,7 @@ jobs:
displayName: RichCodeNav Upload
inputs:
languages: ${{ coalesce(parameters.richCodeNavigationLanguage, 'csharp') }}
environment: ${{ coalesce(parameters.richCodeNavigationEnvironment, 'production') }}
environment: ${{ coalesce(parameters.richCodeNavigationEnvironment, 'internal') }}
richNavLogOutputDirectory: $(Build.SourcesDirectory)/artifacts/bin
uploadRichNavArtifacts: ${{ coalesce(parameters.richCodeNavigationUploadArtifacts, false) }}
continueOnError: true

View file

@ -379,13 +379,13 @@ function InitializeVisualStudioMSBuild([bool]$install, [object]$vsRequirements =
}
# Minimum VS version to require.
$vsMinVersionReqdStr = '17.6'
$vsMinVersionReqdStr = '17.7'
$vsMinVersionReqd = [Version]::new($vsMinVersionReqdStr)
# If the version of msbuild is going to be xcopied,
# use this version. Version matches a package here:
# https://dev.azure.com/dnceng/public/_artifacts/feed/dotnet-eng/NuGet/RoslynTools.MSBuild/versions/17.6.0-2
$defaultXCopyMSBuildVersion = '17.6.0-2'
# https://dev.azure.com/dnceng/public/_artifacts/feed/dotnet-eng/NuGet/RoslynTools.MSBuild/versions/17.8.1-2
$defaultXCopyMSBuildVersion = '17.8.1-2'
if (!$vsRequirements) {
if (Get-Member -InputObject $GlobalJson.tools -Name 'vs') {

22
eng/install-scancode.sh Executable file
View file

@ -0,0 +1,22 @@
#!/bin/bash
set -euo pipefail
# https://scancode-toolkit.readthedocs.io/en/latest/getting-started/install.html#installation-as-a-library-via-pip
pyEnvPath="/tmp/scancode-env"
python3 -m venv $pyEnvPath
source $pyEnvPath/bin/activate
pip install scancode-toolkit
deactivate
# Setup a script which executes scancode in the virtual environment
cat > /usr/local/bin/scancode << EOF
#!/bin/bash
set -euo pipefail
source $pyEnvPath/bin/activate
scancode "\$@"
deactivate
EOF
chmod +x /usr/local/bin/scancode

View file

@ -0,0 +1,137 @@
# Pipeline documentation at https://github.com/dotnet/dotnet/blob/main/docs/license-scanning.md
schedules:
- cron: "0 7 * * 1-5"
displayName: Run on weekdays at 7am UTC
branches:
include:
- main
- release/*
pr: none
trigger: none
parameters:
# Provides a way to scan a specific repo. If not provided, all repos of the VMR will be scanned.
- name: specificRepoName
type: string
displayName: "Specific repo name to scan (e.g. runtime, sdk). If empty, scans all repos of the VMR."
default: " " # Set it to an empty string to allow it be an optional parameter
variables:
installerRoot: '$(Build.SourcesDirectory)/src/installer'
jobs:
- job: Setup
pool:
name: NetCore1ESPool-Svc-Internal
demands: ImageOverride -equals 1es-ubuntu-2004
steps:
- script: |
vmrSrcDir="$(Build.SourcesDirectory)/src"
# Builds an Azure DevOps matrix definition. Each entry in the matrix is a path,
# allowing a job to be run for each src repo.
matrix=""
# Trim leading/trailing spaces from the repo name
specificRepoName=$(echo "${{ parameters.specificRepoName }}" | awk '{$1=$1};1')
# If the repo name is provided, only scan that repo.
if [ ! -z "$specificRepoName" ]; then
matrix="\"$specificRepoName\": { \"repoPath\": \"$vmrSrcDir/$specificRepoName\" }"
else
for dir in $vmrSrcDir/*/
do
if [ ! -z "$matrix" ]; then
matrix="$matrix,"
fi
repoName=$(basename $dir)
matrix="$matrix \"$repoName\": { \"repoPath\": \"$dir\" }"
done
fi
matrix="{ $matrix }"
echo "##vso[task.setvariable variable=matrix;isOutput=true]$matrix"
name: GetMatrix
displayName: Get Matrix
- job: LicenseScan
dependsOn: Setup
pool:
name: NetCore1ESPool-Svc-Internal
demands: ImageOverride -equals 1es-ubuntu-2004
timeoutInMinutes: 420
strategy:
matrix: $[ dependencies.Setup.outputs['GetMatrix.matrix'] ]
steps:
- script: $(Build.SourcesDirectory)/prep.sh --no-artifacts --no-bootstrap --no-prebuilts
displayName: 'Install .NET SDK'
- task: PipAuthenticate@1
displayName: 'Pip Authenticate'
inputs:
artifactFeeds: public/dotnet-public-pypi
onlyAddExtraIndex: false
- script: $(installerRoot)/eng/install-scancode.sh
displayName: Install Scancode
- script: >
$(Build.SourcesDirectory)/.dotnet/dotnet test
$(Build.SourcesDirectory)/test/Microsoft.DotNet.SourceBuild.SmokeTests/Microsoft.DotNet.SourceBuild.SmokeTests.csproj
--filter "FullyQualifiedName=Microsoft.DotNet.SourceBuild.SmokeTests.LicenseScanTests.ScanForLicenses"
--logger:'trx;LogFileName=$(Agent.JobName)_LicenseScan.trx'
--logger:'console;verbosity=detailed'
-c Release
-bl:$(Build.SourcesDirectory)/artifacts/log/Debug/BuildTests_$(date +"%m%d%H%M%S").binlog
-flp:LogFile=$(Build.SourcesDirectory)/artifacts/logs/BuildTests_$(date +"%m%d%H%M%S").log
-clp:v=m
-e SMOKE_TESTS_LICENSE_SCAN_PATH=$(repoPath)
-e SMOKE_TESTS_RUNNING_IN_CI=true
-e SMOKE_TESTS_WARN_LICENSE_SCAN_DIFFS=false
-e SMOKE_TESTS_TARGET_RID=linux-x64
-e SMOKE_TESTS_PORTABLE_RID=linux-x64
displayName: Run Tests
workingDirectory: $(Build.SourcesDirectory)
- script: |
set -x
targetFolder=$(Build.StagingDirectory)/BuildLogs/
mkdir -p ${targetFolder}
cd "$(Build.SourcesDirectory)"
find artifacts/ -type f -name "BuildTests*.binlog" -exec cp {} --parents -t ${targetFolder} \;
find artifacts/ -type f -name "BuildTests*.log" -exec cp {} --parents -t ${targetFolder} \;
echo "Updated:"
find test/ -type f -name "Updated*.json"
find test/ -type f -name "Updated*.json" -exec cp {} --parents -t ${targetFolder} \;
echo "Results:"
find test/ -type f -name "scancode-results*.json"
find test/ -type f -name "scancode-results*.json" -exec cp {} --parents -t ${targetFolder} \;
echo "All:"
ls -R test/
echo "BuildLogs:"
ls -R ${targetFolder}
displayName: Prepare BuildLogs staging directory
continueOnError: true
condition: succeededOrFailed()
- publish: '$(Build.StagingDirectory)/BuildLogs'
artifact: $(Agent.JobName)_BuildLogs_Attempt$(System.JobAttempt)
displayName: Publish BuildLogs
continueOnError: true
condition: succeededOrFailed()
- task: PublishTestResults@2
displayName: Publish Test Results
condition: succeededOrFailed()
continueOnError: true
inputs:
testRunner: vSTest
testResultsFiles: '*.trx'
searchFolder: $(Build.SourcesDirectory)/test/Microsoft.DotNet.SourceBuild.SmokeTests/TestResults
mergeTestResults: true
publishRunAttachments: true
testRunTitle: $(Agent.JobName)

View file

@ -4,6 +4,10 @@ pr:
include:
- main
- release/*
exclude:
- release/*.0.2xx
- release/*.0.3xx
- release/*.0.4xx
parameters:
- name: vmrBranch

View file

@ -5,6 +5,10 @@ trigger:
branches:
include:
- internal/release/*
exclude:
- internal/release/*.0.2xx
- internal/release/*.0.3xx
- internal/release/*.0.4xx
resources:
repositories:

View file

@ -1,6 +1,6 @@
{
"tools": {
"dotnet": "8.0.100-rc.1.23463.5",
"dotnet": "9.0.100-alpha.1.23511.2",
"runtimes": {
"dotnet": [
"$(VSRedistCommonNetCoreSharedFrameworkx6490PackageVersion)",
@ -12,7 +12,7 @@
"cmake": "3.21.0"
},
"msbuild-sdks": {
"Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.23463.1",
"Microsoft.DotNet.CMake.Sdk": "8.0.0-beta.23463.1"
"Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.23518.2",
"Microsoft.DotNet.CMake.Sdk": "9.0.0-beta.23518.2"
}
}

View file

@ -8,6 +8,10 @@
<Import Project="Sdk.targets" Sdk="Microsoft.NET.Sdk" />
<PropertyGroup>
<SkipErrorOnPrebuilts>true</SkipErrorOnPrebuilts>
</PropertyGroup>
<Target Name="Build" DependsOnTargets="PrepareOutput;InitBuild">
<Message Text="Build Environment: $(Platform) $(Configuration) $(TargetOS) $(TargetRid)" />

View file

@ -0,0 +1,24 @@
# License Scanning
The VMR is regularly scanned for license references to ensure that only open-source license are used where relevant.
License scanning pipline: https://dev.azure.com/dnceng/internal/_build?definitionId=1301 (internal only)
License scanning test: https://github.com/dotnet/dotnet/blob/main/test/Microsoft.DotNet.SourceBuild.SmokeTests/LicenseScanTests.cs
By default, running the pipeline will scan all repos within the VMR which takes several hours to run.
The pipeline can be triggered manually to target a specific repo within the VMR by setting the `specificRepoName` parameter.
This value should be the name of the repo within the VMR (i.e. a name of a directory within https://github.com/dotnet/dotnet/tree/main/src).
To test source modifications intended to resolve a license issue, apply the change in an internal branch of the VMR.
Run this pipeline, targeting your branch, and set the `specificRepoName` parameter to the name of the repo containing the change.
The output of the pipeline is a set of test results and logs.
The logs are published as an artifact and can be found at test/Microsoft.DotNet/SourceBuild.SmokeTests/bin/Release/netX.0/logs.
It consists of the following:
* `UpdatedLicenses.<repo-name>.json`: This is the output of that gets compared to the stored baseline.
If they're the same, the test passes; if not, it fails. By comparing this file to the baseline, one can determine which new license
references have been introduced.
If everything is deemed to be acceptable, the developer can either update the allowed licenses, update the exclusions file, update the
baseline, or any combination.
* `scancode-results.json`: This is the raw output that comes from scancode. This file is useful for diagnostic purposes because it tells you
the exact line number of where a license has been detected in a file.

View file

@ -32,5 +32,6 @@
-->
<PrivateSourceBuiltArtifactsUrl>https://dotnetcli.azureedge.net/source-built-artifacts/assets/Private.SourceBuilt.Artifacts.8.0.100-rc.1.23455.1.centos.8-x64.tar.gz</PrivateSourceBuiltArtifactsUrl>
<PrivateSourceBuiltSdkUrl_CentOS8Stream>https://dotnetcli.azureedge.net/source-built-artifacts/sdks/dotnet-sdk-8.0.100-rc.1.23455.1-centos.8-x64.tar.gz</PrivateSourceBuiltSdkUrl_CentOS8Stream>
<PrivateSourceBuiltPrebuiltsUrl>https://dotnetcli.azureedge.net/source-built-artifacts/assets/Private.SourceBuilt.Prebuilts.0.1.0-9.0.100-3.centos.8-x64.tar.gz</PrivateSourceBuiltPrebuiltsUrl>
</PropertyGroup>
</Project>

View file

@ -7,6 +7,13 @@ trigger:
- main
- release/*
- internal/release/*
exclude:
- release/*.0.2xx
- release/*.0.3xx
- release/*.0.4xx
- internal/release/*.0.2xx
- internal/release/*.0.3xx
- internal/release/*.0.4xx
pr:
branches:

View file

@ -1,6 +1,6 @@
{
"tools": {
"dotnet": "8.0.100-rc.1.23455.8"
"dotnet": "9.0.100-alpha.1.23511.2"
},
"msbuild-sdks": {
"Microsoft.Build.CentralPackageVersions": "2.0.1",

View file

@ -157,6 +157,9 @@ function BootstrapArtifacts {
if [ "$installDotnet" == true ]; then
echo " Installing dotnet..."
(source ./eng/common/tools.sh && InitializeDotNetCli true)
# TODO: Remove once runtime dependency is gone (https://github.com/dotnet/runtime/issues/93666)
bash .dotnet/dotnet-install.sh --install-dir "$SCRIPT_ROOT/.dotnet" --channel 8.0 --runtime dotnet
fi
# Read the eng/Versions.props to get the archives to download and download them

View file

@ -16,7 +16,7 @@ using Xunit.Abstractions;
namespace Microsoft.DotNet.SourceBuild.SmokeTests;
[Trait("Category", "SdkContent")]
public class ArtifactsSizeTest : SmokeTests
public class ArtifactsSizeTest : SdkTests
{
private const int SizeThresholdPercentage = 25;
private static readonly string BaselineFilePath = BaselineHelper.GetBaselineFilePath($"ArtifactsSizes/{Config.TargetRid}.txt");
@ -41,7 +41,8 @@ public class ArtifactsSizeTest : SmokeTests
}
[SkippableFact(Config.IncludeArtifactsSizeEnv, skipOnFalseEnv: true)]
// https://github.com/dotnet/source-build/issues/3668
//[SkippableFact(Config.IncludeArtifactsSizeEnv, skipOnFalseEnv: true)]
public void CompareArtifactsToBaseline()
{
Utilities.ValidateNotNullOrWhiteSpace(Config.SourceBuiltArtifactsPath, Config.SourceBuiltArtifactsPathEnv);
@ -64,7 +65,7 @@ public class ArtifactsSizeTest : SmokeTests
try
{
string actualFilePath = Path.Combine(DotNetHelper.LogsDirectory, $"UpdatedArtifactsSizes_{Config.TargetRid}.txt");
string actualFilePath = Path.Combine(LogsDirectory, $"UpdatedArtifactsSizes_{Config.TargetRid}.txt");
File.WriteAllLines(actualFilePath, tarEntries.Select(entry => $"{entry.FilePath}: {entry.Bytes}"));
}
catch (IOException ex)

View file

@ -41,12 +41,12 @@ namespace Microsoft.DotNet.SourceBuild.SmokeTests
Assert.Null(message);
}
public static void CompareBaselineContents(string baselineFileName, string actualContents, ITestOutputHelper outputHelper, bool warnOnDiffs = false)
public static void CompareBaselineContents(string baselineFileName, string actualContents, ITestOutputHelper outputHelper, bool warnOnDiffs = false, string baselineSubDir = "")
{
string actualFilePath = Path.Combine(DotNetHelper.LogsDirectory, $"Updated{baselineFileName}");
string actualFilePath = Path.Combine(TestBase.LogsDirectory, $"Updated{baselineFileName}");
File.WriteAllText(actualFilePath, actualContents);
CompareFiles(GetBaselineFilePath(baselineFileName), actualFilePath, outputHelper, warnOnDiffs);
CompareFiles(GetBaselineFilePath(baselineFileName, baselineSubDir), actualFilePath, outputHelper, warnOnDiffs);
}
public static void CompareFiles(string expectedFilePath, string actualFilePath, ITestOutputHelper outputHelper, bool warnOnDiffs = false)
@ -87,7 +87,8 @@ namespace Microsoft.DotNet.SourceBuild.SmokeTests
public static string GetAssetsDirectory() => Path.Combine(Directory.GetCurrentDirectory(), "assets");
public static string GetBaselineFilePath(string baselineFileName) => Path.Combine(GetAssetsDirectory(), "baselines", baselineFileName);
public static string GetBaselineFilePath(string baselineFileName, string baselineSubDir = "") =>
Path.Combine(GetAssetsDirectory(), "baselines", baselineSubDir, baselineFileName);
public static string RemoveRids(string diff, bool isPortable = false) =>
isPortable ? diff.Replace(Config.PortableRid, "portable-rid") : diff.Replace(Config.TargetRid, "banana-rid");

View file

@ -15,12 +15,13 @@ namespace Microsoft.DotNet.SourceBuild.SmokeTests;
/// <see cref="WebScenarioTests"/> for related web scenarios.
/// They are encapsulated in a separate testclass so that they can be run in parallel.
/// </summary>
public class BasicScenarioTests : SmokeTests
public class BasicScenarioTests : SdkTests
{
public BasicScenarioTests(ITestOutputHelper outputHelper) : base(outputHelper) { }
[Theory]
[MemberData(nameof(GetScenarioObjects))]
// https://github.com/dotnet/source-build/issues/3668
// [Theory]
// [MemberData(nameof(GetScenarioObjects))]
public void VerifyScenario(TestScenario scenario) => scenario.Execute(DotNetHelper);
public static IEnumerable<object[]> GetScenarioObjects() => GetScenarios().Select(scenario => new object[] { scenario });

View file

@ -21,7 +21,9 @@ internal static class Config
public const string SourceBuiltArtifactsPathEnv = "SMOKE_TESTS_SOURCEBUILT_ARTIFACTS_PATH";
public const string TargetRidEnv = "SMOKE_TESTS_TARGET_RID";
public const string WarnSdkContentDiffsEnv = "SMOKE_TESTS_WARN_SDK_CONTENT_DIFFS";
public const string WarnLicenseScanDiffsEnv = "SMOKE_TESTS_WARN_LICENSE_SCAN_DIFFS";
public const string RunningInCIEnv = "SMOKE_TESTS_RUNNING_IN_CI";
public const string LicenseScanPathEnv = "SMOKE_TESTS_LICENSE_SCAN_PATH";
public static string DotNetDirectory { get; } =
Environment.GetEnvironmentVariable(DotNetDirectoryEnv) ?? Path.Combine(Directory.GetCurrentDirectory(), ".dotnet");
@ -32,15 +34,18 @@ internal static class Config
public static string? PrereqsPath { get; } = Environment.GetEnvironmentVariable(PrereqsPathEnv);
public static string? CustomPackagesPath { get; } = Environment.GetEnvironmentVariable(CustomPackagesPathEnv);
public static string? SdkTarballPath { get; } = Environment.GetEnvironmentVariable(SdkTarballPathEnv);
public static string SourceBuiltArtifactsPath { get; } = Environment.GetEnvironmentVariable(SourceBuiltArtifactsPathEnv) ??
throw new InvalidOperationException($"'{Config.SourceBuiltArtifactsPathEnv}' must be specified");
public static string? SourceBuiltArtifactsPath { get; } = Environment.GetEnvironmentVariable(SourceBuiltArtifactsPathEnv);
public static string TargetRid { get; } = Environment.GetEnvironmentVariable(TargetRidEnv) ??
throw new InvalidOperationException($"'{Config.TargetRidEnv}' must be specified");
public static string TargetArchitecture { get; } = TargetRid.Split('-')[1];
public static bool WarnOnSdkContentDiffs { get; } =
bool.TryParse(Environment.GetEnvironmentVariable(WarnSdkContentDiffsEnv), out bool warnOnSdkContentDiffs) && warnOnSdkContentDiffs;
public static bool WarnOnLicenseScanDiffs { get; } =
bool.TryParse(Environment.GetEnvironmentVariable(WarnLicenseScanDiffsEnv), out bool warnOnLicenseScanDiffs) && warnOnLicenseScanDiffs;
// Indicates whether the tests are being run in the context of a CI pipeline
public static bool RunningInCI { get; } =
bool.TryParse(Environment.GetEnvironmentVariable(RunningInCIEnv), out bool runningInCI) && runningInCI;
public static string? LicenseScanPath { get; } = Environment.GetEnvironmentVariable(LicenseScanPathEnv);
}

View file

@ -12,7 +12,7 @@ using Xunit.Abstractions;
namespace Microsoft.DotNet.SourceBuild.SmokeTests;
public class DebugTests : SmokeTests
public class DebugTests : SdkTests
{
private record ScanResult(string FileName, bool HasDebugInfo, bool HasDebugAbbrevs, bool HasFileSymbols, bool HasGnuDebugLink);
@ -21,7 +21,8 @@ public class DebugTests : SmokeTests
/// <Summary>
/// Verifies that all generated native files include native debug symbols.
/// </Summary>
[Fact]
// https://github.com/dotnet/source-build/issues/3668
//[Fact]
public void SourceBuiltSdkContainsNativeDebugSymbols()
{

View file

@ -8,7 +8,7 @@ using Xunit.Abstractions;
namespace Microsoft.DotNet.SourceBuild.SmokeTests;
public class DotNetFormatTests : SmokeTests
public class DotNetFormatTests : SdkTests
{
private const string TestFileName = "FormatTest.cs";
private const string UnformattedFileName = "FormatTestUnformatted.cs";

View file

@ -3,14 +3,12 @@
// See the LICENSE file in the project root for more information.
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Net.Sockets;
using System.Threading.Tasks;
using Xunit;
using Xunit.Abstractions;
@ -21,7 +19,6 @@ internal class DotNetHelper
private static readonly object s_lockObj = new();
public static string DotNetPath { get; } = Path.Combine(Config.DotNetDirectory, "dotnet");
public static string LogsDirectory { get; } = Path.Combine(Directory.GetCurrentDirectory(), "logs");
public static string PackagesDirectory { get; } = Path.Combine(Directory.GetCurrentDirectory(), "packages");
public static string ProjectsDirectory { get; } = Path.Combine(Directory.GetCurrentDirectory(), $"projects-{DateTime.Now:yyyyMMddHHmmssffff}");
@ -56,11 +53,6 @@ internal class DotNetHelper
{
Directory.CreateDirectory(PackagesDirectory);
}
if (!Directory.Exists(LogsDirectory))
{
Directory.CreateDirectory(LogsDirectory);
}
}
}
@ -261,7 +253,7 @@ internal class DotNetHelper
fileName += $"-{differentiator}";
}
return $"/bl:{Path.Combine(LogsDirectory, $"{fileName}.binlog")}";
return $"/bl:{Path.Combine(TestBase.LogsDirectory, $"{fileName}.binlog")}";
}
private static bool DetermineIsMonoRuntime(string dotnetRoot)

View file

@ -9,11 +9,12 @@ using Xunit.Abstractions;
namespace Microsoft.DotNet.SourceBuild.SmokeTests;
public class DotNetWatchTests : SmokeTests
public class DotNetWatchTests : SdkTests
{
public DotNetWatchTests(ITestOutputHelper outputHelper) : base(outputHelper) { }
[Fact]
// https://github.com/dotnet/source-build/issues/3668
//[Fact]
public void WatchTests()
{
string projectDirectory = DotNetHelper.ExecuteNew(DotNetTemplate.Console.GetName(), nameof(DotNetWatchTests));

View file

@ -0,0 +1,292 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text.Json;
using System.Text.Json.Serialization;
using System.Text.RegularExpressions;
using Xunit;
using Xunit.Abstractions;
namespace Microsoft.DotNet.SourceBuild.SmokeTests;
/// <summary>
/// Scans the VMR for licenses and compares them to a baseline. This ensures that only open-source licenses are used for relevant files.
/// </summary>
/// <remarks>
/// Each sub-repo of the VMR is scanned separately because of the amount of time it takes.
/// When scanning is run, the test provides a list of files for the scanner to ignore. These include binary file types. It also includes
/// .il/.ildump file types which are massive, causing the scanner to choke and don't include license references anyway.
/// Once the scanner returns the results, a filtering process occurs. First, any detected license that is in the allowed list of licenses
/// is filtered out. The test defines a list of such licenses that all represent open-source licenses. Next, a license exclusions file is
/// applied to the filtering. This file contains a set of paths for which certain detected licenses are to be ignored. Such a path can be
/// defined to ignore all detected licenses or specific ones. These exclusions are useful for ignoring false positives where the scanning
/// tool has detected something in the file that makes it think it's a license reference when that's not actually the intent. Other cases
/// that are excluded are when the license is meant as configuration or test data and not actually applying to the code. These exclusions
/// further filter down the set of the detected licenses for each file. Everything that's left at this point is reported. It gets compared
/// to a baseline file (which is defined for each sub-repo). If the filtered results differ from what's defined in the baseline, the test fails.
///
/// Rules for determining how to resolve a detected license:
/// 1. If it's an allowed open-source license, add it to the list of allowed licenses in LicenseScanTests.cs.
/// 2. If the file shouldn't be scanned as a general rule because of its file type (e.g. image file), add it to the list of excluded file types in LicenseScanTests.cs.
/// 3. Add it to LicenseExclusions.txt if the referenced license is one of the following:
/// a. Not applicable (e.g. test data)
/// b. False positive
/// 4. If the license is not allowed for open-souce, the license needs to be fixed. Everything else should go in the baseline file.
/// </remarks>
public class LicenseScanTests : TestBase
{
private const string BaselineSubDir = "licenses";
private static readonly string[] s_allowedLicenseExpressions = new string[]
{
"apache-1.1", // https://opensource.org/license/apache-1-1/
"apache-2.0", // https://opensource.org/license/apache-2-0/
"apache-2.0 WITH apple-runtime-library-exception", // https://github.com/nexB/scancode-toolkit/blob/develop/src/licensedcode/data/licenses/apple-runtime-library-exception.LICENSE
"apache-2.0 WITH llvm-exception", // https://foundation.llvm.org/relicensing/LICENSE.txt
"apsl-2.0", // https://opensource.org/license/apsl-2-0-php/
"boost-1.0", // https://opensource.org/license/bsl-1-0/
"bsd-new", // https://opensource.org/license/BSD-3-clause/
"bsd-original", // https://github.com/nexB/scancode-toolkit/blob/develop/src/licensedcode/data/licenses/bsd-original.LICENSE
"bsd-original-uc", // https://github.com/nexB/scancode-toolkit/blob/develop/src/licensedcode/data/licenses/bsd-original-uc.LICENSE
"bsd-simplified", // https://opensource.org/license/bsd-2-clause/
"bytemark", // https://github.com/nexB/scancode-toolkit/blob/develop/src/licensedcode/data/licenses/bytemark.LICENSE
"bzip2-libbzip-2010", // https://github.com/nexB/scancode-toolkit/blob/develop/src/licensedcode/data/licenses/bzip2-libbzip-2010.LICENSE
"cc0-1.0", // https://creativecommons.org/publicdomain/zero/1.0/legalcode
"cc-by-3.0", // https://creativecommons.org/licenses/by/3.0/legalcode
"cc-by-sa-3.0", // https://creativecommons.org/licenses/by-sa/3.0/legalcode
"cc-by-sa-4.0", // https://creativecommons.org/licenses/by-sa/4.0/legalcode
"cc-pd", // https://creativecommons.org/publicdomain/mark/1.0/
"epl-1.0", // https://opensource.org/license/epl-1-0/
"generic-cla", // https://github.com/nexB/scancode-toolkit/blob/develop/src/licensedcode/data/licenses/generic-cla.LICENSE
"gpl-1.0-plus", // https://opensource.org/license/gpl-1-0/
"gpl-2.0", // https://opensource.org/license/gpl-2-0/
"ietf", // https://github.com/nexB/scancode-toolkit/blob/develop/src/licensedcode/data/licenses/ietf.LICENSE
"gpl-2.0-plus WITH autoconf-simple-exception-2.0", // https://github.com/nexB/scancode-toolkit/blob/develop/src/licensedcode/data/rules/gpl-2.0-plus_with_autoconf-simple-exception-2.0_8.RULE
"gpl-2.0 WITH gcc-linking-exception-2.0", // https://github.com/nexB/scancode-toolkit/blob/develop/src/licensedcode/data/rules/gpl-2.0_with_gcc-linking-exception-2.0_6.RULE
"isc", // https://opensource.org/license/isc-license-txt/
"iso-8879", // https://github.com/nexB/scancode-toolkit/blob/develop/src/licensedcode/data/licenses/iso-8879.LICENSE
"lgpl-2.0-plus", // https://opensource.org/license/lgpl-2-0/
"lgpl-2.1", // https://opensource.org/license/lgpl-2-1/
"lgpl-2.1-plus", // https://opensource.org/license/lgpl-2-1/
"mit", // https://opensource.org/license/mit/
"mit-addition", // https://github.com/nexB/scancode-toolkit/blob/develop/src/licensedcode/data/licenses/mit-addition.LICENSE
"ms-patent-promise", // https://github.com/nexB/scancode-toolkit/blob/develop/src/licensedcode/data/licenses/ms-patent-promise.LICENSE
"ms-lpl", // https://github.com/nexB/scancode-toolkit/blob/develop/src/licensedcode/data/licenses/ms-lpl.LICENSE
"ms-pl", // https://opensource.org/license/ms-pl-html/
"ms-rl", // https://opensource.org/license/ms-rl-html/
"newton-king-cla", // https://github.com/nexB/scancode-toolkit/blob/develop/src/licensedcode/data/licenses/newton-king-cla.LICENSE
"ngpl", // https://opensource.org/license/nethack-php/
"object-form-exception-to-mit", // https://github.com/nexB/scancode-toolkit/blob/develop/src/licensedcode/data/licenses/object-form-exception-to-mit.LICENSE
"ofl-1.1", // https://opensource.org/license/ofl-1-1/
"osf-1990", // https://fedoraproject.org/wiki/Licensing:MIT?rd=Licensing/MIT#HP_Variant
"public-domain", // https://github.com/nexB/scancode-toolkit/blob/develop/src/licensedcode/data/licenses/public-domain.LICENSE
"public-domain-disclaimer", // https://github.com/nexB/scancode-toolkit/blob/develop/src/licensedcode/data/licenses/public-domain-disclaimer.LICENSE
"python", // https://opensource.org/license/python-2-0/
"rpl-1.5", // https://opensource.org/license/rpl-1-5/
"sax-pd", // https://github.com/nexB/scancode-toolkit/blob/develop/src/licensedcode/data/licenses/sax-pd.LICENSE
"unicode", // https://opensource.org/license/unicode-inc-license-agreement-data-files-and-software/
"unicode-mappings", // https://github.com/nexB/scancode-toolkit/blob/develop/src/licensedcode/data/licenses/unicode-mappings.LICENSE
"uoi-ncsa", // https://opensource.org/license/uoi-ncsa-php/
"w3c-software-19980720", // https://opensource.org/license/w3c/
"w3c-software-doc-20150513", // https://opensource.org/license/w3c/
"warranty-disclaimer", // https://github.com/nexB/scancode-toolkit/blob/develop/src/licensedcode/data/licenses/warranty-disclaimer.LICENSE
"x11", // https://github.com/nexB/scancode-toolkit/blob/develop/src/licensedcode/data/licenses/x11.LICENSE
"zlib" // https://opensource.org/license/zlib/
};
private static readonly string[] s_ignoredFilePatterns = new string[]
{
"*.bin",
"*.bmp",
"*.bson",
"*.db",
"*.dic",
"*.eot",
"*.gif",
"*.ico",
"*.jpg",
"*.il",
"*.ildump",
"*.lss",
"*.nlp",
"*.otf",
"*.pdf",
"*.pfx",
"*.png",
"*.snk",
"*.ttf",
"*.vsd",
"*.vsdx",
"*.winmd",
"*.woff",
"*.woff2",
"*.xlsx",
};
private readonly string _targetRepo;
public LicenseScanTests(ITestOutputHelper outputHelper) : base(outputHelper)
{
Assert.NotNull(Config.LicenseScanPath);
_targetRepo = new DirectoryInfo(Config.LicenseScanPath).Name;
}
// https://github.com/dotnet/source-build/issues/3668
//[SkippableFact(Config.LicenseScanPathEnv, skipOnNullOrWhiteSpaceEnv: true)]
public void ScanForLicenses()
{
Assert.NotNull(Config.LicenseScanPath);
string OriginalScancodeResultsPath = Path.Combine(LogsDirectory, "scancode-results-original.json");
string FilteredScancodeResultsPath = Path.Combine(LogsDirectory, "scancode-results-filtered.json");
// Scancode Doc: https://scancode-toolkit.readthedocs.io/en/latest/index.html
string ignoreOptions = string.Join(" ", s_ignoredFilePatterns.Select(pattern => $"--ignore {pattern}"));
ExecuteHelper.ExecuteProcessValidateExitCode(
"scancode",
$"--license --strip-root --only-findings {ignoreOptions} --json-pp {OriginalScancodeResultsPath} {Config.LicenseScanPath}",
OutputHelper);
JsonDocument doc = JsonDocument.Parse(File.ReadAllText(OriginalScancodeResultsPath));
ScancodeResults? scancodeResults = doc.Deserialize<ScancodeResults>();
Assert.NotNull(scancodeResults);
FilterFiles(scancodeResults);
JsonSerializerOptions options = new()
{
WriteIndented = true
};
string json = JsonSerializer.Serialize(scancodeResults, options);
File.WriteAllText(FilteredScancodeResultsPath, json);
string baselineName = $"Licenses.{_targetRepo}.json";
string baselinePath = BaselineHelper.GetBaselineFilePath(baselineName, BaselineSubDir);
if (!File.Exists(baselinePath))
{
Assert.Fail($"No license baseline file exists for repo '{_targetRepo}'. Expected file: {baselinePath}");
}
BaselineHelper.CompareBaselineContents(baselineName, json, OutputHelper, Config.WarnOnLicenseScanDiffs, BaselineSubDir);
}
private LicenseExclusion ParseLicenseExclusion(string rawExclusion)
{
string[] parts = rawExclusion.Split('|', StringSplitOptions.RemoveEmptyEntries);
Match repoNameMatch = Regex.Match(parts[0], @"(?<=src/)[^/]+");
Assert.True(repoNameMatch.Success);
// The path in the exclusion file is rooted from the VMR. But the path in the scancode results is rooted from the
// target repo within the VMR. So we need to strip off the beginning part of the path.
Match restOfPathMatch = Regex.Match(parts[0], @"(?<=src/[^/]+/).*");
string path = restOfPathMatch.Value;
if (parts.Length == 0 || parts.Length > 2)
{
throw new Exception($"Invalid license exclusion: '{rawExclusion}'");
}
if (parts.Length > 1)
{
string[] licenseExpressions = parts[1].Split(',', StringSplitOptions.RemoveEmptyEntries);
return new LicenseExclusion(repoNameMatch.Value, path, licenseExpressions);
}
else
{
return new LicenseExclusion(repoNameMatch.Value, path, Enumerable.Empty<string>());
}
}
private void FilterFiles(ScancodeResults scancodeResults)
{
IEnumerable<string> rawExclusions = Utilities.ParseExclusionsFile("LicenseExclusions.txt");
IEnumerable<LicenseExclusion> exclusions = rawExclusions
.Select(exclusion => ParseLicenseExclusion(exclusion))
.Where(exclusion => exclusion.Repo == _targetRepo)
.ToList();
// This will filter out files that we don't want to include in the baseline.
// Filtering can happen in two ways:
// 1. There are a set of allowed license expressions that apply to all files. If a file has a match on one of those licenses,
// that license will not be considered.
// 2. The LicenseExclusions.txt file contains a list of files and the licenses that should be excluded from those files.
// Once the license expression filtering has been applied, if a file has any licenses left, it will be included in the baseline.
// In that case, the baseline will list all of the licenses for that file, even if some were originally excluded during this processing.
// In other words, the baseline will be fully representative of the licenses that apply to the files that are listed there.
for (int i = scancodeResults.Files.Count - 1; i >= 0; i--)
{
ScancodeFileResult file = scancodeResults.Files[i];
// A license expression can be a logical expression, e.g. "(MIT OR Apache-2.0)"
// For our purposes, we just care about the license involved, not the semantics of the expression.
// Parse out all the expression syntax to just get the license names.
string[] licenses = file.LicenseExpression?
.Replace("(", string.Empty)
.Replace(")", string.Empty)
.Replace(" AND ", ",")
.Replace(" OR ", ",")
.Split(",", StringSplitOptions.RemoveEmptyEntries)
.Select(license => license.Trim())
.ToArray()
?? Array.Empty<string>();
// First check whether the file's licenses can all be matched with allowed expressions
IEnumerable<string> disallowedLicenses = licenses
.Where(license => !s_allowedLicenseExpressions.Contains(license, StringComparer.OrdinalIgnoreCase));
if (!disallowedLicenses.Any())
{
scancodeResults.Files.Remove(file);
}
else
{
// There are some licenses that are not allowed. Now check whether the file is excluded.
IEnumerable<LicenseExclusion> matchingExclusions =
Utilities.GetMatchingFileExclusions(file.Path, exclusions, exclusion => exclusion.Path);
IEnumerable<string> excludedLicenses = matchingExclusions.SelectMany(exclusion => exclusion.LicenseExpressions);
// If no licenses are explicitly specified, it means they're all excluded.
if (matchingExclusions.Any() && !excludedLicenses.Any())
{
scancodeResults.Files.Remove(file);
}
else
{
IEnumerable<string> remainingLicenses = disallowedLicenses.Except(excludedLicenses);
if (!remainingLicenses.Any())
{
scancodeResults.Files.Remove(file);
}
}
}
}
}
private record LicenseExclusion(string Repo, string Path, IEnumerable<string> LicenseExpressions);
private class ScancodeResults
{
[JsonPropertyName("files")]
public List<ScancodeFileResult> Files { get; set; } = new();
}
private class ScancodeFileResult
{
[JsonPropertyName("path")]
public string Path { get; set; } = string.Empty;
[JsonPropertyName("detected_license_expression")]
public string? LicenseExpression { get; set; }
}
}

View file

@ -11,8 +11,8 @@
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.FileSystemGlobbing" Version="7.0.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.5.0" />
<PackageReference Include="xunit" Version="2.4.2" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.5">
<PackageReference Include="xunit" Version="2.5.1" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.5.1">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>

View file

@ -16,27 +16,28 @@ namespace Microsoft.DotNet.SourceBuild.SmokeTests;
/// <summary>
/// OmniSharp tests to ensure it works with a source-built sdk.
/// </summary>
public class OmniSharpTests : SmokeTests
public class OmniSharpTests : SdkTests
{
// Update version as new releases become available: https://github.com/OmniSharp/omnisharp-roslyn/releases
private const string OmniSharpReleaseVersion = "1.39.8";
private const string OmniSharpReleaseVersion = "1.39.10";
private string OmniSharpDirectory { get; } = Path.Combine(Directory.GetCurrentDirectory(), nameof(OmniSharpTests));
public OmniSharpTests(ITestOutputHelper outputHelper) : base(outputHelper) { }
[SkippableTheory(Config.ExcludeOmniSharpEnv, skipOnTrueEnv: true, skipArchitectures: new[] { "ppc64le", "s390x" })]
[InlineData(DotNetTemplate.BlazorWasm)]
[InlineData(DotNetTemplate.ClassLib)]
[InlineData(DotNetTemplate.Console)]
[InlineData(DotNetTemplate.MSTest)]
[InlineData(DotNetTemplate.Mvc)]
[InlineData(DotNetTemplate.NUnit)]
[InlineData(DotNetTemplate.Web)]
[InlineData(DotNetTemplate.WebApp)]
[InlineData(DotNetTemplate.WebApi)]
[InlineData(DotNetTemplate.Worker)]
[InlineData(DotNetTemplate.XUnit)]
// https://github.com/dotnet/source-build/issues/3668
// [SkippableTheory(Config.ExcludeOmniSharpEnv, skipOnTrueEnv: true, skipArchitectures: new[] { "ppc64le", "s390x" })]
// [InlineData(DotNetTemplate.BlazorWasm)]
// [InlineData(DotNetTemplate.ClassLib)]
// [InlineData(DotNetTemplate.Console)]
// [InlineData(DotNetTemplate.MSTest)]
// [InlineData(DotNetTemplate.Mvc)]
// [InlineData(DotNetTemplate.NUnit)]
// [InlineData(DotNetTemplate.Web)]
// [InlineData(DotNetTemplate.WebApp)]
// [InlineData(DotNetTemplate.WebApi)]
// [InlineData(DotNetTemplate.Worker)]
// [InlineData(DotNetTemplate.XUnit)]
public async void VerifyScenario(DotNetTemplate template)
{
await InitializeOmniSharp();

View file

@ -9,11 +9,12 @@ using Xunit.Abstractions;
namespace Microsoft.DotNet.SourceBuild.SmokeTests
{
public class PoisonTests : SmokeTests
public class PoisonTests : SdkTests
{
public PoisonTests(ITestOutputHelper outputHelper) : base(outputHelper) { }
[SkippableFact(Config.PoisonReportPathEnv, skipOnNullOrWhiteSpaceEnv: true)]
// https://github.com/dotnet/source-build/issues/3668
// [SkippableFact(Config.PoisonReportPathEnv, skipOnNullOrWhiteSpaceEnv: true)]
public void VerifyUsage()
{
if (!File.Exists(Config.PoisonReportPath))

View file

@ -17,7 +17,7 @@ using Xunit.Abstractions;
namespace Microsoft.DotNet.SourceBuild.SmokeTests;
[Trait("Category", "SdkContent")]
public class SdkContentTests : SmokeTests
public class SdkContentTests : SdkTests
{
private const string MsftSdkType = "msft";
private const string SourceBuildSdkType = "sb";
@ -31,7 +31,8 @@ public class SdkContentTests : SmokeTests
/// This makes the baseline durable between releases. This does mean however, entries
/// in the baseline may appear identical if the diff is version specific.
/// </Summary>
[SkippableFact(new[] { Config.MsftSdkTarballPathEnv, Config.SdkTarballPathEnv }, skipOnNullOrWhiteSpaceEnv: true)]
// https://github.com/dotnet/source-build/issues/3668
//[SkippableFact(new[] { Config.MsftSdkTarballPathEnv, Config.SdkTarballPathEnv }, skipOnNullOrWhiteSpaceEnv: true)]
public void CompareMsftToSbFileList()
{
const string msftFileListingFileName = "msftSdkFiles.txt";
@ -44,7 +45,8 @@ public class SdkContentTests : SmokeTests
BaselineHelper.CompareBaselineContents("MsftToSbSdkFiles.diff", diff, OutputHelper, Config.WarnOnSdkContentDiffs);
}
[SkippableFact(new[] { Config.MsftSdkTarballPathEnv, Config.SdkTarballPathEnv }, skipOnNullOrWhiteSpaceEnv: true)]
// https://github.com/dotnet/source-build/issues/3668
//[SkippableFact(new[] { Config.MsftSdkTarballPathEnv, Config.SdkTarballPathEnv }, skipOnNullOrWhiteSpaceEnv: true)]
public void CompareMsftToSbAssemblyVersions()
{
Assert.NotNull(Config.MsftSdkTarballPath);
@ -98,7 +100,7 @@ public class SdkContentTests : SmokeTests
if (sbVersion is not null &&
msftVersion is not null &&
sbVersion >= msftVersion &&
IsFileExcluded(assemblyPath, assemblyVersionDiffFilters))
Utilities.IsFileExcluded(assemblyPath, assemblyVersionDiffFilters))
{
sbSdkAssemblyVersions.Remove(assemblyPath);
msftSdkAssemblyVersions.Remove(assemblyPath);
@ -182,7 +184,7 @@ public class SdkContentTests : SmokeTests
string relativePath = Path.GetRelativePath(sbSdkPath, file);
string normalizedPath = BaselineHelper.RemoveVersions(relativePath);
if (!IsFileExcluded(normalizedPath, exclusionFilters))
if (!Utilities.IsFileExcluded(normalizedPath, exclusionFilters))
{
sbSdkAssemblyVersions.Add(normalizedPath, GetVersion(assemblyName));
}
@ -208,32 +210,13 @@ public class SdkContentTests : SmokeTests
}
private static IEnumerable<string> RemoveExclusions(IEnumerable<string> files, IEnumerable<string> exclusions) =>
files.Where(item => !IsFileExcluded(item, exclusions));
private static bool IsFileExcluded(string filePath, IEnumerable<string> exclusions) =>
exclusions.Any(p => FileSystemName.MatchesSimpleExpression(p, filePath));
files.Where(item => !Utilities.IsFileExcluded(item, exclusions));
private static IEnumerable<string> GetSdkDiffExclusionFilters(string sdkType) =>
ParseExclusionsFile("SdkFileDiffExclusions.txt", sdkType);
Utilities.ParseExclusionsFile("SdkFileDiffExclusions.txt", sdkType);
private static IEnumerable<string> GetSdkAssemblyVersionDiffExclusionFilters() =>
ParseExclusionsFile("SdkAssemblyVersionDiffExclusions.txt");
private static IEnumerable<string> ParseExclusionsFile(string exclusionsFileName, string? prefix = null)
{
string exclusionsFilePath = Path.Combine(BaselineHelper.GetAssetsDirectory(), exclusionsFileName);
int prefixSkip = prefix?.Length + 1 ?? 0;
return File.ReadAllLines(exclusionsFilePath)
// process only specific sdk exclusions if a prefix is provided
.Where(line => prefix is null || line.StartsWith(prefix + ","))
.Select(line =>
{
// Ignore comments
var index = line.IndexOf('#');
return index >= 0 ? line[prefixSkip..index].TrimEnd() : line[prefixSkip..];
})
.ToList();
}
Utilities.ParseExclusionsFile("SdkAssemblyVersionDiffExclusions.txt");
private static string RemoveDiffMarkers(string source)
{

View file

@ -7,16 +7,14 @@ using Xunit.Abstractions;
namespace Microsoft.DotNet.SourceBuild.SmokeTests;
/// <summary>
/// Shared base class for all smoke tests.
/// Shared base class for all SDK-based smoke tests.
/// </summary>
public abstract class SmokeTests
public abstract class SdkTests : TestBase
{
internal DotNetHelper DotNetHelper { get; }
internal ITestOutputHelper OutputHelper { get; }
protected SmokeTests(ITestOutputHelper outputHelper)
protected SdkTests(ITestOutputHelper outputHelper) : base(outputHelper)
{
DotNetHelper = new DotNetHelper(outputHelper);
OutputHelper = outputHelper;
}
}

View file

@ -13,13 +13,14 @@ using Xunit.Abstractions;
namespace Microsoft.DotNet.SourceBuild.SmokeTests;
public class SourceBuiltArtifactsTests : SmokeTests
public class SourceBuiltArtifactsTests : SdkTests
{
public SourceBuiltArtifactsTests(ITestOutputHelper outputHelper) : base(outputHelper) { }
[Fact]
[SkippableFact(Config.SourceBuiltArtifactsPathEnv, skipOnNullOrWhiteSpaceEnv: true)]
public void VerifyVersionFile()
{
Assert.NotNull(Config.SourceBuiltArtifactsPath);
string outputDir = Path.Combine(Directory.GetCurrentDirectory(), "sourcebuilt-artifacts");
Directory.CreateDirectory(outputDir);
try

View file

@ -0,0 +1,25 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
using System.IO;
using Xunit.Abstractions;
namespace Microsoft.DotNet.SourceBuild.SmokeTests;
public abstract class TestBase
{
public static string LogsDirectory { get; } = Path.Combine(Directory.GetCurrentDirectory(), "logs");
public ITestOutputHelper OutputHelper { get; }
public TestBase(ITestOutputHelper outputHelper)
{
OutputHelper = outputHelper;
if (!Directory.Exists(LogsDirectory))
{
Directory.CreateDirectory(LogsDirectory);
}
}
}

View file

@ -8,6 +8,7 @@ using System.Collections.Generic;
using System.Formats.Tar;
using System.IO;
using System.IO.Compression;
using System.IO.Enumeration;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
@ -18,6 +19,37 @@ namespace Microsoft.DotNet.SourceBuild.SmokeTests;
public static class Utilities
{
/// <summary>
/// Returns whether the given file path is excluded by the given exclusions using glob file matching.
/// </summary>
public static bool IsFileExcluded(string filePath, IEnumerable<string> exclusions) =>
GetMatchingFileExclusions(filePath, exclusions, exclusion => exclusion).Any();
public static IEnumerable<T> GetMatchingFileExclusions<T>(string filePath, IEnumerable<T> exclusions, Func<T, string> getExclusionExpression) =>
exclusions.Where(exclusion => FileSystemName.MatchesSimpleExpression(getExclusionExpression(exclusion), filePath));
/// <summary>
/// Parses a common file format in the test suite for listing file exclusions.
/// </summary>
/// <param name="exclusionsFileName">Name of the exclusions file.</param>
/// <param name="prefix">When specified, filters the exclusions to those that begin with the prefix value.</param>
public static IEnumerable<string> ParseExclusionsFile(string exclusionsFileName, string? prefix = null)
{
string exclusionsFilePath = Path.Combine(BaselineHelper.GetAssetsDirectory(), exclusionsFileName);
int prefixSkip = prefix?.Length + 1 ?? 0;
return File.ReadAllLines(exclusionsFilePath)
// process only specific exclusions if a prefix is provided
.Where(line => prefix is null || line.StartsWith(prefix + ","))
.Select(line =>
{
// Ignore comments
var index = line.IndexOf('#');
return index >= 0 ? line[prefixSkip..index].TrimEnd() : line[prefixSkip..];
})
.Where(line => !string.IsNullOrEmpty(line))
.ToList();
}
public static void ExtractTarball(string tarballPath, string outputDir, ITestOutputHelper outputHelper)
{
// TarFile doesn't properly handle hard links (https://github.com/dotnet/runtime/pull/85378#discussion_r1221817490),

View file

@ -16,12 +16,13 @@ namespace Microsoft.DotNet.SourceBuild.SmokeTests;
/// <see cref="BaseScenarioTests"/> for related basic scenarios.
/// They are encapsulated in a separate testclass so that they can be run in parallel.
/// </summary>
public class WebScenarioTests : SmokeTests
public class WebScenarioTests : SdkTests
{
public WebScenarioTests(ITestOutputHelper outputHelper) : base(outputHelper) { }
[Theory]
[MemberData(nameof(GetScenarioObjects))]
// https://github.com/dotnet/source-build/issues/3668
// [Theory]
// [MemberData(nameof(GetScenarioObjects))]
public void VerifyScenario(TestScenario scenario) => scenario.Execute(DotNetHelper);
public static IEnumerable<object[]> GetScenarioObjects() => GetScenarios().Select(scenario => new object[] { scenario });

View file

@ -0,0 +1,257 @@
# Contains the list of files to be excluded from license scanning.
#
# This list is processed using FileSystemName.MatchesSimpleExpression
#
# Format:
# Exclude the file entirely from license scanning:
# <vmr-file-path>
# Exclude a specific detected license expression from the scan results for the file:
# <vmr-file-path>|<license-expression>[,<license-expression>...]
#
# arcade
#
# False positive
src/arcade/Documentation/UnifiedBuild/Foundational-Concepts.md
src/arcade/src/Microsoft.DotNet.Build.Tasks.Installers/src/BuildFPMToolPreReqs.cs|json
src/arcade/src/Microsoft.DotNet.Build.Tasks.Installers/build/rpm_templates/copyright|cecill-c
src/arcade/src/SignCheck/SignCheck/THIRD-PARTY-NOTICES.TXT
# Doesn't apply to code
src/arcade/src/Microsoft.DotNet.Arcade.Sdk/tools/Licenses/*
# Applies to installer, not source
src/arcade/src/Microsoft.DotNet.Build.Tasks.Installers/build/wix/eula.rtf
#
# aspnetcore
#
# Line 1 is a generic statement about license applicability that is being detected as "unknown"
src/aspnetcore/src/Components/THIRD-PARTY-NOTICES.txt|unknown
# Windows installer files that have a reference to a URL for license
src/aspnetcore/src/Installers/Windows/**/*.wxl|unknown-license-reference
src/aspnetcore/src/Installers/Windows/**/*.wxs|unknown-license-reference
# License reference used in configuration, but not applying to code
src/aspnetcore/src/Mvc/Settings.StyleCop|unknown-license-reference
src/aspnetcore/src/submodules/MessagePack-CSharp/stylecop.json|unknown
#
# command-line-api
#
# False positive
src/command-line-api/System.CommandLine.sln|json
#
# deployment-tools
#
# False positive
src/deployment-tools/THIRD-PARTY-NOTICES.TXT|unknown-license-reference
#
# diagnostics
#
# False positive
src/diagnostics/THIRD-PARTY-NOTICES.TXT|codesourcery-2004
#
# format
#
# False positive
src/format/THIRD-PARTY-NOTICES.TXT|unknown-license-reference
#
# fsharp
#
# False positive
src/fsharp/tests/EndToEndBuildTests/ProvidedTypes/ProvidedTypes.fs|unknown-license-reference
src/fsharp/tests/service/data/TestTP/ProvidedTypes.fs|unknown-license-reference
src/fsharp/vsintegration/tests/MockTypeProviders/DummyProviderForLanguageServiceTesting/ProvidedTypes.fs|unknown-license-reference
# Applies to installer, not source
src/fsharp/setup/resources/eula/*.rtf
#
# installer
#
# False positive
src/installer/src/core-sdk-tasks/BuildFPMToolPreReqs.cs|json
src/installer/src/redist/targets/packaging/osx/clisdk/resources/en.lproj/welcome.html|cecill-c
src/installer/THIRD-PARTY-NOTICES|proprietary-license
# Configuration, doesn't apply to source directly
src/installer/src/VirtualMonoRepo/THIRD-PARTY-NOTICES.template.txt
src/installer/src/redist/targets/packaging/**/*.json
#
# msbuild
#
# License reference used in build configuration, but not applying to code
src/msbuild/src/Directory.Build.props|ms-net-library-2018-11
# False positive
src/msbuild/src/Build/Instance/ProjectItemInstance.cs|generic-exception
#
# nuget-client
#
# False positive
src/nuget-client/build/NOTICES.txt|other-copyleft
src/nuget-client/README.md|unknown-license-reference
src/nuget-client/src/NuGet.Clients/NuGet.PackageManagement.UI/Resources.Designer.cs|unknown-license-reference
src/nuget-client/src/NuGet.Clients/NuGet.PackageManagement.UI/Actions/UIActionEngine.cs|unknown-license-reference
src/nuget-client/src/NuGet.Clients/NuGet.PackageManagement.VisualStudio/Services/NuGetPackageFileService.cs|proprietary-license
src/nuget-client/src/NuGet.Clients/NuGet.VisualStudio.Internal.Contracts/Formatters/LicenseMetadataFormatter.cs|proprietary-license
src/nuget-client/src/NuGet.Core/NuGet.Packaging/PackageCreation/Authoring/LicenseMetadata.cs|unknown-license-reference
src/nuget-client/src/NuGet.Core/NuGet.Packaging/Rules/DefaultManifestValuesRule.cs|unknown-license-reference
src/nuget-client/test/TestExtensions/GenerateLicenseList/Program.cs|json
# Test data
src/nuget-client/test/**/resources/*.json
src/nuget-client/test/**/resources/*.xml
src/nuget-client/test/NuGet.Clients.Tests/NuGet.PackageManagement.UI.Test/PackageLicenseUtilitiesTests.cs
src/nuget-client/test/NuGet.Core.Tests/NuGet.Packaging.Test/DefaultManifestValuesRuleTests.cs
src/nuget-client/test/NuGet.Core.Tests/NuGet.Packaging.Test/LicensesTests/LicenseExpressionTokenizerTests.cs
src/nuget-client/test/NuGet.Core.Tests/NuGet.Packaging.Test/LicensesTests/NuGetLicenseExpressionParserTests.cs
src/nuget-client/test/NuGet.Core.Tests/NuGet.Packaging.Test/LicensesTests/NuGetLicenseTests.cs
src/nuget-client/test/TestUtilities/Test.Utility/JsonData.cs
#
# roslyn-analyzers
#
# Build asset, not applicable to source
src/roslyn-analyzers/assets/EULA.txt|ms-net-library
#
# roslyn
#
# Test data
src/roslyn/src/Analyzers/VisualBasic/Tests/FileHeaders/FileHeaderTests.vb|unknown-license-reference
src/roslyn/src/EditorFeatures/CSharpTest2/EmbeddedLanguages/RegularExpressions/Regex_RealWorldPatterns.json
# False positive
src/roslyn/src/Compilers/**/Portable/Symbols/NonMissingModuleSymbol.*|proprietary-license
src/roslyn/src/NuGet/ThirdPartyNotices.rtf|json
# Applicable to installer, not source
src/roslyn/src/Setup/Roslyn.ThirdPartyNotices/ThirdPartyNotices.rtf
src/roslyn/src/Setup/Roslyn.VsixLicense/EULA.rtf
#
# runtime
#
# Doc describing licenses, not applicable to source
src/runtime/docs/project/copyright.md
src/runtime/docs/project/glossary.md
# Doc that references a license, not applicable to source
src/runtime/src/coreclr/nativeaot/docs/compiling.md|openssl-ssleay
# Installer asset, not applicable to source
src/runtime/src/installer/pkg/LICENSE-MSFT.TXT
src/runtime/src/installer/pkg/THIRD-PARTY-NOTICES.TXT
# False positive
src/runtime/src/libraries/System.ComponentModel.TypeConverter/src/System/ComponentModel/LicFileLicenseProvider.cs|proprietary-license
src/runtime/src/libraries/System.Configuration.ConfigurationManager/tests/Mono/LongValidatorTest.cs|json
src/runtime/src/libraries/System.Net.Sockets/tests/FunctionalTests/Connect.cs|other-permissive
src/runtime/src/libraries/System.Net.Sockets/tests/FunctionalTests/UdpClientTest.cs|other-permissive
src/runtime/src/libraries/System.Net.Sockets/tests/FunctionalTests/SendReceive/SendReceive.cs|other-permissive
src/runtime/src/libraries/System.Reflection.Metadata/tests/Resources/README.md|unknown-license-reference
src/runtime/src/libraries/System.Runtime/tests/TestModule/README.md|unknown-license-reference
src/runtime/src/libraries/System.Security.Cryptography.Xml/src/System/Security/Cryptography/Xml/XmlLicenseTransform.cs|proprietary-license
src/runtime/src/libraries/System.ServiceModel.Syndication/tests/BasicScenarioTests.cs|unknown-license-reference
src/runtime/src/mono/mono/mini/mini-posix.c|unknown-license-reference
src/runtime/src/mono/mono/mini/mini-windows.c|unknown-license-reference
src/runtime/src/native/external/libunwind/doc/libunwind-ia64.*|generic-exception
src/runtime/src/tests/JIT/Performance/CodeQuality/V8/Crypto/Crypto.cs|unknown-license-reference
# Test data
src/runtime/src/libraries/System.Private.Xml.Linq/tests/XDocument.Common/InputSpace.cs|other-permissive
src/runtime/src/libraries/System.Private.Xml.Linq/tests/XDocument.Common/THIRD-PARTY-NOTICE|other-permissive
src/runtime/src/libraries/System.ServiceModel.Syndication/tests/TestFeeds/AtomFeeds/*.xml
src/runtime/src/libraries/System.Text.RegularExpressions/tests/FunctionalTests/AttRegexTests.cs|other-permissive
# Reference to a license, not applicable to source
src/runtime/src/libraries/System.Text.Json/roadmap/images/core-components.txt|unknown-license-reference
src/runtime/src/libraries/System.Text.Json/roadmap/images/higher-level-components.txt
# Sample data
src/runtime/src/mono/sample/wasm/browser-webpack/package-lock.json
#
# source-build-externals
#
# False positive
src/source-build-externals/src/abstractions-xunit/README.md|free-unknown
src/source-build-externals/src/application-insights/NETCORE/ThirdPartyNotices.txt|unknown
src/source-build-externals/src/azure-activedirectory-identitymodel-extensions-for-dotnet/benchmark/Microsoft.IdentityModel.Benchmarks/CreateTokenTests.cs|proprietary-license
src/source-build-externals/src/azure-activedirectory-identitymodel-extensions-for-dotnet/src/Microsoft.IdentityModel.JsonWebTokens/JsonClaimValueTypes.cs|proprietary-license
src/source-build-externals/src/azure-activedirectory-identitymodel-extensions-for-dotnet/src/Microsoft.IdentityModel.Tokens.Saml/Saml/ClaimProperties.cs|proprietary-license
src/source-build-externals/src/azure-activedirectory-identitymodel-extensions-for-dotnet/src/Microsoft.IdentityModel.Tokens.Saml/Saml/SamlTokenUtilities.cs|proprietary-license
src/source-build-externals/src/azure-activedirectory-identitymodel-extensions-for-dotnet/src/Microsoft.IdentityModel.Tokens.Saml/Saml2/ClaimProperties.cs|proprietary-license
src/source-build-externals/src/azure-activedirectory-identitymodel-extensions-for-dotnet/src/System.IdentityModel.Tokens.Jwt/JsonClaimValueTypes.cs|proprietary-license
src/source-build-externals/src/humanizer/readme.md|free-unknown
src/source-build-externals/src/humanizer/NuSpecs/*.nuspec*
src/source-build-externals/src/xunit/README.md|free-unknown
src/source-build-externals/src/xunit/src/xunit.assert/Asserts/README.md|free-unknown
src/source-build-externals/src/xunit/xunit.sln|json
# A patch which removes the license usage but contains references to the removed license as part of the patch reference lines
src/source-build-externals/patches/application-insights/0002-Remove-WebGrease-from-TPN-2816.patch
#
# source-build-reference-packages
#
# False positive
src/source-build-reference-packages/src/targetPacks/ILsrc/microsoft.netcore.app.ref/3.*/THIRD-PARTY-NOTICES.TXT|codesourcery-2004
src/source-build-reference-packages/src/targetPacks/ILsrc/netstandard.library/1.6.1/ThirdPartyNotices.txt|unknown
src/source-build-reference-packages/src/targetPacks/ILsrc/netstandard.library/2.0.*/THIRD-PARTY-NOTICES.TXT|unknown
src/source-build-reference-packages/src/targetPacks/ILsrc/netstandard.library.ref/2.1.0/THIRD-PARTY-NOTICES.TXT|codesourcery-2004
src/source-build-reference-packages/src/textOnlyPackages/src/microsoft.codeanalysis.collections/4.2.0-1.22102.8/ThirdPartyNotices.rtf|json
src/source-build-reference-packages/src/textOnlyPackages/src/microsoft.netcore.*/1.*/ThirdPartyNotices.txt|unknown
# Contains references to licenses which are not applicable to the source
src/source-build-reference-packages/src/packageSourceGenerator/PackageSourceGeneratorTask/RewriteNuspec.cs|unknown-license-reference,ms-net-library-2018-11
src/source-build-reference-packages/src/textOnlyPackages/src/microsoft.private.intellisense/8.0.0-preview-20230918.1/IntellisenseFiles/windowsdesktop/1033/PresentationCore.xml|proprietary-license
#
# sourcelink
#
# False positive
src/sourcelink/docs/GitSpec/GitSpec.md|unknown-license-reference
#
# test-templates
#
# Not applicable to source
src/test-templates/Templates/**/*.vstemplate
#
# vstest
#
# False positive
src/vstest/src/Microsoft.TestPlatform.Extensions.BlameDataCollector/ProcDumpArgsBuilder.cs|proprietary-license
# Build asset, but not applying to code
src/vstest/src/package/Microsoft.CodeCoverage/ThirdPartyNoticesCodeCoverage.txt
src/vstest/src/package/Microsoft.VisualStudio.TestTools.TestPlatform.V2.CLI/License.rtf

View file

@ -0,0 +1,20 @@
{
"files": [
{
"path": "src/tests/GC/Scenarios/GCBench/THIRD-PARTY-NOTICES",
"detected_license_expression": "unknown-license-reference"
},
{
"path": "src/tests/JIT/Performance/CodeQuality/Benchstones/BenchF/LLoops/THIRD-PARTY-NOTICES",
"detected_license_expression": "unknown-license-reference"
},
{
"path": "src/tests/JIT/Performance/CodeQuality/Benchstones/MDBenchF/MDLLoops/THIRD-PARTY-NOTICES",
"detected_license_expression": "unknown-license-reference"
},
{
"path": "src/tests/JIT/Performance/CodeQuality/V8/Richards/THIRD-PARTY-NOTICES",
"detected_license_expression": "unknown-license-reference"
}
]
}

View file

@ -0,0 +1,12 @@
{
"files": [
{
"path": "src/application-insights/LOGGING/ThirdPartyNotices.txt",
"detected_license_expression": "unknown AND apache-2.0 AND mit AND bsd-new"
},
{
"path": "src/application-insights/WEB/ThirdPartyNotices.txt",
"detected_license_expression": "bsd-new AND mit AND ms-pl AND apache-2.0 AND (cc-by-3.0-us AND cc-by-3.0 AND mit) AND ms-net-library AND ms-rl"
}
]
}

View file

@ -0,0 +1,51 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Matt Thalman <mthalman@microsoft.com>
Date: Wed, 18 Oct 2023 12:50:21 -0500
Subject: [PATCH] Explicitly set TFM to net9.0
Backport: https://github.com/dotnet/source-build/issues/3663
---
perf/dotnet-format.Performance.csproj | 2 +-
src/dotnet-format.csproj | 2 +-
tests/dotnet-format.UnitTests.csproj | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/perf/dotnet-format.Performance.csproj b/perf/dotnet-format.Performance.csproj
index 677b7b9a..3e1387d1 100644
--- a/perf/dotnet-format.Performance.csproj
+++ b/perf/dotnet-format.Performance.csproj
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
- <TargetFramework>$(NetCurrent)</TargetFramework>
+ <TargetFramework>net9.0</TargetFramework>
<OutputType>Exe</OutputType>
<Optimize>true</Optimize>
<Configuration>Release</Configuration>
diff --git a/src/dotnet-format.csproj b/src/dotnet-format.csproj
index 5549fb71..8a77d03f 100644
--- a/src/dotnet-format.csproj
+++ b/src/dotnet-format.csproj
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
- <TargetFramework>$(NetCurrent)</TargetFramework>
+ <TargetFramework>net9.0</TargetFramework>
<OutputType>Exe</OutputType>
<RootNamespace>Microsoft.CodeAnalysis.Tools</RootNamespace>
<ServerGarbageCollection>true</ServerGarbageCollection>
diff --git a/tests/dotnet-format.UnitTests.csproj b/tests/dotnet-format.UnitTests.csproj
index c4311a1a..5b1bcfb9 100644
--- a/tests/dotnet-format.UnitTests.csproj
+++ b/tests/dotnet-format.UnitTests.csproj
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
- <TargetFramework>$(NetCurrent)</TargetFramework>
+ <TargetFramework>net9.0</TargetFramework>
<RootNamespace>Microsoft.CodeAnalysis.Tools.Tests</RootNamespace>
<!-- Copy nuget assemblies to build directory so that Microsoft.CodeAnalysis.Features.* can be located when running tests. -->

View file

@ -0,0 +1,23 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Matt Thalman <mthalman@microsoft.com>
Date: Wed, 18 Oct 2023 13:05:45 -0500
Subject: [PATCH] Update Microsoft.Build.Locator to 1.6.10
Backport: https://github.com/dotnet/sdk/issues/36219
---
eng/Versions.props | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/eng/Versions.props b/eng/Versions.props
index 961660e5..c330813b 100644
--- a/eng/Versions.props
+++ b/eng/Versions.props
@@ -40,7 +40,7 @@
<!-- external -->
<BenchmarkDotNetVersion>0.13.5</BenchmarkDotNetVersion>
<BenchmarkDotNetAnnotationsVersion>0.13.5</BenchmarkDotNetAnnotationsVersion>
- <MicrosoftBuildLocatorVersion>1.5.5</MicrosoftBuildLocatorVersion>
+ <MicrosoftBuildLocatorVersion>1.6.10</MicrosoftBuildLocatorVersion>
<MicrosoftVisualStudioCompositionVersion>17.4.16</MicrosoftVisualStudioCompositionVersion>
</PropertyGroup>
</Project>

View file

@ -0,0 +1,640 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Matt Thalman <mthalman@microsoft.com>
Date: Thu, 19 Oct 2023 08:33:01 -0500
Subject: [PATCH] Explicitly use net9.0 TFM
Backport: https://github.com/dotnet/source-build/issues/3663
---
Directory.Build.props | 4 +--
buildtools/AssemblyCheck/AssemblyCheck.fsproj | 2 +-
.../FSharp.Compiler.Service_notshipped.fsproj | 2 +-
buildtools/fslex/fslex.fsproj | 2 +-
buildtools/fsyacc/fsyacc.fsproj | 2 +-
eng/build.sh | 6 ++--
.../EditorService/EditorService.fsproj | 2 +-
src/Compiler/FSharp.Compiler.Service.fsproj | 6 ++--
.../Microsoft.FSharp.Compiler.fsproj | 2 +-
.../Microsoft.FSharp.Compiler.nuspec | 28 +++++++++----------
src/fsc/fscProject/fsc.fsproj | 6 ++--
src/fsi/fsiProject/fsi.fsproj | 6 ++--
.../SelfContained_Trimming_Test.fsproj | 6 ++--
...taticLinkedFSharpCore_Trimming_Test.fsproj | 6 ++--
.../BasicProvider.DesignTime.fsproj | 2 +-
.../BasicProvider.Tests.fsproj | 2 +-
.../BasicProvider/BasicProvider.fsproj | 2 +-
.../FSharp.Build.UnitTests.fsproj | 4 +--
.../FSharp.Compiler.ComponentTests.fsproj | 4 +--
...ompiler.Private.Scripting.UnitTests.fsproj | 4 +--
.../FSharp.Compiler.Service.Tests.fsproj | 4 +--
.../FSharp.Compiler.UnitTests.fsproj | 4 +--
.../FSharp.Core.UnitTests.fsproj | 4 +--
.../FSharp.Test.Utilities.fsproj | 4 +--
.../MicroPerf/MicroPerf.fsproj | 2 +-
.../TaskPerf/TaskPerf/TaskPerf.fsproj | 2 +-
.../TaskPerfPreviousCompiler.fsproj | 2 +-
.../HistoricalBenchmark.Runner.fsproj | 2 +-
.../HistoricalBenchmark.fsproj | 2 +-
.../FSharp.Compiler.Benchmarks.fsproj | 2 +-
.../FCSSourceFiles/FCSSourceFiles.fsproj | 2 +-
.../Fsharp.ProfilingStartpointProject.fsproj | 2 +-
tests/fsharp/FSharpSuite.Tests.fsproj | 4 +--
.../Sample_ConsoleApp_net7.fsproj | 6 ++--
.../Sample_ConsoleApp_net7.fsproj | 6 ++--
35 files changed, 73 insertions(+), 73 deletions(-)
diff --git a/Directory.Build.props b/Directory.Build.props
index 879bd8941..161d115ad 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -30,8 +30,8 @@
<ArtifactsDir>$(MSBuildThisFileDirectory)artifacts/</ArtifactsDir>
<OutputPath>$(ArtifactsDir)/bin/$(MSBuildProjectName)/$(Configuration)/</OutputPath>
<IntermediateOutputPath>$(ArtifactsDir)obj/$(MSBuildProjectName)/$(Configuration)/</IntermediateOutputPath>
- <FsLexPath>$(ArtifactsDir)/bin/fslex/$(Configuration)/net8.0/fslex.dll</FsLexPath>
- <FsYaccPath>$(ArtifactsDir)/bin/fsyacc/$(Configuration)/net8.0/fsyacc.dll</FsYaccPath>
+ <FsLexPath>$(ArtifactsDir)/bin/fslex/$(Configuration)/net9.0/fslex.dll</FsLexPath>
+ <FsYaccPath>$(ArtifactsDir)/bin/fsyacc/$(Configuration)/net9.0/fsyacc.dll</FsYaccPath>
</PropertyGroup>
<Import Project="$(MSBuildThisFileDirectory)/eng/Versions.props" Condition="'$(DISABLE_ARCADE)' == 'true'"/>
diff --git a/buildtools/AssemblyCheck/AssemblyCheck.fsproj b/buildtools/AssemblyCheck/AssemblyCheck.fsproj
index 46ffb722c..9d391689d 100644
--- a/buildtools/AssemblyCheck/AssemblyCheck.fsproj
+++ b/buildtools/AssemblyCheck/AssemblyCheck.fsproj
@@ -2,7 +2,7 @@
<PropertyGroup>
<OutputType>Exe</OutputType>
- <TargetFramework>net8.0</TargetFramework>
+ <TargetFramework>net9.0</TargetFramework>
<DisableImplicitFSharpCoreReference>true</DisableImplicitFSharpCoreReference>
<UseAppHost Condition="'$(DotNetBuildFromSource)' == 'true'">false</UseAppHost>
</PropertyGroup>
diff --git a/buildtools/checkpackages/FSharp.Compiler.Service_notshipped.fsproj b/buildtools/checkpackages/FSharp.Compiler.Service_notshipped.fsproj
index 514b1f4dd..d3df3b688 100644
--- a/buildtools/checkpackages/FSharp.Compiler.Service_notshipped.fsproj
+++ b/buildtools/checkpackages/FSharp.Compiler.Service_notshipped.fsproj
@@ -3,7 +3,7 @@
<Import Project="$(MSBuildProjectDirectory)\..\..\eng\Versions.props" />
<PropertyGroup>
- <TargetFramework>net8.0</TargetFramework>
+ <TargetFramework>net9.0</TargetFramework>
<DisableImplicitFSharpCoreReference>true</DisableImplicitFSharpCoreReference>
<CachePath>$(MSBuildProjectDirectory)\..\..\artifacts\tmp\$([System.Guid]::NewGuid())</CachePath>
<OutputPath>$(CachePath)\bin</OutputPath>
diff --git a/buildtools/fslex/fslex.fsproj b/buildtools/fslex/fslex.fsproj
index 674dde7c7..8764e40e1 100644
--- a/buildtools/fslex/fslex.fsproj
+++ b/buildtools/fslex/fslex.fsproj
@@ -2,7 +2,7 @@
<PropertyGroup>
<OutputType>Exe</OutputType>
- <TargetFramework>net8.0</TargetFramework>
+ <TargetFramework>net9.0</TargetFramework>
<DisableImplicitFSharpCoreReference>true</DisableImplicitFSharpCoreReference>
<UseAppHost Condition="'$(DotNetBuildFromSource)' == 'true'">false</UseAppHost>
<RollForward Condition="'$(BUILDING_USING_DOTNET)' == 'true'">LatestMajor</RollForward>
diff --git a/buildtools/fsyacc/fsyacc.fsproj b/buildtools/fsyacc/fsyacc.fsproj
index fc072b7cf..4110186e5 100644
--- a/buildtools/fsyacc/fsyacc.fsproj
+++ b/buildtools/fsyacc/fsyacc.fsproj
@@ -2,7 +2,7 @@
<PropertyGroup>
<OutputType>Exe</OutputType>
- <TargetFramework>net8.0</TargetFramework>
+ <TargetFramework>net9.0</TargetFramework>
<DisableImplicitFSharpCoreReference>true</DisableImplicitFSharpCoreReference>
<UseAppHost Condition="'$(DotNetBuildFromSource)' == 'true'">false</UseAppHost>
<RollForward Condition="'$(BUILDING_USING_DOTNET)' == 'true'">LatestMajor</RollForward>
diff --git a/eng/build.sh b/eng/build.sh
index 3b992d6bf..3a4444081 100755
--- a/eng/build.sh
+++ b/eng/build.sh
@@ -264,8 +264,8 @@ function BuildSolution {
MSBuild "$repo_root/buildtools/buildtools.proj" /restore "$bltools" /p:Configuration=$bootstrap_config
mkdir -p "$bootstrap_dir"
- cp -pr $artifacts_dir/bin/fslex/$bootstrap_config/net8.0 $bootstrap_dir/fslex
- cp -pr $artifacts_dir/bin/fsyacc/$bootstrap_config/net8.0 $bootstrap_dir/fsyacc
+ cp -pr $artifacts_dir/bin/fslex/$bootstrap_config/net9.0 $bootstrap_dir/fslex
+ cp -pr $artifacts_dir/bin/fsyacc/$bootstrap_config/net9.0 $bootstrap_dir/fsyacc
fi
if [ ! -f "$bootstrap_dir/fsc.exe" ]; then
local bltools=""
@@ -274,7 +274,7 @@ function BuildSolution {
fi
BuildMessage="Error building bootstrap"
MSBuild "$repo_root/Proto.sln" /restore "$bltools" /p:Configuration=$bootstrap_config
- cp -pr $artifacts_dir/bin/fsc/$bootstrap_config/net8.0 $bootstrap_dir/fsc
+ cp -pr $artifacts_dir/bin/fsc/$bootstrap_config/net9.0 $bootstrap_dir/fsc
fi
fi
diff --git a/fcs-samples/EditorService/EditorService.fsproj b/fcs-samples/EditorService/EditorService.fsproj
index e4103999f..fe08d0cc4 100644
--- a/fcs-samples/EditorService/EditorService.fsproj
+++ b/fcs-samples/EditorService/EditorService.fsproj
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\netfx.props" />
<PropertyGroup>
- <TargetFrameworks>$(FcsTargetNetFxFramework);net8.0</TargetFrameworks>
+ <TargetFrameworks>$(FcsTargetNetFxFramework);net9.0</TargetFrameworks>
<DisableImplicitFSharpCoreReference>true</DisableImplicitFSharpCoreReference>
<OutputType>Exe</OutputType>
<IsPackable>false</IsPackable>
diff --git a/src/Compiler/FSharp.Compiler.Service.fsproj b/src/Compiler/FSharp.Compiler.Service.fsproj
index 45ae22a3e..56a587c30 100644
--- a/src/Compiler/FSharp.Compiler.Service.fsproj
+++ b/src/Compiler/FSharp.Compiler.Service.fsproj
@@ -521,15 +521,15 @@
<ItemGroup Condition="'$(BUILDING_USING_DOTNET)' == 'true'">
<!-- We are setting TFM explicitly here, since we are only using fslexyacc's dlls in msbuild -->
<ProjectReference Include="$(RepoRoot)\buildtools\fslex\fslex.fsproj" ReferenceOutputAssembly="False">
- <SetTargetFramework>TargetFramework=net8.0</SetTargetFramework>
+ <SetTargetFramework>TargetFramework=net9.0</SetTargetFramework>
<ExcludeAssets>compile</ExcludeAssets>
</ProjectReference>
<ProjectReference Include="$(RepoRoot)\buildtools\fsyacc\fsyacc.fsproj" ReferenceOutputAssembly="False">
- <SetTargetFramework>TargetFramework=net8.0</SetTargetFramework>
+ <SetTargetFramework>TargetFramework=net9.0</SetTargetFramework>
<ExcludeAssets>compile</ExcludeAssets>
</ProjectReference>
<ProjectReference Include="$(RepoRoot)\buildtools\AssemblyCheck\AssemblyCheck.fsproj" ReferenceOutputAssembly="False">
- <SetTargetFramework>TargetFramework=net8.0</SetTargetFramework>
+ <SetTargetFramework>TargetFramework=net9.0</SetTargetFramework>
<ExcludeAssets>compile</ExcludeAssets>
</ProjectReference>
</ItemGroup>
diff --git a/src/Microsoft.FSharp.Compiler/Microsoft.FSharp.Compiler.fsproj b/src/Microsoft.FSharp.Compiler/Microsoft.FSharp.Compiler.fsproj
index f7560b707..68b02ce25 100644
--- a/src/Microsoft.FSharp.Compiler/Microsoft.FSharp.Compiler.fsproj
+++ b/src/Microsoft.FSharp.Compiler/Microsoft.FSharp.Compiler.fsproj
@@ -3,7 +3,7 @@
<PropertyGroup>
<PreRelease>true</PreRelease>
<OutputType>Exe</OutputType>
- <TargetFramework>net8.0</TargetFramework>
+ <TargetFramework>net9.0</TargetFramework>
<NuspecFile>Microsoft.FSharp.Compiler.nuspec</NuspecFile>
<IsPackable>true</IsPackable>
<PackageDescription>.NET Core compatible version of the F# compiler fsc.exe.</PackageDescription>
diff --git a/src/Microsoft.FSharp.Compiler/Microsoft.FSharp.Compiler.nuspec b/src/Microsoft.FSharp.Compiler/Microsoft.FSharp.Compiler.nuspec
index ca36309d5..e567e478b 100644
--- a/src/Microsoft.FSharp.Compiler/Microsoft.FSharp.Compiler.nuspec
+++ b/src/Microsoft.FSharp.Compiler/Microsoft.FSharp.Compiler.nuspec
@@ -4,7 +4,7 @@
$CommonMetadataElements$
<language>en-US</language>
<dependencies>
- <group targetFramework=".net8.0" />
+ <group targetFramework=".net9.0" />
</dependencies>
<contentFiles>
<files include="any\any\default.win32manifest" buildAction="Content" copyToOutput="true" flatten="false" />
@@ -26,16 +26,16 @@
this approach gives a very small deployment. Which is kind of necessary.
-->
<!-- assemblies -->
- <file src="fsc\ReleaseCompressed\net8.0\fsc.dll" target="lib\net8.0" />
- <file src="fsi\ReleaseCompressed\net8.0\fsi.dll" target="lib\net8.0" />
- <file src="FSharp.Core\ReleaseCompressed\netstandard2.0\FSharp.Core.dll" target="lib\net8.0" />
- <file src="FSharp.Core\ReleaseCompressed\netstandard2.0\FSharp.Core.xml" target="lib\net8.0" />
- <file src="FSharp.Compiler.Service\ReleaseCompressed\netstandard2.0\FSharp.Compiler.Service.dll" target="lib\net8.0" />
- <file src="FSharp.Build\ReleaseCompressed\netstandard2.0\FSharp.Build.dll" target="lib\net8.0" />
+ <file src="fsc\ReleaseCompressed\net9.0\fsc.dll" target="lib\net9.0" />
+ <file src="fsi\ReleaseCompressed\net9.0\fsi.dll" target="lib\net9.0" />
+ <file src="FSharp.Core\ReleaseCompressed\netstandard2.0\FSharp.Core.dll" target="lib\net9.0" />
+ <file src="FSharp.Core\ReleaseCompressed\netstandard2.0\FSharp.Core.xml" target="lib\net9.0" />
+ <file src="FSharp.Compiler.Service\ReleaseCompressed\netstandard2.0\FSharp.Compiler.Service.dll" target="lib\net9.0" />
+ <file src="FSharp.Build\ReleaseCompressed\netstandard2.0\FSharp.Build.dll" target="lib\net9.0" />
<file src="FSharp.DependencyManager.Nuget\ReleaseCompressed\netstandard2.0\FSharp.DependencyManager.Nuget.dll"
- target="lib\net8.0" />
+ target="lib\net9.0" />
<file src="FSharp.Compiler.Interactive.Settings\ReleaseCompressed\netstandard2.0\FSharp.Compiler.Interactive.Settings.dll"
- target="lib\net8.0" />
+ target="lib\net9.0" />
<!-- additional files -->
<file src="FSharp.Compiler.Service\ReleaseCompressed\netstandard2.0\default.win32manifest" target="contentFiles\any\any" />
<file src="FSharp.Build\ReleaseCompressed\netstandard2.0\Microsoft.FSharp.Targets" target="contentFiles\any\any" />
@@ -45,14 +45,14 @@
<file src="FSharp.Build\ReleaseCompressed\netstandard2.0\Microsoft.FSharp.Overrides.NetSdk.targets" target="contentFiles\any\any" />
<!-- resources -->
- <file src="FSharp.Core\ReleaseCompressed\netstandard2.0\**\FSharp.Core.resources.dll" target="lib\net8.0" />
+ <file src="FSharp.Core\ReleaseCompressed\netstandard2.0\**\FSharp.Core.resources.dll" target="lib\net9.0" />
<file src="FSharp.Compiler.Service\ReleaseCompressed\netstandard2.0\**\FSharp.Compiler.Service.resources.dll"
- target="lib\net8.0" />
+ target="lib\net9.0" />
<file src="FSharp.Compiler.Interactive.Settings\ReleaseCompressed\netstandard2.0\**\FSharp.Compiler.Interactive.Settings.resources.dll"
- target="lib\net8.0" />
- <file src="FSharp.Build\ReleaseCompressed\netstandard2.0\**\FSharp.Build.resources.dll" target="lib\net8.0" />
+ target="lib\net9.0" />
+ <file src="FSharp.Build\ReleaseCompressed\netstandard2.0\**\FSharp.Build.resources.dll" target="lib\net9.0" />
<file src="FSharp.DependencyManager.Nuget\ReleaseCompressed\netstandard2.0\**\FSharp.DependencyManager.Nuget.resources.dll"
- target="lib\net8.0" />
+ target="lib\net9.0" />
<file src="$artifactsPackagesDir$Dependency\Shipping\FSharp.Core.$fSharpCorePreviewPackageVersion$*nupkg"
target="contentFiles\Shipping" />
<file src="$artifactsPackagesDir$Dependency\Release\FSharp.Core.$fSharpCorePackageVersion$*nupkg" target="contentFiles\Release" />
diff --git a/src/fsc/fscProject/fsc.fsproj b/src/fsc/fscProject/fsc.fsproj
index 64c4651a7..985f1492b 100644
--- a/src/fsc/fscProject/fsc.fsproj
+++ b/src/fsc/fscProject/fsc.fsproj
@@ -3,15 +3,15 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup Condition="'$(BUILD_PROTO)' != 'true'">
- <TargetFrameworks Condition="'$(OS)' != 'Unix'">net472;net8.0</TargetFrameworks>
- <TargetFrameworks Condition="'$(OS)' == 'Unix' or '$(BUILDING_USING_DOTNET)' == 'true'">net8.0</TargetFrameworks>
+ <TargetFrameworks Condition="'$(OS)' != 'Unix'">net472;net9.0</TargetFrameworks>
+ <TargetFrameworks Condition="'$(OS)' == 'Unix' or '$(BUILDING_USING_DOTNET)' == 'true'">net9.0</TargetFrameworks>
<PlatformTarget Condition="'$(TargetFramework)' == 'net472'">x86</PlatformTarget>
<Configurations>Debug;Release;Proto;ReleaseCompressed</Configurations>
</PropertyGroup>
<PropertyGroup Condition="'$(BUILD_PROTO)' == 'true'">
<TargetFrameworks Condition="'$(OS)' != 'Unix'">net472</TargetFrameworks>
- <TargetFrameworks Condition="'$(OS)' == 'Unix' or '$(BUILDING_USING_DOTNET)' == 'true'">net8.0</TargetFrameworks>
+ <TargetFrameworks Condition="'$(OS)' == 'Unix' or '$(BUILDING_USING_DOTNET)' == 'true'">net9.0</TargetFrameworks>
<PlatformTarget Condition="'$(TargetFramework)' == 'net472'">x86</PlatformTarget>
</PropertyGroup>
diff --git a/src/fsi/fsiProject/fsi.fsproj b/src/fsi/fsiProject/fsi.fsproj
index dd17f8bd5..6bfa01c3e 100644
--- a/src/fsi/fsiProject/fsi.fsproj
+++ b/src/fsi/fsiProject/fsi.fsproj
@@ -3,15 +3,15 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup Condition="'$(BUILD_PROTO)' != 'true'">
- <TargetFrameworks Condition="'$(OS)' != 'Unix'">net472;net8.0</TargetFrameworks>
- <TargetFrameworks Condition="'$(OS)' == 'Unix' or '$(BUILDING_USING_DOTNET)' == 'true'">net8.0</TargetFrameworks>
+ <TargetFrameworks Condition="'$(OS)' != 'Unix'">net472;net9.0</TargetFrameworks>
+ <TargetFrameworks Condition="'$(OS)' == 'Unix' or '$(BUILDING_USING_DOTNET)' == 'true'">net9.0</TargetFrameworks>
<PlatformTarget Condition="'$(TargetFramework)' == 'net472'">x86</PlatformTarget>
<Configurations>Debug;Release;Proto;ReleaseCompressed</Configurations>
</PropertyGroup>
<PropertyGroup Condition="'$(BUILD_PROTO)' == 'true'">
<TargetFrameworks Condition="'$(OS)' != 'Unix'">net472</TargetFrameworks>
- <TargetFrameworks Condition="'$(OS)' == 'Unix' or '$(BUILDING_USING_DOTNET)' == 'true'">net8.0</TargetFrameworks>
+ <TargetFrameworks Condition="'$(OS)' == 'Unix' or '$(BUILDING_USING_DOTNET)' == 'true'">net9.0</TargetFrameworks>
<PlatformTarget Condition="'$(TargetFramework)' == 'net472'">x86</PlatformTarget>
</PropertyGroup>
diff --git a/tests/AheadOfTime/Trimming/SelfContained_Trimming_Test/SelfContained_Trimming_Test.fsproj b/tests/AheadOfTime/Trimming/SelfContained_Trimming_Test/SelfContained_Trimming_Test.fsproj
index cb02b7e0f..acd4e8f10 100644
--- a/tests/AheadOfTime/Trimming/SelfContained_Trimming_Test/SelfContained_Trimming_Test.fsproj
+++ b/tests/AheadOfTime/Trimming/SelfContained_Trimming_Test/SelfContained_Trimming_Test.fsproj
@@ -2,7 +2,7 @@
<PropertyGroup>
<OutputType>Exe</OutputType>
- <TargetFrameworks>net8.0</TargetFrameworks>
+ <TargetFrameworks>net9.0</TargetFrameworks>
<LangVersion>preview</LangVersion>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<DotNetBuildOffline>true</DotNetBuildOffline>
@@ -17,8 +17,8 @@
</PropertyGroup>
<PropertyGroup>
- <DotnetFscCompilerPath>$(MSBuildThisFileDirectory)../../../../artifacts/bin/fsc/Release/net8.0/fsc.dll</DotnetFscCompilerPath>
- <Fsc_DotNET_DotnetFscCompilerPath>$(MSBuildThisFileDirectory)../../../../artifacts/bin/fsc/Release/net8.0/fsc.dll</Fsc_DotNET_DotnetFscCompilerPath>
+ <DotnetFscCompilerPath>$(MSBuildThisFileDirectory)../../../../artifacts/bin/fsc/Release/net9.0/fsc.dll</DotnetFscCompilerPath>
+ <Fsc_DotNET_DotnetFscCompilerPath>$(MSBuildThisFileDirectory)../../../../artifacts/bin/fsc/Release/net9.0/fsc.dll</Fsc_DotNET_DotnetFscCompilerPath>
<FSharpPreferNetFrameworkTools>False</FSharpPreferNetFrameworkTools>
<FSharpPrefer64BitTools>True</FSharpPrefer64BitTools>
</PropertyGroup>
diff --git a/tests/AheadOfTime/Trimming/StaticLinkedFSharpCore_Trimming_Test/StaticLinkedFSharpCore_Trimming_Test.fsproj b/tests/AheadOfTime/Trimming/StaticLinkedFSharpCore_Trimming_Test/StaticLinkedFSharpCore_Trimming_Test.fsproj
index d36faf2c0..2004fafbe 100644
--- a/tests/AheadOfTime/Trimming/StaticLinkedFSharpCore_Trimming_Test/StaticLinkedFSharpCore_Trimming_Test.fsproj
+++ b/tests/AheadOfTime/Trimming/StaticLinkedFSharpCore_Trimming_Test/StaticLinkedFSharpCore_Trimming_Test.fsproj
@@ -2,7 +2,7 @@
<PropertyGroup>
<OutputType>Exe</OutputType>
- <TargetFrameworks>net8.0</TargetFrameworks>
+ <TargetFrameworks>net9.0</TargetFrameworks>
<LangVersion>preview</LangVersion>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<DotNetBuildOffline>true</DotNetBuildOffline>
@@ -19,8 +19,8 @@
</PropertyGroup>
<PropertyGroup>
- <DotnetFscCompilerPath>$(MSBuildThisFileDirectory)../../../../artifacts/bin/fsc/Release/net8.0/fsc.dll</DotnetFscCompilerPath>
- <Fsc_DotNET_DotnetFscCompilerPath>$(MSBuildThisFileDirectory)../../../../artifacts/bin/fsc/Release/net8.0/fsc.dll</Fsc_DotNET_DotnetFscCompilerPath>
+ <DotnetFscCompilerPath>$(MSBuildThisFileDirectory)../../../../artifacts/bin/fsc/Release/net9.0/fsc.dll</DotnetFscCompilerPath>
+ <Fsc_DotNET_DotnetFscCompilerPath>$(MSBuildThisFileDirectory)../../../../artifacts/bin/fsc/Release/net9.0/fsc.dll</Fsc_DotNET_DotnetFscCompilerPath>
<FSharpPreferNetFrameworkTools>False</FSharpPreferNetFrameworkTools>
<FSharpPrefer64BitTools>True</FSharpPrefer64BitTools>
</PropertyGroup>
diff --git a/tests/EndToEndBuildTests/BasicProvider/BasicProvider.DesignTime/BasicProvider.DesignTime.fsproj b/tests/EndToEndBuildTests/BasicProvider/BasicProvider.DesignTime/BasicProvider.DesignTime.fsproj
index b05e1882f..53c32b81b 100644
--- a/tests/EndToEndBuildTests/BasicProvider/BasicProvider.DesignTime/BasicProvider.DesignTime.fsproj
+++ b/tests/EndToEndBuildTests/BasicProvider/BasicProvider.DesignTime/BasicProvider.DesignTime.fsproj
@@ -2,7 +2,7 @@
<PropertyGroup>
<OutputType>Library</OutputType>
- <TargetFrameworks>net8.0;net472</TargetFrameworks>
+ <TargetFrameworks>net9.0;net472</TargetFrameworks>
<FSharpToolsDirectory>typeproviders</FSharpToolsDirectory>
<DefineConstants>NO_GENERATIVE</DefineConstants>
<DefineConstants>IS_DESIGNTIME</DefineConstants>
diff --git a/tests/EndToEndBuildTests/BasicProvider/BasicProvider.Tests/BasicProvider.Tests.fsproj b/tests/EndToEndBuildTests/BasicProvider/BasicProvider.Tests/BasicProvider.Tests.fsproj
index 5da0cbb3b..981441310 100644
--- a/tests/EndToEndBuildTests/BasicProvider/BasicProvider.Tests/BasicProvider.Tests.fsproj
+++ b/tests/EndToEndBuildTests/BasicProvider/BasicProvider.Tests/BasicProvider.Tests.fsproj
@@ -2,7 +2,7 @@
<PropertyGroup>
<OutputType>Library</OutputType>
- <TargetFramework Condition=" '$(TestTargetFramework)' == '' ">net8.0</TargetFramework>
+ <TargetFramework Condition=" '$(TestTargetFramework)' == '' ">net9.0</TargetFramework>
<TargetFramework Condition=" '$(TestTargetFramework)' != '' ">$(TestTargetFramework)</TargetFramework>
<IsPackable>false</IsPackable>
<DefineConstants>NO_GENERATIVE</DefineConstants>
diff --git a/tests/EndToEndBuildTests/BasicProvider/BasicProvider/BasicProvider.fsproj b/tests/EndToEndBuildTests/BasicProvider/BasicProvider/BasicProvider.fsproj
index 96006f066..24c2188c5 100644
--- a/tests/EndToEndBuildTests/BasicProvider/BasicProvider/BasicProvider.fsproj
+++ b/tests/EndToEndBuildTests/BasicProvider/BasicProvider/BasicProvider.fsproj
@@ -2,7 +2,7 @@
<PropertyGroup>
<OutputType>Library</OutputType>
- <TargetFrameworks>net8.0;net472</TargetFrameworks>
+ <TargetFrameworks>net9.0;net472</TargetFrameworks>
<FSharpToolsDirectory>typeproviders</FSharpToolsDirectory>
<FSharpCoreImplicitPackageVersion>$(FSharpCoreShippedPackageVersionValue)</FSharpCoreImplicitPackageVersion>
<PackagePath>typeproviders</PackagePath>
diff --git a/tests/FSharp.Build.UnitTests/FSharp.Build.UnitTests.fsproj b/tests/FSharp.Build.UnitTests/FSharp.Build.UnitTests.fsproj
index e3c796d0b..e4926cd6c 100644
--- a/tests/FSharp.Build.UnitTests/FSharp.Build.UnitTests.fsproj
+++ b/tests/FSharp.Build.UnitTests/FSharp.Build.UnitTests.fsproj
@@ -3,8 +3,8 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
- <TargetFrameworks>net472;net8.0</TargetFrameworks>
- <TargetFrameworks Condition="'$(OS)' == 'Unix'">net8.0</TargetFrameworks>
+ <TargetFrameworks>net472;net9.0</TargetFrameworks>
+ <TargetFrameworks Condition="'$(OS)' == 'Unix'">net9.0</TargetFrameworks>
<OutputType>Library</OutputType>
<DisableImplicitFSharpCoreReference>true</DisableImplicitFSharpCoreReference>
<UnitTestType>xunit</UnitTestType>
diff --git a/tests/FSharp.Compiler.ComponentTests/FSharp.Compiler.ComponentTests.fsproj b/tests/FSharp.Compiler.ComponentTests/FSharp.Compiler.ComponentTests.fsproj
index aefeb44cc..1d07c4d06 100644
--- a/tests/FSharp.Compiler.ComponentTests/FSharp.Compiler.ComponentTests.fsproj
+++ b/tests/FSharp.Compiler.ComponentTests/FSharp.Compiler.ComponentTests.fsproj
@@ -3,8 +3,8 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
- <TargetFrameworks>net472;net8.0</TargetFrameworks>
- <TargetFrameworks Condition="'$(OS)' == 'Unix' or '$(BUILDING_USING_DOTNET)' == 'true'">net8.0</TargetFrameworks>
+ <TargetFrameworks>net472;net9.0</TargetFrameworks>
+ <TargetFrameworks Condition="'$(OS)' == 'Unix' or '$(BUILDING_USING_DOTNET)' == 'true'">net9.0</TargetFrameworks>
<OutputType>Library</OutputType>
<GenerateProgramFile>false</GenerateProgramFile>
<DisableImplicitFSharpCoreReference>true</DisableImplicitFSharpCoreReference>
diff --git a/tests/FSharp.Compiler.Private.Scripting.UnitTests/FSharp.Compiler.Private.Scripting.UnitTests.fsproj b/tests/FSharp.Compiler.Private.Scripting.UnitTests/FSharp.Compiler.Private.Scripting.UnitTests.fsproj
index cdfd467e5..2fdcffc90 100644
--- a/tests/FSharp.Compiler.Private.Scripting.UnitTests/FSharp.Compiler.Private.Scripting.UnitTests.fsproj
+++ b/tests/FSharp.Compiler.Private.Scripting.UnitTests/FSharp.Compiler.Private.Scripting.UnitTests.fsproj
@@ -2,8 +2,8 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
- <TargetFrameworks>net472;net8.0</TargetFrameworks>
- <TargetFrameworks Condition="'$(OS)' == 'Unix'">net8.0</TargetFrameworks>
+ <TargetFrameworks>net472;net9.0</TargetFrameworks>
+ <TargetFrameworks Condition="'$(OS)' == 'Unix'">net9.0</TargetFrameworks>
<OutputType>Library</OutputType>
<DisableImplicitFSharpCoreReference>true</DisableImplicitFSharpCoreReference>
<UnitTestType>xunit</UnitTestType>
diff --git a/tests/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.Tests.fsproj b/tests/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.Tests.fsproj
index 7cb2dfd22..1fa999721 100644
--- a/tests/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.Tests.fsproj
+++ b/tests/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.Tests.fsproj
@@ -3,8 +3,8 @@
<PropertyGroup>
<OutputType>Exe</OutputType>
- <TargetFrameworks>net472;net8.0</TargetFrameworks>
- <TargetFrameworks Condition="'$(OS)' == 'Unix' or '$(BUILDING_USING_DOTNET)' == 'true'">net8.0</TargetFrameworks>
+ <TargetFrameworks>net472;net9.0</TargetFrameworks>
+ <TargetFrameworks Condition="'$(OS)' == 'Unix' or '$(BUILDING_USING_DOTNET)' == 'true'">net9.0</TargetFrameworks>
<!-- Workaround to get rid of:
error NU1505: Duplicate 'PackageDownload' items found.
Remove the duplicate items or use the Update functionality to ensure a consistent restore behavior.
diff --git a/tests/FSharp.Compiler.UnitTests/FSharp.Compiler.UnitTests.fsproj b/tests/FSharp.Compiler.UnitTests/FSharp.Compiler.UnitTests.fsproj
index 915332ac4..b0064bd9d 100644
--- a/tests/FSharp.Compiler.UnitTests/FSharp.Compiler.UnitTests.fsproj
+++ b/tests/FSharp.Compiler.UnitTests/FSharp.Compiler.UnitTests.fsproj
@@ -3,8 +3,8 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
- <TargetFrameworks>net472;net8.0</TargetFrameworks>
- <TargetFrameworks Condition="'$(OS)' == 'Unix' or '$(BUILDING_USING_DOTNET)' == 'true'">net8.0</TargetFrameworks>
+ <TargetFrameworks>net472;net9.0</TargetFrameworks>
+ <TargetFrameworks Condition="'$(OS)' == 'Unix' or '$(BUILDING_USING_DOTNET)' == 'true'">net9.0</TargetFrameworks>
<OutputType>Library</OutputType>
<DisableImplicitFSharpCoreReference>true</DisableImplicitFSharpCoreReference>
<DefineConstants>$(DefineConstants);ASSUME_PREVIEW_FSHARP_CORE</DefineConstants>
diff --git a/tests/FSharp.Core.UnitTests/FSharp.Core.UnitTests.fsproj b/tests/FSharp.Core.UnitTests/FSharp.Core.UnitTests.fsproj
index 4b6c5c534..1b20371c4 100644
--- a/tests/FSharp.Core.UnitTests/FSharp.Core.UnitTests.fsproj
+++ b/tests/FSharp.Core.UnitTests/FSharp.Core.UnitTests.fsproj
@@ -3,8 +3,8 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
- <TargetFrameworks>net8.0;net472</TargetFrameworks>
- <TargetFrameworks Condition="'$(OS)' == 'Unix'">net8.0</TargetFrameworks>
+ <TargetFrameworks>net9.0;net472</TargetFrameworks>
+ <TargetFrameworks Condition="'$(OS)' == 'Unix'">net9.0</TargetFrameworks>
<OutputType>Library</OutputType>
<AssemblyName>FSharp.Core.UnitTests</AssemblyName>
diff --git a/tests/FSharp.Test.Utilities/FSharp.Test.Utilities.fsproj b/tests/FSharp.Test.Utilities/FSharp.Test.Utilities.fsproj
index 03a4d4870..fbbda1930 100644
--- a/tests/FSharp.Test.Utilities/FSharp.Test.Utilities.fsproj
+++ b/tests/FSharp.Test.Utilities/FSharp.Test.Utilities.fsproj
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
- <TargetFrameworks Condition="'$(OS)' != 'Unix'">net472;net8.0</TargetFrameworks>
- <TargetFrameworks Condition="'$(OS)' == 'Unix' or '$(BUILDING_USING_DOTNET)' == 'true'">net8.0</TargetFrameworks>
+ <TargetFrameworks Condition="'$(OS)' != 'Unix'">net472;net9.0</TargetFrameworks>
+ <TargetFrameworks Condition="'$(OS)' == 'Unix' or '$(BUILDING_USING_DOTNET)' == 'true'">net9.0</TargetFrameworks>
<RuntimeIdentifiers>win-x86;win-x64;linux-x64;osx-x64</RuntimeIdentifiers>
<AssetTargetFallback>$(AssetTargetFallback);portable-net45+win8+wp8+wpa81</AssetTargetFallback>
<ReferenceVsAssemblies>true</ReferenceVsAssemblies>
diff --git a/tests/benchmarks/CompiledCodeBenchmarks/MicroPerf/MicroPerf.fsproj b/tests/benchmarks/CompiledCodeBenchmarks/MicroPerf/MicroPerf.fsproj
index 81866aa56..046bebf83 100644
--- a/tests/benchmarks/CompiledCodeBenchmarks/MicroPerf/MicroPerf.fsproj
+++ b/tests/benchmarks/CompiledCodeBenchmarks/MicroPerf/MicroPerf.fsproj
@@ -1,6 +1,6 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
- <TargetFramework>net8.0</TargetFramework>
+ <TargetFramework>net9.0</TargetFramework>
<OutputType>Exe</OutputType>
<!-- Workaround to get rid of:
error NU1505: Duplicate 'PackageDownload' items found.
diff --git a/tests/benchmarks/CompiledCodeBenchmarks/TaskPerf/TaskPerf/TaskPerf.fsproj b/tests/benchmarks/CompiledCodeBenchmarks/TaskPerf/TaskPerf/TaskPerf.fsproj
index 4d29d42c5..5c89a5fff 100644
--- a/tests/benchmarks/CompiledCodeBenchmarks/TaskPerf/TaskPerf/TaskPerf.fsproj
+++ b/tests/benchmarks/CompiledCodeBenchmarks/TaskPerf/TaskPerf/TaskPerf.fsproj
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
- <TargetFramework>net8.0</TargetFramework>
+ <TargetFramework>net9.0</TargetFramework>
<OutputType>Exe</OutputType>
<!-- Workaround to get rid of:
error NU1505: Duplicate 'PackageDownload' items found.
diff --git a/tests/benchmarks/CompiledCodeBenchmarks/TaskPerf/TaskPerfPreviousCompiler/TaskPerfPreviousCompiler.fsproj b/tests/benchmarks/CompiledCodeBenchmarks/TaskPerf/TaskPerfPreviousCompiler/TaskPerfPreviousCompiler.fsproj
index b71c47ac8..66b708e7a 100644
--- a/tests/benchmarks/CompiledCodeBenchmarks/TaskPerf/TaskPerfPreviousCompiler/TaskPerfPreviousCompiler.fsproj
+++ b/tests/benchmarks/CompiledCodeBenchmarks/TaskPerf/TaskPerfPreviousCompiler/TaskPerfPreviousCompiler.fsproj
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
- <TargetFramework>net8.0</TargetFramework>
+ <TargetFramework>net9.0</TargetFramework>
<OutputType>Exe</OutputType>
<DisableImplicitFSharpCoreReference>true</DisableImplicitFSharpCoreReference>
<OtherFlags>$(OtherFlags) --define:ASYNC_PERF</OtherFlags>
diff --git a/tests/benchmarks/FCSBenchmarks/BenchmarkComparison/HistoricalBenchmark.Runner/HistoricalBenchmark.Runner.fsproj b/tests/benchmarks/FCSBenchmarks/BenchmarkComparison/HistoricalBenchmark.Runner/HistoricalBenchmark.Runner.fsproj
index 13add7032..4bbae272f 100644
--- a/tests/benchmarks/FCSBenchmarks/BenchmarkComparison/HistoricalBenchmark.Runner/HistoricalBenchmark.Runner.fsproj
+++ b/tests/benchmarks/FCSBenchmarks/BenchmarkComparison/HistoricalBenchmark.Runner/HistoricalBenchmark.Runner.fsproj
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
- <TargetFramework>net8.0</TargetFramework>
+ <TargetFramework>net9.0</TargetFramework>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<RootNamespace>HistoricalBenchmark.Utilities</RootNamespace>
</PropertyGroup>
diff --git a/tests/benchmarks/FCSBenchmarks/BenchmarkComparison/HistoricalBenchmark.fsproj b/tests/benchmarks/FCSBenchmarks/BenchmarkComparison/HistoricalBenchmark.fsproj
index a477f61af..7b030bbd0 100644
--- a/tests/benchmarks/FCSBenchmarks/BenchmarkComparison/HistoricalBenchmark.fsproj
+++ b/tests/benchmarks/FCSBenchmarks/BenchmarkComparison/HistoricalBenchmark.fsproj
@@ -2,7 +2,7 @@
<PropertyGroup>
<OutputType>Exe</OutputType>
- <TargetFramework>net8.0</TargetFramework>
+ <TargetFramework>net9.0</TargetFramework>
<DisableImplicitFSharpCoreReference>true</DisableImplicitFSharpCoreReference>
<Configurations>Release</Configurations>
<!-- Workaround to get rid of:
diff --git a/tests/benchmarks/FCSBenchmarks/CompilerServiceBenchmarks/FSharp.Compiler.Benchmarks.fsproj b/tests/benchmarks/FCSBenchmarks/CompilerServiceBenchmarks/FSharp.Compiler.Benchmarks.fsproj
index a8c8ff31b..d5c54252f 100644
--- a/tests/benchmarks/FCSBenchmarks/CompilerServiceBenchmarks/FSharp.Compiler.Benchmarks.fsproj
+++ b/tests/benchmarks/FCSBenchmarks/CompilerServiceBenchmarks/FSharp.Compiler.Benchmarks.fsproj
@@ -2,7 +2,7 @@
<PropertyGroup>
<OutputType>Exe</OutputType>
- <TargetFramework>net8.0</TargetFramework>
+ <TargetFramework>net9.0</TargetFramework>
<DisableImplicitFSharpCoreReference>true</DisableImplicitFSharpCoreReference>
<!-- Workaround to get rid of:
error NU1505: Duplicate 'PackageDownload' items found.
diff --git a/tests/benchmarks/FCSBenchmarks/FCSSourceFiles/FCSSourceFiles.fsproj b/tests/benchmarks/FCSBenchmarks/FCSSourceFiles/FCSSourceFiles.fsproj
index 5f0d38af2..ef367627e 100644
--- a/tests/benchmarks/FCSBenchmarks/FCSSourceFiles/FCSSourceFiles.fsproj
+++ b/tests/benchmarks/FCSBenchmarks/FCSSourceFiles/FCSSourceFiles.fsproj
@@ -2,7 +2,7 @@
<PropertyGroup>
<OutputType>Exe</OutputType>
- <TargetFramework>net8.0</TargetFramework>
+ <TargetFramework>net9.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
diff --git a/tests/benchmarks/Fsharp.ProfilingStartpointProject/Fsharp.ProfilingStartpointProject.fsproj b/tests/benchmarks/Fsharp.ProfilingStartpointProject/Fsharp.ProfilingStartpointProject.fsproj
index 6cb9e4bd7..1ab60ffd4 100644
--- a/tests/benchmarks/Fsharp.ProfilingStartpointProject/Fsharp.ProfilingStartpointProject.fsproj
+++ b/tests/benchmarks/Fsharp.ProfilingStartpointProject/Fsharp.ProfilingStartpointProject.fsproj
@@ -2,7 +2,7 @@
<PropertyGroup>
<OutputType>Exe</OutputType>
- <TargetFramework>net8.0</TargetFramework>
+ <TargetFramework>net9.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
diff --git a/tests/fsharp/FSharpSuite.Tests.fsproj b/tests/fsharp/FSharpSuite.Tests.fsproj
index b6d69d8ae..fff42ac08 100644
--- a/tests/fsharp/FSharpSuite.Tests.fsproj
+++ b/tests/fsharp/FSharpSuite.Tests.fsproj
@@ -2,8 +2,8 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
- <TargetFrameworks>net472;net8.0</TargetFrameworks>
- <TargetFrameworks Condition="'$(OS)' == 'Unix'">net8.0</TargetFrameworks>
+ <TargetFrameworks>net472;net9.0</TargetFrameworks>
+ <TargetFrameworks Condition="'$(OS)' == 'Unix'">net9.0</TargetFrameworks>
<RuntimeIdentifiers>win-x86;win-x64</RuntimeIdentifiers>
<AssetTargetFallback>$(AssetTargetFallback);portable-net45+win8+wp8+wpa81</AssetTargetFallback>
<ReferenceVsAssemblies>true</ReferenceVsAssemblies>
diff --git a/tests/projects/Sample_ConsoleApp_FileSystemTests/Sample_ConsoleApp_net7.fsproj b/tests/projects/Sample_ConsoleApp_FileSystemTests/Sample_ConsoleApp_net7.fsproj
index 13d42aeb2..36be65589 100644
--- a/tests/projects/Sample_ConsoleApp_FileSystemTests/Sample_ConsoleApp_net7.fsproj
+++ b/tests/projects/Sample_ConsoleApp_FileSystemTests/Sample_ConsoleApp_net7.fsproj
@@ -2,13 +2,13 @@
<PropertyGroup>
<OutputType>Exe</OutputType>
- <TargetFramework>net8.0</TargetFramework>
+ <TargetFramework>net9.0</TargetFramework>
<DisableImplicitFSharpCoreReference>true</DisableImplicitFSharpCoreReference>
</PropertyGroup>
<PropertyGroup>
- <DotnetFscCompilerPath>$(MSBuildThisFileDirectory)../../../artifacts/bin/fsc/Debug/net8.0/fsc.dll</DotnetFscCompilerPath>
- <Fsc_DotNET_DotnetFscCompilerPath>$(MSBuildThisFileDirectory)../../../artifacts/bin/fsc/Debug/net8.0/fsc.dll</Fsc_DotNET_DotnetFscCompilerPath>
+ <DotnetFscCompilerPath>$(MSBuildThisFileDirectory)../../../artifacts/bin/fsc/Debug/net9.0/fsc.dll</DotnetFscCompilerPath>
+ <Fsc_DotNET_DotnetFscCompilerPath>$(MSBuildThisFileDirectory)../../../artifacts/bin/fsc/Debug/net9.0/fsc.dll</Fsc_DotNET_DotnetFscCompilerPath>
<FSharpPreferNetFrameworkTools>False</FSharpPreferNetFrameworkTools>
<FSharpPrefer64BitTools>True</FSharpPrefer64BitTools>
</PropertyGroup>
diff --git a/tests/projects/Sample_ConsoleApp_net7/Sample_ConsoleApp_net7.fsproj b/tests/projects/Sample_ConsoleApp_net7/Sample_ConsoleApp_net7.fsproj
index bf06c1ce7..fe9ed811d 100644
--- a/tests/projects/Sample_ConsoleApp_net7/Sample_ConsoleApp_net7.fsproj
+++ b/tests/projects/Sample_ConsoleApp_net7/Sample_ConsoleApp_net7.fsproj
@@ -2,13 +2,13 @@
<PropertyGroup>
<OutputType>Exe</OutputType>
- <TargetFramework>net8.0</TargetFramework>
+ <TargetFramework>net9.0</TargetFramework>
<LangVersion>preview</LangVersion>
</PropertyGroup>
<PropertyGroup>
- <DotnetFscCompilerPath>$(MSBuildThisFileDirectory)../../../artifacts/bin/fsc/Debug/net8.0/fsc.dll</DotnetFscCompilerPath>
- <Fsc_DotNET_DotnetFscCompilerPath>$(MSBuildThisFileDirectory)../../../artifacts/bin/fsc/Debug/net8.0/fsc.dll</Fsc_DotNET_DotnetFscCompilerPath>
+ <DotnetFscCompilerPath>$(MSBuildThisFileDirectory)../../../artifacts/bin/fsc/Debug/net9.0/fsc.dll</DotnetFscCompilerPath>
+ <Fsc_DotNET_DotnetFscCompilerPath>$(MSBuildThisFileDirectory)../../../artifacts/bin/fsc/Debug/net9.0/fsc.dll</Fsc_DotNET_DotnetFscCompilerPath>
<FSharpPreferNetFrameworkTools>False</FSharpPreferNetFrameworkTools>
<FSharpPrefer64BitTools>True</FSharpPrefer64BitTools>
</PropertyGroup>

View file

@ -0,0 +1,23 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Matt Thalman <mthalman@microsoft.com>
Date: Wed, 18 Oct 2023 10:58:11 -0500
Subject: [PATCH] Explicitly set net9.0 TFM
Backport: https://github.com/dotnet/source-build/issues/3663
---
Directory.Build.props | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Directory.Build.props b/Directory.Build.props
index bf6754f23..d76f449be 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -66,7 +66,7 @@
-->
<When Condition="'$(DotNetBuildFromSource)' == 'true' AND '$(DotNetBuildFromSourceFlavor)' == 'Product'">
<PropertyGroup>
- <DefaultNetCoreTargetFramework>$(NetCurrent)</DefaultNetCoreTargetFramework>
+ <DefaultNetCoreTargetFramework>net9.0</DefaultNetCoreTargetFramework>
<DefaultNetCoreTargetFrameworks>$(DefaultNetCoreTargetFramework)</DefaultNetCoreTargetFrameworks>
</PropertyGroup>
</When>

View file

@ -0,0 +1,50 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Matt Thalman <mthalman@microsoft.com>
Date: Thu, 19 Oct 2023 08:52:35 -0500
Subject: [PATCH] Use net9.0 for tool dependencies
Backport: https://github.com/dotnet/source-build/issues/3663
---
src/Layout/redist/targets/GenerateLayout.targets | 8 ++++----
src/Layout/tool_fsharp/tool_fsc.csproj | 2 +-
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/src/Layout/redist/targets/GenerateLayout.targets b/src/Layout/redist/targets/GenerateLayout.targets
index eab01ef144..922b959531 100644
--- a/src/Layout/redist/targets/GenerateLayout.targets
+++ b/src/Layout/redist/targets/GenerateLayout.targets
@@ -112,9 +112,9 @@
</PropertyGroup>
<ItemGroup>
- <DotnetFormatDllFiles Include="$(Pkgdotnet-format)/tools/net8.0/any/**/*.dll" />
- <DotnetFormatConfigFiles Include="$(Pkgdotnet-format)/tools/net8.0/any/**/*.json" />
- <DotnetFormatConfigFiles Include="$(Pkgdotnet-format)/tools/net8.0/any/**/*.config" />
+ <DotnetFormatDllFiles Include="$(Pkgdotnet-format)/tools/net9.0/any/**/*.dll" />
+ <DotnetFormatConfigFiles Include="$(Pkgdotnet-format)/tools/net9.0/any/**/*.json" />
+ <DotnetFormatConfigFiles Include="$(Pkgdotnet-format)/tools/net9.0/any/**/*.config" />
</ItemGroup>
<Error Condition="'@(DotnetFormatDllFiles)' == ''" Text="Something moved around in dotnet-format package, adjust code here accordingly. TFM change?" />
@@ -178,7 +178,7 @@
BeforeTargets="Build">
<PropertyGroup>
<TestCliNuGetDirectoryTargetFramework Condition="'$(DotNetBuildFromSource)' != 'true'" >netcoreapp3.1</TestCliNuGetDirectoryTargetFramework>
- <TestCliNuGetDirectoryTargetFramework Condition="'$(DotNetBuildFromSource)' == 'true'" >net8.0</TestCliNuGetDirectoryTargetFramework>
+ <TestCliNuGetDirectoryTargetFramework Condition="'$(DotNetBuildFromSource)' == 'true'" >net9.0</TestCliNuGetDirectoryTargetFramework>
<TestCliNuGetDirectory>$(NuGetPackageRoot)/microsoft.testplatform.cli/$(MicrosoftTestPlatformCLIPackageVersion)/contentFiles/any/$(TestCliNuGetDirectoryTargetFramework)/</TestCliNuGetDirectory>
</PropertyGroup>
<ItemGroup>
diff --git a/src/Layout/tool_fsharp/tool_fsc.csproj b/src/Layout/tool_fsharp/tool_fsc.csproj
index adb50eed03..530c3a546b 100644
--- a/src/Layout/tool_fsharp/tool_fsc.csproj
+++ b/src/Layout/tool_fsharp/tool_fsc.csproj
@@ -20,7 +20,7 @@
</PropertyGroup>
<ItemGroup>
<ResolvedFileToPublish
- Include="$(PkgMicrosoft_FSharp_Compiler)/lib/net8.0/FSharp.Core.xml"
+ Include="$(PkgMicrosoft_FSharp_Compiler)/lib/net9.0/FSharp.Core.xml"
CopyToPublishDirectory="PreserveNewest"
DestinationSubPath="FSharp.Core.xml"
RelativePath="FSharp.Core.xml"

View file

@ -0,0 +1,51 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Matt Thalman <mthalman@microsoft.com>
Date: Thu, 19 Oct 2023 08:29:45 -0500
Subject: [PATCH] Explicitly use net9.0 TFM
Backport: https://github.com/dotnet/source-build/issues/3663
---
Directory.Build.targets | 2 +-
.../Microsoft.TestPlatform.Build.csproj | 2 +-
.../Microsoft.TestPlatform.CLI.csproj | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/Directory.Build.targets b/Directory.Build.targets
index b720568b..617ca4fc 100644
--- a/Directory.Build.targets
+++ b/Directory.Build.targets
@@ -6,7 +6,7 @@
<!-- Source build properties -->
<PropertyGroup Condition=" '$(DotNetBuildFromSource)' == 'true' ">
<!-- Force setting TargetFrameworks to net7.0 only if it was set -->
- <TargetFrameworks Condition=" '$(TargetFrameworks)' != '' ">$(NetCurrent)</TargetFrameworks>
+ <TargetFrameworks Condition=" '$(TargetFrameworks)' != '' ">net9.0</TargetFrameworks>
<!-- Force setting TargetFramework to net7.0 only if it was set -->
<TargetFramework Condition=" '$(TargetFramework)' != '' ">$(NetCurrent)</TargetFramework>
</PropertyGroup>
diff --git a/src/Microsoft.TestPlatform.Build/Microsoft.TestPlatform.Build.csproj b/src/Microsoft.TestPlatform.Build/Microsoft.TestPlatform.Build.csproj
index a93852ce..945b1ac2 100644
--- a/src/Microsoft.TestPlatform.Build/Microsoft.TestPlatform.Build.csproj
+++ b/src/Microsoft.TestPlatform.Build/Microsoft.TestPlatform.Build.csproj
@@ -12,7 +12,7 @@
<Choose>
<When Condition=" '$(DotNetBuildFromSource)' == 'true' ">
<PropertyGroup>
- <Tfm>$(NetCurrent)</Tfm>
+ <Tfm>net9.0</Tfm>
</PropertyGroup>
</When>
<Otherwise>
diff --git a/src/package/Microsoft.TestPlatform.CLI/Microsoft.TestPlatform.CLI.csproj b/src/package/Microsoft.TestPlatform.CLI/Microsoft.TestPlatform.CLI.csproj
index b8f6849b..b56b993c 100644
--- a/src/package/Microsoft.TestPlatform.CLI/Microsoft.TestPlatform.CLI.csproj
+++ b/src/package/Microsoft.TestPlatform.CLI/Microsoft.TestPlatform.CLI.csproj
@@ -31,7 +31,7 @@
<ItemGroup Label="NuGet">
<NuspecProperty Include="SrcPackageFolder=$(SrcPackageFolder)" />
<NuspecProperty Include="TesthostRuntimeconfig=$(RepoRoot)temp\testhost" />
- <NuspecProperty Include="SourceBuildTfm=$(NetCurrent)" />
+ <NuspecProperty Include="SourceBuildTfm=net9.0" />
</ItemGroup>
<PropertyGroup>

View file

@ -37,13 +37,15 @@
no that we do not silently miss cross-genning some bits. When a TFM for a tool is updated,
update its path explicitly. If all TFMs match, update DefaultToolTfm -->
<PropertyGroup>
<DefaultToolTfm>net8.0</DefaultToolTfm>
<DefaultToolTfm>net9.0</DefaultToolTfm>
<!-- Windows Desktop hasn't updated to target 9.0 yet-->
<PreviousToolTfm>net8.0</PreviousToolTfm>
<NetSdkTools>$(SdkOutputDirectory)Sdks\Microsoft.NET.Sdk\tools\$(DefaultToolTfm)\</NetSdkTools>
<BlazorWasmTools>$(SdkOutputDirectory)Sdks\Microsoft.NET.Sdk.BlazorWebAssembly\tools\$(DefaultToolTfm)\</BlazorWasmTools>
<NuGetPackTools>$(SdkOutputDirectory)Sdks\NuGet.Build.Tasks.Pack\CoreCLR\</NuGetPackTools>
<RazorTasks>$(SdkOutputDirectory)Sdks\Microsoft.NET.Sdk.Razor\tasks\$(DefaultToolTfm)\</RazorTasks>
<WindowsDesktopTools>$(SdkOutputDirectory)Sdks\Microsoft.NET.Sdk.WindowsDesktop\tools\$(DefaultToolTfm)\</WindowsDesktopTools>
<WindowsDesktopTools>$(SdkOutputDirectory)Sdks\Microsoft.NET.Sdk.WindowsDesktop\tools\$(PreviousToolTfm)\</WindowsDesktopTools>
<PublishTools>$(SdkOutputDirectory)Sdks\Microsoft.NET.Sdk.Publish\tools\$(DefaultToolTfm)\</PublishTools>
<WebTools>$(SdkOutputDirectory)Sdks\Microsoft.NET.Sdk.Web\tools\$(DefaultToolTfm)\</WebTools>
<ProjectSystemTools>$(SdkOutputDirectory)Sdks\Microsoft.NET.Sdk.Web.ProjectSystem\tools\$(DefaultToolTfm)\</ProjectSystemTools>

View file

@ -106,7 +106,6 @@
<_NET70RuntimePackVersion>7.0.$(VersionFeature70)</_NET70RuntimePackVersion>
<_NET70TargetingPackVersion>7.0.$(VersionFeature70)</_NET70TargetingPackVersion>
<_NET70WebAssemblyPackVersion>7.0.$(VersionFeature70)</_NET70WebAssemblyPackVersion>
<_WindowsDesktop70RuntimePackVersion>7.0.$(VersionFeature70)</_WindowsDesktop70RuntimePackVersion>
<_WindowsDesktop70TargetingPackVersion>7.0.$(VersionFeature70)</_WindowsDesktop70TargetingPackVersion>
<_AspNet70RuntimePackVersion>7.0.$(VersionFeature70)</_AspNet70RuntimePackVersion>
@ -335,16 +334,16 @@
win-x64;
" />
<Net80ILCompilerSupportedRids Include="@(Net70ILCompilerSupportedRids)" />
<!-- The subset of ILCompiler target RIDs that are officially supported. Should be a subset of
https://github.com/dotnet/runtime/blob/main/src/installer/pkg/projects/Microsoft.DotNet.ILCompiler/ILCompilerRIDs.props -->
<ILCompilerSupportedRids Include="
@(Net80ILCompilerSupportedRids);
<Net80ILCompilerSupportedRids Include="
@(Net70ILCompilerSupportedRids);
osx-x64;
osx-arm64;
" />
<ILCompilerSupportedRids Include="@(Net80ILCompilerSupportedRids)" />
<NativeAOTRuntimePackRids Include="
ios-arm64;
iossimulator-arm64;
@ -735,7 +734,7 @@ Copyright (c) .NET Foundation. All rights reserved.
<KnownWebAssemblySdkPack Include="Microsoft.NET.Sdk.WebAssembly.Pack"
TargetFramework="net7.0"
WebAssemblySdkPackVersion="$(_NET70WebAssemblyPackVersion)" />
WebAssemblySdkPackVersion="$(_NET80WebAssemblyPackVersion)" />
<KnownRuntimePack Include="Microsoft.NETCore.App"
TargetFramework="net7.0"
@ -829,7 +828,7 @@ Copyright (c) .NET Foundation. All rights reserved.
<KnownWebAssemblySdkPack Include="Microsoft.NET.Sdk.WebAssembly.Pack"
TargetFramework="net6.0"
WebAssemblySdkPackVersion="$(_NET70WebAssemblyPackVersion)" />
WebAssemblySdkPackVersion="$(_NET80WebAssemblyPackVersion)" />
<KnownRuntimePack Include="Microsoft.NETCore.App"
TargetFramework="net6.0"

View file

@ -213,16 +213,16 @@ namespace EndToEnd.Tests
string expectedOutput =
@"[\-\s]+
[\w \.]+webapp,razor\s+\[C#\][\w\ \/]+
[\w \.]+classlib\s+\[C#\],F#,VB[\w\ \/]+
[\w \.]+console\s+\[C#\],F#,VB[\w\ \/]+
[\w \.\(\)]+webapp,razor\s+\[C#\][\w\ \/]+
[\w \.\(\)]+classlib\s+\[C#\],F#,VB[\w\ \/]+
[\w \.\(\)]+console\s+\[C#\],F#,VB[\w\ \/]+
";
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
{
expectedOutput +=
@"[\w \.]+winforms\s+\[C#\],VB[\w\ \/]+
[\w \.]+\wpf\s+\[C#\],VB[\w\ \/]+
@"[\w \.\(\)]+winforms\s+\[C#\],VB[\w\ \/]+
[\w \.\(\)]+\wpf\s+\[C#\],VB[\w\ \/]+
";
}
//list should end with new line

View file

@ -5,7 +5,7 @@
<ItemGroup>
<PackageReference Include="FluentAssertions" Version="4.18.0" />
<PackageReference Include="xunit" Version="2.4.2" />
<PackageReference Include="xunit" Version="$(XUnitVersion)" />
<PackageReference Include="Microsoft.DotNet.Cli.Utils" Version="$(MicrosoftDotNetCliUtilsPackageVersion)" />
<PackageReference Include="System.Net.Http" Version="4.3.4" />
<PackageReference Include="System.Security.Cryptography.X509Certificates" Version="4.3.2" />