From 168f4e10367c9b78efbfb149b452dbb8557069bc Mon Sep 17 00:00:00 2001
From: "dotnet-maestro[bot]" <dotnet-maestro[bot]@users.noreply.github.com>
Date: Fri, 17 Jun 2022 12:46:06 +0000
Subject: [PATCH 01/34] Update dependencies from
 https://github.com/dotnet/arcade build 20220616.2

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 7.0.0-beta.22314.8 -> To Version 7.0.0-beta.22316.2
---
 eng/Version.Details.xml | 8 ++++----
 global.json             | 4 ++--
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index 4ae6fae66..24300a5ac 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -3,13 +3,13 @@
   <ProductDependencies>
   </ProductDependencies>
   <ToolsetDependencies>
-    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22314.8">
+    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22316.2">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>696eeede14b91aebe0069dc2e4a91cf594d2073e</Sha>
+      <Sha>ccfe6da198c5f05534863bbb1bff66e830e0c6ab</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22314.8">
+    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22316.2">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>696eeede14b91aebe0069dc2e4a91cf594d2073e</Sha>
+      <Sha>ccfe6da198c5f05534863bbb1bff66e830e0c6ab</Sha>
     </Dependency>
   </ToolsetDependencies>
 </Dependencies>
diff --git a/global.json b/global.json
index dfc96865d..646e688c4 100644
--- a/global.json
+++ b/global.json
@@ -6,7 +6,7 @@
     "xcopy-msbuild": "16.8.0-preview2.1"
   },
   "msbuild-sdks": {
-    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22314.8",
-    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22314.8"
+    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22316.2",
+    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22316.2"
   }
 }

From 106ed9acbc005b5e692fdf112fb059bbddfc9aae Mon Sep 17 00:00:00 2001
From: "dotnet-maestro[bot]" <dotnet-maestro[bot]@users.noreply.github.com>
Date: Wed, 22 Jun 2022 12:45:08 +0000
Subject: [PATCH 02/34] Update dependencies from
 https://github.com/dotnet/arcade build 20220620.8

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 7.0.0-beta.22314.8 -> To Version 7.0.0-beta.22320.8
---
 eng/Version.Details.xml                      |  8 ++++----
 eng/common/templates/steps/send-to-helix.yml | 10 +++++-----
 global.json                                  |  4 ++--
 3 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index 24300a5ac..6b46ed45c 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -3,13 +3,13 @@
   <ProductDependencies>
   </ProductDependencies>
   <ToolsetDependencies>
-    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22316.2">
+    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22320.8">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>ccfe6da198c5f05534863bbb1bff66e830e0c6ab</Sha>
+      <Sha>0429934b0c13fc3e6a990b482a7892bac0b76708</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22316.2">
+    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22320.8">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>ccfe6da198c5f05534863bbb1bff66e830e0c6ab</Sha>
+      <Sha>0429934b0c13fc3e6a990b482a7892bac0b76708</Sha>
     </Dependency>
   </ToolsetDependencies>
 </Dependencies>
diff --git a/eng/common/templates/steps/send-to-helix.yml b/eng/common/templates/steps/send-to-helix.yml
index 09a223989..3eb7e2d5f 100644
--- a/eng/common/templates/steps/send-to-helix.yml
+++ b/eng/common/templates/steps/send-to-helix.yml
@@ -3,7 +3,7 @@ parameters:
   HelixSource: 'pr/default'              # required -- sources must start with pr/, official/, prodcon/, or agent/
   HelixType: 'tests/default/'            # required -- Helix telemetry which identifies what type of data this is; should include "test" for clarity and must end in '/'
   HelixBuild: $(Build.BuildNumber)       # required -- the build number Helix will use to identify this -- automatically set to the AzDO build number
-  HelixTargetQueues: ''                  # required -- semicolon delimited list of Helix queues to test on; see https://helix.dot.net/ for a list of queues
+  HelixTargetQueues: ''                  # required -- semicolon-delimited list of Helix queues to test on; see https://helix.dot.net/ for a list of queues
   HelixAccessToken: ''                   # required -- access token to make Helix API requests; should be provided by the appropriate variable group
   HelixConfiguration: ''                 # optional -- additional property attached to a job
   HelixPreCommands: ''                   # optional -- commands to run before Helix work item execution
@@ -12,7 +12,7 @@ parameters:
   WorkItemCommand: ''                    # optional -- a command to execute on the payload; requires WorkItemDirectory; incompatible with XUnitProjects
   WorkItemTimeout: ''                    # optional -- a timeout in TimeSpan.Parse-ready value (e.g. 00:02:00) for the work item command; requires WorkItemDirectory; incompatible with XUnitProjects
   CorrelationPayloadDirectory: ''        # optional -- a directory to zip up and send to Helix as a correlation payload
-  XUnitProjects: ''                      # optional -- semicolon delimited list of XUnitProjects to parse and send to Helix; requires XUnitRuntimeTargetFramework, XUnitPublishTargetFramework, XUnitRunnerVersion, and IncludeDotNetCli=true
+  XUnitProjects: ''                      # optional -- semicolon-delimited list of XUnitProjects to parse and send to Helix; requires XUnitRuntimeTargetFramework, XUnitPublishTargetFramework, XUnitRunnerVersion, and IncludeDotNetCli=true
   XUnitWorkItemTimeout: ''               # optional -- the workitem timeout in seconds for all workitems created from the xUnit projects specified by XUnitProjects
   XUnitPublishTargetFramework: ''        # optional -- framework to use to publish your xUnit projects
   XUnitRuntimeTargetFramework: ''        # optional -- framework to use for the xUnit console runner
@@ -22,14 +22,14 @@ parameters:
   DotNetCliVersion: ''                   # optional -- version of the CLI to send to Helix; based on this: https://raw.githubusercontent.com/dotnet/core/main/release-notes/releases-index.json
   WaitForWorkItemCompletion: true        # optional -- true will make the task wait until work items have been completed and fail the build if work items fail. False is "fire and forget."
   IsExternal: false                      # [DEPRECATED] -- doesn't do anything, jobs are external if HelixAccessToken is empty and Creator is set
-  HelixBaseUri: 'https://helix.dot.net/' # optional -- sets the Helix API base URI (allows targeting int)
+  HelixBaseUri: 'https://helix.dot.net/' # optional -- sets the Helix API base URI (allows targeting https://helix.int-dot.net )
   Creator: ''                            # optional -- if the build is external, use this to specify who is sending the job
   DisplayNamePrefix: 'Run Tests'         # optional -- rename the beginning of the displayName of the steps in AzDO 
   condition: succeeded()                 # optional -- condition for step to execute; defaults to succeeded()
   continueOnError: false                 # optional -- determines whether to continue the build if the step errors; defaults to false
 
 steps:
-  - powershell: 'powershell "$env:BUILD_SOURCESDIRECTORY\eng\common\msbuild.ps1 $env:BUILD_SOURCESDIRECTORY\eng\common\helixpublish.proj /restore /t:Test /bl:$env:BUILD_SOURCESDIRECTORY\artifacts\log\$env:BuildConfig\SendToHelix.binlog"'
+  - powershell: 'powershell "$env:BUILD_SOURCESDIRECTORY\eng\common\msbuild.ps1 $env:BUILD_SOURCESDIRECTORY\eng\common\helixpublish.proj /restore /p:TreatWarningsAsErrors=false /t:Test /bl:$env:BUILD_SOURCESDIRECTORY\artifacts\log\$env:BuildConfig\SendToHelix.binlog"'
     displayName: ${{ parameters.DisplayNamePrefix }} (Windows)
     env:
       BuildConfig: $(_BuildConfig)
@@ -59,7 +59,7 @@ steps:
       SYSTEM_ACCESSTOKEN: $(System.AccessToken)
     condition: and(${{ parameters.condition }}, eq(variables['Agent.Os'], 'Windows_NT'))
     continueOnError: ${{ parameters.continueOnError }}
-  - script: $BUILD_SOURCESDIRECTORY/eng/common/msbuild.sh $BUILD_SOURCESDIRECTORY/eng/common/helixpublish.proj /restore /t:Test /bl:$BUILD_SOURCESDIRECTORY/artifacts/log/$BuildConfig/SendToHelix.binlog
+  - script: $BUILD_SOURCESDIRECTORY/eng/common/msbuild.sh $BUILD_SOURCESDIRECTORY/eng/common/helixpublish.proj /restore /p:TreatWarningsAsErrors=false /t:Test /bl:$BUILD_SOURCESDIRECTORY/artifacts/log/$BuildConfig/SendToHelix.binlog
     displayName: ${{ parameters.DisplayNamePrefix }} (Unix)
     env:
       BuildConfig: $(_BuildConfig)
diff --git a/global.json b/global.json
index 646e688c4..80065c26b 100644
--- a/global.json
+++ b/global.json
@@ -6,7 +6,7 @@
     "xcopy-msbuild": "16.8.0-preview2.1"
   },
   "msbuild-sdks": {
-    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22316.2",
-    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22316.2"
+    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22320.8",
+    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22320.8"
   }
 }

From 35e66c5dd1ff358c698c87f3ea5c5ea872683204 Mon Sep 17 00:00:00 2001
From: "dotnet-maestro[bot]" <dotnet-maestro[bot]@users.noreply.github.com>
Date: Thu, 23 Jun 2022 12:48:12 +0000
Subject: [PATCH 03/34] Update dependencies from
 https://github.com/dotnet/arcade build 20220622.3

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 7.0.0-beta.22314.8 -> To Version 7.0.0-beta.22322.3
---
 eng/Version.Details.xml | 8 ++++----
 global.json             | 4 ++--
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index 6b46ed45c..0c50f7845 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -3,13 +3,13 @@
   <ProductDependencies>
   </ProductDependencies>
   <ToolsetDependencies>
-    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22320.8">
+    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22322.3">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>0429934b0c13fc3e6a990b482a7892bac0b76708</Sha>
+      <Sha>eaa4673f2a82355f7cd2f1c1243578be2e961d0f</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22320.8">
+    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22322.3">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>0429934b0c13fc3e6a990b482a7892bac0b76708</Sha>
+      <Sha>eaa4673f2a82355f7cd2f1c1243578be2e961d0f</Sha>
     </Dependency>
   </ToolsetDependencies>
 </Dependencies>
diff --git a/global.json b/global.json
index 80065c26b..bda09ca7d 100644
--- a/global.json
+++ b/global.json
@@ -6,7 +6,7 @@
     "xcopy-msbuild": "16.8.0-preview2.1"
   },
   "msbuild-sdks": {
-    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22320.8",
-    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22320.8"
+    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22322.3",
+    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22322.3"
   }
 }

From 9131afdc850c89f05950cfc2932b664f7723cfe0 Mon Sep 17 00:00:00 2001
From: "dotnet-maestro[bot]" <dotnet-maestro[bot]@users.noreply.github.com>
Date: Fri, 24 Jun 2022 12:48:22 +0000
Subject: [PATCH 04/34] Update dependencies from
 https://github.com/dotnet/arcade build 20220623.2

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 7.0.0-beta.22314.8 -> To Version 7.0.0-beta.22323.2
---
 eng/Version.Details.xml | 8 ++++----
 eng/common/tools.ps1    | 2 +-
 eng/common/tools.sh     | 2 +-
 global.json             | 4 ++--
 4 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index 0c50f7845..5fa760adf 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -3,13 +3,13 @@
   <ProductDependencies>
   </ProductDependencies>
   <ToolsetDependencies>
-    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22322.3">
+    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22323.2">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>eaa4673f2a82355f7cd2f1c1243578be2e961d0f</Sha>
+      <Sha>9dbd4ef3347980e68875996239f3272efb85dd04</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22322.3">
+    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22323.2">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>eaa4673f2a82355f7cd2f1c1243578be2e961d0f</Sha>
+      <Sha>9dbd4ef3347980e68875996239f3272efb85dd04</Sha>
     </Dependency>
   </ToolsetDependencies>
 </Dependencies>
diff --git a/eng/common/tools.ps1 b/eng/common/tools.ps1
index 423bd962e..395b43eeb 100644
--- a/eng/common/tools.ps1
+++ b/eng/common/tools.ps1
@@ -573,7 +573,7 @@ function InitializeBuildTool() {
       ExitWithExitCode 1
     }
     $dotnetPath = Join-Path $dotnetRoot (GetExecutableFileName 'dotnet')
-    $buildTool = @{ Path = $dotnetPath; Command = 'msbuild'; Tool = 'dotnet'; Framework = 'netcoreapp3.1' }
+    $buildTool = @{ Path = $dotnetPath; Command = 'msbuild'; Tool = 'dotnet'; Framework = 'net7.0' }
   } elseif ($msbuildEngine -eq "vs") {
     try {
       $msbuildPath = InitializeVisualStudioMSBuild -install:$restore
diff --git a/eng/common/tools.sh b/eng/common/tools.sh
index 17f0a3658..c110d0ed4 100644
--- a/eng/common/tools.sh
+++ b/eng/common/tools.sh
@@ -312,7 +312,7 @@ function InitializeBuildTool {
   # return values
   _InitializeBuildTool="$_InitializeDotNetCli/dotnet"
   _InitializeBuildToolCommand="msbuild"
-  _InitializeBuildToolFramework="netcoreapp3.1"
+  _InitializeBuildToolFramework="net7.0"
 }
 
 # Set RestoreNoCache as a workaround for https://github.com/NuGet/Home/issues/3116
diff --git a/global.json b/global.json
index bda09ca7d..e4172095e 100644
--- a/global.json
+++ b/global.json
@@ -6,7 +6,7 @@
     "xcopy-msbuild": "16.8.0-preview2.1"
   },
   "msbuild-sdks": {
-    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22322.3",
-    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22322.3"
+    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22323.2",
+    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22323.2"
   }
 }

From 6059d246243b837352f4551f36ddf340e073b547 Mon Sep 17 00:00:00 2001
From: "dotnet-maestro[bot]" <dotnet-maestro[bot]@users.noreply.github.com>
Date: Sat, 25 Jun 2022 12:40:53 +0000
Subject: [PATCH 05/34] Update dependencies from
 https://github.com/dotnet/arcade build 20220624.1

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 7.0.0-beta.22314.8 -> To Version 7.0.0-beta.22324.1
---
 eng/Version.Details.xml | 8 ++++----
 global.json             | 4 ++--
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index 5fa760adf..5288f092d 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -3,13 +3,13 @@
   <ProductDependencies>
   </ProductDependencies>
   <ToolsetDependencies>
-    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22323.2">
+    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22324.1">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>9dbd4ef3347980e68875996239f3272efb85dd04</Sha>
+      <Sha>d4623961318d0d6e013389bb9f1269492b5384b0</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22323.2">
+    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22324.1">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>9dbd4ef3347980e68875996239f3272efb85dd04</Sha>
+      <Sha>d4623961318d0d6e013389bb9f1269492b5384b0</Sha>
     </Dependency>
   </ToolsetDependencies>
 </Dependencies>
diff --git a/global.json b/global.json
index e4172095e..1ee4c8d77 100644
--- a/global.json
+++ b/global.json
@@ -6,7 +6,7 @@
     "xcopy-msbuild": "16.8.0-preview2.1"
   },
   "msbuild-sdks": {
-    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22323.2",
-    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22323.2"
+    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22324.1",
+    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22324.1"
   }
 }

From eebac9f123adee72315715a456ea6ac2b01f1a9b Mon Sep 17 00:00:00 2001
From: "dotnet-maestro[bot]" <dotnet-maestro[bot]@users.noreply.github.com>
Date: Mon, 27 Jun 2022 12:44:52 +0000
Subject: [PATCH 06/34] Update dependencies from
 https://github.com/dotnet/arcade build 20220627.1

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 7.0.0-beta.22314.8 -> To Version 7.0.0-beta.22327.1
---
 eng/Version.Details.xml | 8 ++++----
 global.json             | 4 ++--
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index 5288f092d..987f51819 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -3,13 +3,13 @@
   <ProductDependencies>
   </ProductDependencies>
   <ToolsetDependencies>
-    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22324.1">
+    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22327.1">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>d4623961318d0d6e013389bb9f1269492b5384b0</Sha>
+      <Sha>640c1cc2a140b322c4f30f6d6b85f35f0c4c7313</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22324.1">
+    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22327.1">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>d4623961318d0d6e013389bb9f1269492b5384b0</Sha>
+      <Sha>640c1cc2a140b322c4f30f6d6b85f35f0c4c7313</Sha>
     </Dependency>
   </ToolsetDependencies>
 </Dependencies>
diff --git a/global.json b/global.json
index 1ee4c8d77..74785867f 100644
--- a/global.json
+++ b/global.json
@@ -6,7 +6,7 @@
     "xcopy-msbuild": "16.8.0-preview2.1"
   },
   "msbuild-sdks": {
-    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22324.1",
-    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22324.1"
+    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22327.1",
+    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22327.1"
   }
 }

From e0be40764648067efefe9ef1b905544c384275b3 Mon Sep 17 00:00:00 2001
From: "dotnet-maestro[bot]" <dotnet-maestro[bot]@users.noreply.github.com>
Date: Tue, 28 Jun 2022 12:44:30 +0000
Subject: [PATCH 07/34] Update dependencies from
 https://github.com/dotnet/arcade build 20220627.2

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 7.0.0-beta.22314.8 -> To Version 7.0.0-beta.22327.2
---
 eng/Version.Details.xml | 8 ++++----
 global.json             | 4 ++--
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index 987f51819..345db29dd 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -3,13 +3,13 @@
   <ProductDependencies>
   </ProductDependencies>
   <ToolsetDependencies>
-    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22327.1">
+    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22327.2">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>640c1cc2a140b322c4f30f6d6b85f35f0c4c7313</Sha>
+      <Sha>a264eb13fea14125f3ef8d4056586cd66fa55309</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22327.1">
+    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22327.2">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>640c1cc2a140b322c4f30f6d6b85f35f0c4c7313</Sha>
+      <Sha>a264eb13fea14125f3ef8d4056586cd66fa55309</Sha>
     </Dependency>
   </ToolsetDependencies>
 </Dependencies>
diff --git a/global.json b/global.json
index 74785867f..87e23a26d 100644
--- a/global.json
+++ b/global.json
@@ -6,7 +6,7 @@
     "xcopy-msbuild": "16.8.0-preview2.1"
   },
   "msbuild-sdks": {
-    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22327.1",
-    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22327.1"
+    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22327.2",
+    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22327.2"
   }
 }

From 725756c1a50eb125d084c449f1542fa86f70fea5 Mon Sep 17 00:00:00 2001
From: "dotnet-maestro[bot]" <dotnet-maestro[bot]@users.noreply.github.com>
Date: Tue, 5 Jul 2022 12:45:29 +0000
Subject: [PATCH 08/34] Update dependencies from
 https://github.com/dotnet/arcade build 20220704.1

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 7.0.0-beta.22314.8 -> To Version 7.0.0-beta.22354.1
---
 eng/Version.Details.xml          | 8 ++++----
 eng/common/init-tools-native.ps1 | 4 +++-
 eng/common/tools.ps1             | 2 +-
 global.json                      | 4 ++--
 4 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index 345db29dd..3248e857c 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -3,13 +3,13 @@
   <ProductDependencies>
   </ProductDependencies>
   <ToolsetDependencies>
-    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22327.2">
+    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22354.1">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>a264eb13fea14125f3ef8d4056586cd66fa55309</Sha>
+      <Sha>66cb5f1f50059cbafe25d1b75a1adbbced840d85</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22327.2">
+    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22354.1">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>a264eb13fea14125f3ef8d4056586cd66fa55309</Sha>
+      <Sha>66cb5f1f50059cbafe25d1b75a1adbbced840d85</Sha>
     </Dependency>
   </ToolsetDependencies>
 </Dependencies>
diff --git a/eng/common/init-tools-native.ps1 b/eng/common/init-tools-native.ps1
index 24a5e65de..8d48ec568 100644
--- a/eng/common/init-tools-native.ps1
+++ b/eng/common/init-tools-native.ps1
@@ -87,6 +87,7 @@ try {
         $NativeTools.PSObject.Properties | ForEach-Object {
           $ToolName = $_.Name
           $ToolVersion = $_.Value
+          $InstalledTools = @{}
 
           if ((Get-Command "$ToolName" -ErrorAction SilentlyContinue) -eq $null) {
             if ($ToolVersion -eq "latest") {
@@ -111,9 +112,10 @@ try {
             $ToolPath = Convert-Path -Path $BinPath
             Write-Host "Adding $ToolName to the path ($ToolPath)..."
             Write-Host "##vso[task.prependpath]$ToolPath"
+            $InstalledTools += @{ $ToolName = $ToolDirectory.FullName }
           }
         }
-        exit 0
+        return $InstalledTools
       } else {
         $NativeTools.PSObject.Properties | ForEach-Object {
           $ToolName = $_.Name
diff --git a/eng/common/tools.ps1 b/eng/common/tools.ps1
index 395b43eeb..9638c63c7 100644
--- a/eng/common/tools.ps1
+++ b/eng/common/tools.ps1
@@ -635,7 +635,7 @@ function InitializeNativeTools() {
         InstallDirectory = "$ToolsDir"
       }
     }
-    if (Test-Path variable:NativeToolsOnMachine) {
+    if ($env:NativeToolsOnMachine) {
       Write-Host "Variable NativeToolsOnMachine detected, enabling native tool path promotion..."
       $nativeArgs += @{ PathPromotion = $true }
     }
diff --git a/global.json b/global.json
index 87e23a26d..750007994 100644
--- a/global.json
+++ b/global.json
@@ -6,7 +6,7 @@
     "xcopy-msbuild": "16.8.0-preview2.1"
   },
   "msbuild-sdks": {
-    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22327.2",
-    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22327.2"
+    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22354.1",
+    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22354.1"
   }
 }

From bc67b094bcd447befcfed617973d23b0ad789307 Mon Sep 17 00:00:00 2001
From: "dotnet-maestro[bot]" <dotnet-maestro[bot]@users.noreply.github.com>
Date: Wed, 6 Jul 2022 12:44:48 +0000
Subject: [PATCH 09/34] Update dependencies from
 https://github.com/dotnet/arcade build 20220705.4

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 7.0.0-beta.22314.8 -> To Version 7.0.0-beta.22355.4
---
 eng/Version.Details.xml            | 8 ++++----
 eng/common/native/init-compiler.sh | 2 +-
 global.json                        | 4 ++--
 3 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index 3248e857c..727fb0df5 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -3,13 +3,13 @@
   <ProductDependencies>
   </ProductDependencies>
   <ToolsetDependencies>
-    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22354.1">
+    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22355.4">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>66cb5f1f50059cbafe25d1b75a1adbbced840d85</Sha>
+      <Sha>9f45238c23d89cf44a10705db1217e66a441ba5a</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22354.1">
+    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22355.4">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>66cb5f1f50059cbafe25d1b75a1adbbced840d85</Sha>
+      <Sha>9f45238c23d89cf44a10705db1217e66a441ba5a</Sha>
     </Dependency>
   </ToolsetDependencies>
 </Dependencies>
diff --git a/eng/common/native/init-compiler.sh b/eng/common/native/init-compiler.sh
index 6d7ba15e5..4b99a9cad 100644
--- a/eng/common/native/init-compiler.sh
+++ b/eng/common/native/init-compiler.sh
@@ -71,7 +71,7 @@ if [[ -z "$CLR_CC" ]]; then
     # Set default versions
     if [[ -z "$majorVersion" ]]; then
         # note: gcc (all versions) and clang versions higher than 6 do not have minor version in file name, if it is zero.
-        if [[ "$compiler" == "clang" ]]; then versions=( 13 12 11 10 9 8 7 6.0 5.0 4.0 3.9 3.8 3.7 3.6 3.5 )
+        if [[ "$compiler" == "clang" ]]; then versions=( 14 13 12 11 10 9 8 7 6.0 5.0 4.0 3.9 3.8 3.7 3.6 3.5 )
         elif [[ "$compiler" == "gcc" ]]; then versions=( 12 11 10 9 8 7 6 5 4.9 ); fi
 
         for version in "${versions[@]}"; do
diff --git a/global.json b/global.json
index 750007994..c88109f81 100644
--- a/global.json
+++ b/global.json
@@ -6,7 +6,7 @@
     "xcopy-msbuild": "16.8.0-preview2.1"
   },
   "msbuild-sdks": {
-    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22354.1",
-    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22354.1"
+    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22355.4",
+    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22355.4"
   }
 }

From c91e6935e912859acc841082cc77d46f99d1438a Mon Sep 17 00:00:00 2001
From: "dotnet-maestro[bot]" <dotnet-maestro[bot]@users.noreply.github.com>
Date: Thu, 7 Jul 2022 12:45:57 +0000
Subject: [PATCH 10/34] Update dependencies from
 https://github.com/dotnet/arcade build 20220706.3

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 7.0.0-beta.22314.8 -> To Version 7.0.0-beta.22356.3
---
 eng/Version.Details.xml            |  8 ++++----
 eng/common/generate-locproject.ps1 | 14 ++++++--------
 global.json                        |  4 ++--
 3 files changed, 12 insertions(+), 14 deletions(-)

diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index 727fb0df5..83145b9db 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -3,13 +3,13 @@
   <ProductDependencies>
   </ProductDependencies>
   <ToolsetDependencies>
-    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22355.4">
+    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22356.3">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>9f45238c23d89cf44a10705db1217e66a441ba5a</Sha>
+      <Sha>78adce7e3545bf5a5252fd9963969d8950fadea6</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22355.4">
+    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22356.3">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>9f45238c23d89cf44a10705db1217e66a441ba5a</Sha>
+      <Sha>78adce7e3545bf5a5252fd9963969d8950fadea6</Sha>
     </Dependency>
   </ToolsetDependencies>
 </Dependencies>
diff --git a/eng/common/generate-locproject.ps1 b/eng/common/generate-locproject.ps1
index 25e97ac00..afdd17502 100644
--- a/eng/common/generate-locproject.ps1
+++ b/eng/common/generate-locproject.ps1
@@ -10,9 +10,7 @@ Param(
 
 Set-StrictMode -Version 2.0
 $ErrorActionPreference = "Stop"
-. $PSScriptRoot\tools.ps1
-
-Import-Module -Name (Join-Path $PSScriptRoot 'native\CommonLibrary.psm1')
+. $PSScriptRoot\pipeline-logging-functions.ps1
 
 $exclusionsFilePath = "$SourcesDirectory\eng\Localize\LocExclusions.json"
 $exclusions = @{ Exclusions = @() }
@@ -28,7 +26,7 @@ $jsonFiles = @()
 $jsonTemplateFiles = Get-ChildItem -Recurse -Path "$SourcesDirectory" | Where-Object { $_.FullName -Match "\.template\.config\\localize\\.+\.en\.json" } # .NET templating pattern
 $jsonTemplateFiles | ForEach-Object {
     $null = $_.Name -Match "(.+)\.[\w-]+\.json" # matches '[filename].[langcode].json
-    
+
     $destinationFile = "$($_.Directory.FullName)\$($Matches.1).json"
     $jsonFiles += Copy-Item "$($_.FullName)" -Destination $destinationFile -PassThru
 }
@@ -46,7 +44,7 @@ if ($allXlfFiles) {
 }
 $langXlfFiles | ForEach-Object {
     $null = $_.Name -Match "(.+)\.[\w-]+\.xlf" # matches '[filename].[langcode].xlf
-    
+
     $destinationFile = "$($_.Directory.FullName)\$($Matches.1).xlf"
     $xlfFiles += Copy-Item "$($_.FullName)" -Destination $destinationFile -PassThru
 }
@@ -59,7 +57,7 @@ $locJson = @{
             LanguageSet = $LanguageSet
             LocItems = @(
                 $locFiles | ForEach-Object {
-                    $outputPath = "$(($_.DirectoryName | Resolve-Path -Relative) + "\")" 
+                    $outputPath = "$(($_.DirectoryName | Resolve-Path -Relative) + "\")"
                     $continue = $true
                     foreach ($exclusion in $exclusions.Exclusions) {
                         if ($outputPath.Contains($exclusion))
@@ -108,10 +106,10 @@ else {
 
     if ((Get-FileHash "$SourcesDirectory\eng\Localize\LocProject-generated.json").Hash -ne (Get-FileHash "$SourcesDirectory\eng\Localize\LocProject.json").Hash) {
         Write-PipelineTelemetryError -Category "OneLocBuild" -Message "Existing LocProject.json differs from generated LocProject.json. Download LocProject-generated.json and compare them."
-        
+
         exit 1
     }
     else {
         Write-Host "Generated LocProject.json and current LocProject.json are identical."
     }
-}
\ No newline at end of file
+}
diff --git a/global.json b/global.json
index c88109f81..cffbf9286 100644
--- a/global.json
+++ b/global.json
@@ -6,7 +6,7 @@
     "xcopy-msbuild": "16.8.0-preview2.1"
   },
   "msbuild-sdks": {
-    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22355.4",
-    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22355.4"
+    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22356.3",
+    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22356.3"
   }
 }

From d3019b23336bd7641b7bd94897e0c6eee8d58df5 Mon Sep 17 00:00:00 2001
From: "dotnet-maestro[bot]" <dotnet-maestro[bot]@users.noreply.github.com>
Date: Sat, 9 Jul 2022 12:42:56 +0000
Subject: [PATCH 11/34] Update dependencies from
 https://github.com/dotnet/arcade build 20220708.3

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 7.0.0-beta.22314.8 -> To Version 7.0.0-beta.22358.3
---
 eng/Version.Details.xml | 8 ++++----
 global.json             | 4 ++--
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index 83145b9db..daec2447c 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -3,13 +3,13 @@
   <ProductDependencies>
   </ProductDependencies>
   <ToolsetDependencies>
-    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22356.3">
+    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22358.3">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>78adce7e3545bf5a5252fd9963969d8950fadea6</Sha>
+      <Sha>54a00a84b53b63a74d232498a9d1476ff2000b7f</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22356.3">
+    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22358.3">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>78adce7e3545bf5a5252fd9963969d8950fadea6</Sha>
+      <Sha>54a00a84b53b63a74d232498a9d1476ff2000b7f</Sha>
     </Dependency>
   </ToolsetDependencies>
 </Dependencies>
diff --git a/global.json b/global.json
index cffbf9286..309bc4ee3 100644
--- a/global.json
+++ b/global.json
@@ -6,7 +6,7 @@
     "xcopy-msbuild": "16.8.0-preview2.1"
   },
   "msbuild-sdks": {
-    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22356.3",
-    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22356.3"
+    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22358.3",
+    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22358.3"
   }
 }

From d14753c7a9792a11b6fab1a0ac10f762797b9827 Mon Sep 17 00:00:00 2001
From: "dotnet-maestro[bot]" <dotnet-maestro[bot]@users.noreply.github.com>
Date: Wed, 13 Jul 2022 12:46:03 +0000
Subject: [PATCH 12/34] Update dependencies from
 https://github.com/dotnet/arcade build 20220712.1

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 7.0.0-beta.22314.8 -> To Version 7.0.0-beta.22362.1
---
 eng/Version.Details.xml | 8 ++++----
 global.json             | 4 ++--
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index daec2447c..f09d765c3 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -3,13 +3,13 @@
   <ProductDependencies>
   </ProductDependencies>
   <ToolsetDependencies>
-    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22358.3">
+    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22362.1">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>54a00a84b53b63a74d232498a9d1476ff2000b7f</Sha>
+      <Sha>bd18f30f71daf7eaaf1d70363c303bd7dfac65a2</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22358.3">
+    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22362.1">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>54a00a84b53b63a74d232498a9d1476ff2000b7f</Sha>
+      <Sha>bd18f30f71daf7eaaf1d70363c303bd7dfac65a2</Sha>
     </Dependency>
   </ToolsetDependencies>
 </Dependencies>
diff --git a/global.json b/global.json
index 309bc4ee3..1b33c10d4 100644
--- a/global.json
+++ b/global.json
@@ -6,7 +6,7 @@
     "xcopy-msbuild": "16.8.0-preview2.1"
   },
   "msbuild-sdks": {
-    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22358.3",
-    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22358.3"
+    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22362.1",
+    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22362.1"
   }
 }

From 0ad22888898c51c83d7ee8b13056bc00c9b8a1ef Mon Sep 17 00:00:00 2001
From: "dotnet-maestro[bot]" <dotnet-maestro[bot]@users.noreply.github.com>
Date: Thu, 14 Jul 2022 12:44:06 +0000
Subject: [PATCH 13/34] Update dependencies from
 https://github.com/dotnet/arcade build 20220713.1

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 7.0.0-beta.22314.8 -> To Version 7.0.0-beta.22363.1
---
 eng/Version.Details.xml | 8 ++++----
 global.json             | 4 ++--
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index f09d765c3..646a6d38c 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -3,13 +3,13 @@
   <ProductDependencies>
   </ProductDependencies>
   <ToolsetDependencies>
-    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22362.1">
+    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22363.1">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>bd18f30f71daf7eaaf1d70363c303bd7dfac65a2</Sha>
+      <Sha>3895dfc219f7cea2c028164db691389d0b1a73a8</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22362.1">
+    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22363.1">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>bd18f30f71daf7eaaf1d70363c303bd7dfac65a2</Sha>
+      <Sha>3895dfc219f7cea2c028164db691389d0b1a73a8</Sha>
     </Dependency>
   </ToolsetDependencies>
 </Dependencies>
diff --git a/global.json b/global.json
index 1b33c10d4..fbde208cf 100644
--- a/global.json
+++ b/global.json
@@ -6,7 +6,7 @@
     "xcopy-msbuild": "16.8.0-preview2.1"
   },
   "msbuild-sdks": {
-    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22362.1",
-    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22362.1"
+    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22363.1",
+    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22363.1"
   }
 }

From 4c3805a4f84924ea7064854d1672e66d9a86b65a Mon Sep 17 00:00:00 2001
From: "dotnet-maestro[bot]" <dotnet-maestro[bot]@users.noreply.github.com>
Date: Fri, 15 Jul 2022 12:44:39 +0000
Subject: [PATCH 14/34] Update dependencies from
 https://github.com/dotnet/arcade build 20220714.1

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 7.0.0-beta.22314.8 -> To Version 7.0.0-beta.22364.1
---
 eng/Version.Details.xml          |  8 ++++----
 eng/common/cross/build-rootfs.sh | 33 ++++++++++++++++++--------------
 eng/common/cross/toolchain.cmake | 30 ++++++++++++++++++-----------
 global.json                      |  4 ++--
 4 files changed, 44 insertions(+), 31 deletions(-)

diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index 646a6d38c..fb2b0373e 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -3,13 +3,13 @@
   <ProductDependencies>
   </ProductDependencies>
   <ToolsetDependencies>
-    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22363.1">
+    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22364.1">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>3895dfc219f7cea2c028164db691389d0b1a73a8</Sha>
+      <Sha>22e05f347f297e09e9ee58c22e139d2f5f5ec297</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22363.1">
+    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22364.1">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>3895dfc219f7cea2c028164db691389d0b1a73a8</Sha>
+      <Sha>22e05f347f297e09e9ee58c22e139d2f5f5ec297</Sha>
     </Dependency>
   </ToolsetDependencies>
 </Dependencies>
diff --git a/eng/common/cross/build-rootfs.sh b/eng/common/cross/build-rootfs.sh
index 5a59dcff2..c8540474a 100644
--- a/eng/common/cross/build-rootfs.sh
+++ b/eng/common/cross/build-rootfs.sh
@@ -5,7 +5,7 @@ set -e
 usage()
 {
     echo "Usage: $0 [BuildArch] [CodeName] [lldbx.y] [llvmx[.y]] [--skipunmount] --rootfsdir <directory>]"
-    echo "BuildArch can be: arm(default), armel, arm64, x86"
+    echo "BuildArch can be: arm(default), armel, arm64, x86, x64"
     echo "CodeName - optional, Code name for Linux, can be: xenial(default), zesty, bionic, alpine, alpine3.13 or alpine3.14. If BuildArch is armel, LinuxCodeName is jessie(default) or tizen."
     echo "                              for FreeBSD can be: freebsd12, freebsd13"
     echo "                              for illumos can be: illumos."
@@ -21,6 +21,9 @@ __CrossDir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
 __InitialDir=$PWD
 __BuildArch=arm
 __AlpineArch=armv7
+__FreeBSDArch=arm
+__FreeBSDMachineArch=armv7
+__IllumosArch=arm7
 __QEMUArch=arm
 __UbuntuArch=armhf
 __UbuntuRepo="http://ports.ubuntu.com/"
@@ -115,6 +118,8 @@ while :; do
             __UbuntuArch=arm64
             __AlpineArch=aarch64
             __QEMUArch=aarch64
+            __FreeBSDArch=arm64
+            __FreeBSDMachineArch=aarch64
             ;;
         armel)
             __BuildArch=armel
@@ -140,6 +145,14 @@ while :; do
             __UbuntuPackages=$(echo ${__UbuntuPackages} | sed 's/ libomp5//')
             unset __LLDB_Package
             ;;
+        x64)
+            __BuildArch=x64
+            __UbuntuArch=amd64
+            __FreeBSDArch=amd64
+            __FreeBSDMachineArch=amd64
+            __illumosArch=x86_64
+            __UbuntuRepo=
+            ;;
         x86)
             __BuildArch=x86
             __UbuntuArch=i386
@@ -205,11 +218,6 @@ while :; do
             __LLDB_Package="liblldb-6.0-dev"
             ;;
         tizen)
-            if [ "$__BuildArch" != "arm" ] && [ "$__BuildArch" != "armel" ] && [ "$__BuildArch" != "arm64" ] && [ "$__BuildArch" != "x86" ] ; then
-                echo "Tizen is available only for arm, armel, arm64 and x86."
-                usage;
-                exit 1;
-            fi
             __CodeName=
             __UbuntuRepo=
             __Tizen=tizen
@@ -228,19 +236,16 @@ while :; do
             ;;
         freebsd12)
             __CodeName=freebsd
-            __BuildArch=x64
             __SkipUnmount=1
             ;;
         freebsd13)
             __CodeName=freebsd
             __FreeBSDBase="13.0-RELEASE"
             __FreeBSDABI="13"
-            __BuildArch=x64
             __SkipUnmount=1
             ;;
         illumos)
             __CodeName=illumos
-            __BuildArch=x64
             __SkipUnmount=1
             ;;
         --skipunmount)
@@ -312,8 +317,8 @@ if [[ "$__CodeName" == "alpine" ]]; then
 elif [[ "$__CodeName" == "freebsd" ]]; then
     mkdir -p $__RootfsDir/usr/local/etc
     JOBS="$(getconf _NPROCESSORS_ONLN)"
-    wget -O - https://download.freebsd.org/ftp/releases/amd64/${__FreeBSDBase}/base.txz | tar -C $__RootfsDir -Jxf - ./lib ./usr/lib ./usr/libdata ./usr/include ./usr/share/keys ./etc ./bin/freebsd-version
-    echo "ABI = \"FreeBSD:${__FreeBSDABI}:amd64\"; FINGERPRINTS = \"${__RootfsDir}/usr/share/keys\"; REPOS_DIR = [\"${__RootfsDir}/etc/pkg\"]; REPO_AUTOUPDATE = NO; RUN_SCRIPTS = NO;" > ${__RootfsDir}/usr/local/etc/pkg.conf
+    wget -O - https://download.freebsd.org/ftp/releases/${__FreeBSDArch}/${__FreeBSDMachineArch}/${__FreeBSDBase}/base.txz | tar -C $__RootfsDir -Jxf - ./lib ./usr/lib ./usr/libdata ./usr/include ./usr/share/keys ./etc ./bin/freebsd-version
+    echo "ABI = \"FreeBSD:${__FreeBSDABI}:${__FreeBSDMachineArch}\"; FINGERPRINTS = \"${__RootfsDir}/usr/share/keys\"; REPOS_DIR = [\"${__RootfsDir}/etc/pkg\"]; REPO_AUTOUPDATE = NO; RUN_SCRIPTS = NO;" > ${__RootfsDir}/usr/local/etc/pkg.conf
     echo "FreeBSD: { url: "pkg+http://pkg.FreeBSD.org/\${ABI}/quarterly", mirror_type: \"srv\", signature_type: \"fingerprints\", fingerprints: \"${__RootfsDir}/usr/share/keys/pkg\", enabled: yes }" > ${__RootfsDir}/etc/pkg/FreeBSD.conf
     mkdir -p $__RootfsDir/tmp
     # get and build package manager
@@ -335,7 +340,7 @@ elif [[ "$__CodeName" == "illumos" ]]; then
     echo "Building binutils. Please wait.."
     wget -O - https://ftp.gnu.org/gnu/binutils/binutils-2.33.1.tar.bz2 | tar -xjf -
     mkdir build-binutils && cd build-binutils
-    ../binutils-2.33.1/configure --prefix="$__RootfsDir" --target="x86_64-sun-solaris2.10" --program-prefix="x86_64-illumos-" --with-sysroot="$__RootfsDir"
+    ../binutils-2.33.1/configure --prefix="$__RootfsDir" --target="${__illumosArch}-sun-solaris2.10" --program-prefix="${__illumosArch}-illumos-" --with-sysroot="$__RootfsDir"
     make -j "$JOBS" && make install && cd ..
     echo "Building gcc. Please wait.."
     wget -O - https://ftp.gnu.org/gnu/gcc/gcc-8.4.0/gcc-8.4.0.tar.xz | tar -xJf -
@@ -345,7 +350,7 @@ elif [[ "$__CodeName" == "illumos" ]]; then
     CFLAGS_FOR_TARGET="-fPIC"
     export CFLAGS CXXFLAGS CXXFLAGS_FOR_TARGET CFLAGS_FOR_TARGET
     mkdir build-gcc && cd build-gcc
-    ../gcc-8.4.0/configure --prefix="$__RootfsDir" --target="x86_64-sun-solaris2.10" --program-prefix="x86_64-illumos-" --with-sysroot="$__RootfsDir" --with-gnu-as       \
+    ../gcc-8.4.0/configure --prefix="$__RootfsDir" --target="${__illumosArch}-sun-solaris2.10" --program-prefix="${__illumosArch}-illumos-" --with-sysroot="$__RootfsDir" --with-gnu-as       \
         --with-gnu-ld --disable-nls --disable-libgomp --disable-libquadmath --disable-libssp --disable-libvtv --disable-libcilkrts --disable-libada --disable-libsanitizer \
         --disable-libquadmath-support --disable-shared --enable-tls
     make -j "$JOBS" && make install && cd ..
@@ -353,7 +358,7 @@ elif [[ "$__CodeName" == "illumos" ]]; then
     if [[ "$__UseMirror" == 1 ]]; then
         BaseUrl=http://pkgsrc.smartos.skylime.net
     fi
-    BaseUrl="$BaseUrl"/packages/SmartOS/2020Q1/x86_64/All
+    BaseUrl="$BaseUrl"/packages/SmartOS/2020Q1/${__illumosArch}/All
     echo "Downloading dependencies."
     read -ra array <<<"$__IllumosPackages"
     for package in "${array[@]}"; do
diff --git a/eng/common/cross/toolchain.cmake b/eng/common/cross/toolchain.cmake
index eaeeab38f..d5dfc1350 100644
--- a/eng/common/cross/toolchain.cmake
+++ b/eng/common/cross/toolchain.cmake
@@ -48,11 +48,13 @@ elseif(TARGET_ARCH_NAME STREQUAL "arm64")
   set(CMAKE_SYSTEM_PROCESSOR aarch64)
   if(EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/aarch64-alpine-linux-musl)
     set(TOOLCHAIN "aarch64-alpine-linux-musl")
-  else()
+  elseif(LINUX)
     set(TOOLCHAIN "aarch64-linux-gnu")
-  endif()
-  if(TIZEN)
-    set(TIZEN_TOOLCHAIN "aarch64-tizen-linux-gnu/9.2.0")
+    if(TIZEN)
+      set(TIZEN_TOOLCHAIN "aarch64-tizen-linux-gnu/9.2.0")
+    endif()
+  elseif(FREEBSD)
+    set(triple "aarch64-unknown-freebsd12")
   endif()
 elseif(TARGET_ARCH_NAME STREQUAL "ppc64le")
   set(CMAKE_SYSTEM_PROCESSOR ppc64le)
@@ -66,12 +68,18 @@ elseif(TARGET_ARCH_NAME STREQUAL "x86")
   if(TIZEN)
     set(TIZEN_TOOLCHAIN "i586-tizen-linux-gnu/9.2.0")
   endif()
-elseif (FREEBSD)
-  set(CMAKE_SYSTEM_PROCESSOR "x86_64")
-  set(triple "x86_64-unknown-freebsd12")
-elseif (ILLUMOS)
-  set(CMAKE_SYSTEM_PROCESSOR "x86_64")
-  set(TOOLCHAIN "x86_64-illumos")
+elseif(TARGET_ARCH_NAME STREQUAL "x64")
+  set(CMAKE_SYSTEM_PROCESSOR x86_64)
+  if(LINUX)
+    set(TOOLCHAIN "x86_64-linux-gnu")
+    if(TIZEN)
+      set(TIZEN_TOOLCHAIN "x86_64-tizen-linux-gnu/9.2.0")
+    endif()
+  elseif(FREEBSD)
+    set(triple "x86_64-unknown-freebsd12")
+  elseif(ILLUMOS)
+    set(TOOLCHAIN "x86_64-illumos")
+  endif()
 else()
   message(FATAL_ERROR "Arch is ${TARGET_ARCH_NAME}. Only armel, arm, armv6, arm64, ppc64le, s390x and x86 are supported!")
 endif()
@@ -218,7 +226,7 @@ endif()
 
 # Specify compile options
 
-if((TARGET_ARCH_NAME MATCHES "^(arm|armv6|armel|arm64|ppc64le|s390x)$" AND NOT ANDROID) OR ILLUMOS)
+if((TARGET_ARCH_NAME MATCHES "^(arm|armv6|armel|arm64|ppc64le|s390x)$" AND NOT ANDROID AND NOT FREEBSD) OR ILLUMOS)
   set(CMAKE_C_COMPILER_TARGET ${TOOLCHAIN})
   set(CMAKE_CXX_COMPILER_TARGET ${TOOLCHAIN})
   set(CMAKE_ASM_COMPILER_TARGET ${TOOLCHAIN})
diff --git a/global.json b/global.json
index fbde208cf..48748720f 100644
--- a/global.json
+++ b/global.json
@@ -6,7 +6,7 @@
     "xcopy-msbuild": "16.8.0-preview2.1"
   },
   "msbuild-sdks": {
-    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22363.1",
-    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22363.1"
+    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22364.1",
+    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22364.1"
   }
 }

From 74c9670d61acda32bfbae6e7909d54f78a89a6e5 Mon Sep 17 00:00:00 2001
From: "dotnet-maestro[bot]" <dotnet-maestro[bot]@users.noreply.github.com>
Date: Sat, 16 Jul 2022 12:34:53 +0000
Subject: [PATCH 15/34] Update dependencies from
 https://github.com/dotnet/arcade build 20220715.4

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 7.0.0-beta.22314.8 -> To Version 7.0.0-beta.22365.4
---
 eng/Version.Details.xml | 8 ++++----
 global.json             | 4 ++--
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index fb2b0373e..4e8413762 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -3,13 +3,13 @@
   <ProductDependencies>
   </ProductDependencies>
   <ToolsetDependencies>
-    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22364.1">
+    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22365.4">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>22e05f347f297e09e9ee58c22e139d2f5f5ec297</Sha>
+      <Sha>f7951a64db920ea599bd6819065b661d88d26b23</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22364.1">
+    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22365.4">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>22e05f347f297e09e9ee58c22e139d2f5f5ec297</Sha>
+      <Sha>f7951a64db920ea599bd6819065b661d88d26b23</Sha>
     </Dependency>
   </ToolsetDependencies>
 </Dependencies>
diff --git a/global.json b/global.json
index 48748720f..90053da9b 100644
--- a/global.json
+++ b/global.json
@@ -6,7 +6,7 @@
     "xcopy-msbuild": "16.8.0-preview2.1"
   },
   "msbuild-sdks": {
-    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22364.1",
-    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22364.1"
+    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22365.4",
+    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22365.4"
   }
 }

From fc899353653d982e596566776bbf02de8ea6035c Mon Sep 17 00:00:00 2001
From: "dotnet-maestro[bot]" <dotnet-maestro[bot]@users.noreply.github.com>
Date: Mon, 18 Jul 2022 12:44:45 +0000
Subject: [PATCH 16/34] Update dependencies from
 https://github.com/dotnet/arcade build 20220717.1

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 7.0.0-beta.22314.8 -> To Version 7.0.0-beta.22367.1
---
 eng/Version.Details.xml | 4 ++--
 global.json             | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index 4e8413762..e1da87964 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -3,11 +3,11 @@
   <ProductDependencies>
   </ProductDependencies>
   <ToolsetDependencies>
-    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22365.4">
+    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22367.1">
       <Uri>https://github.com/dotnet/arcade</Uri>
       <Sha>f7951a64db920ea599bd6819065b661d88d26b23</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22365.4">
+    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22367.1">
       <Uri>https://github.com/dotnet/arcade</Uri>
       <Sha>f7951a64db920ea599bd6819065b661d88d26b23</Sha>
     </Dependency>
diff --git a/global.json b/global.json
index 90053da9b..ccbc9b5b5 100644
--- a/global.json
+++ b/global.json
@@ -6,7 +6,7 @@
     "xcopy-msbuild": "16.8.0-preview2.1"
   },
   "msbuild-sdks": {
-    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22365.4",
-    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22365.4"
+    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22367.1",
+    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22367.1"
   }
 }

From 4c0804f70ffa9139d6c495418bf8be56545cbcf4 Mon Sep 17 00:00:00 2001
From: "dotnet-maestro[bot]" <dotnet-maestro[bot]@users.noreply.github.com>
Date: Tue, 19 Jul 2022 12:46:07 +0000
Subject: [PATCH 17/34] Update dependencies from
 https://github.com/dotnet/arcade build 20220718.5

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 7.0.0-beta.22314.8 -> To Version 7.0.0-beta.22368.5
---
 eng/Version.Details.xml | 8 ++++----
 global.json             | 4 ++--
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index e1da87964..b17eacb80 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -3,13 +3,13 @@
   <ProductDependencies>
   </ProductDependencies>
   <ToolsetDependencies>
-    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22367.1">
+    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22368.5">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>f7951a64db920ea599bd6819065b661d88d26b23</Sha>
+      <Sha>6bf3e1d9cd29fe839be38a4c051aa307cf96f5d0</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22367.1">
+    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22368.5">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>f7951a64db920ea599bd6819065b661d88d26b23</Sha>
+      <Sha>6bf3e1d9cd29fe839be38a4c051aa307cf96f5d0</Sha>
     </Dependency>
   </ToolsetDependencies>
 </Dependencies>
diff --git a/global.json b/global.json
index ccbc9b5b5..977cbe597 100644
--- a/global.json
+++ b/global.json
@@ -6,7 +6,7 @@
     "xcopy-msbuild": "16.8.0-preview2.1"
   },
   "msbuild-sdks": {
-    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22367.1",
-    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22367.1"
+    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22368.5",
+    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22368.5"
   }
 }

From 5bce6422d44fbd5c31d001572576b5195d6768c7 Mon Sep 17 00:00:00 2001
From: "dotnet-maestro[bot]" <dotnet-maestro[bot]@users.noreply.github.com>
Date: Wed, 20 Jul 2022 12:47:05 +0000
Subject: [PATCH 18/34] Update dependencies from
 https://github.com/dotnet/arcade build 20220719.9

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 7.0.0-beta.22314.8 -> To Version 7.0.0-beta.22369.9
---
 eng/Version.Details.xml           |  8 ++++----
 eng/common/generate-sbom-prep.ps1 |  2 ++
 eng/common/generate-sbom-prep.sh  | 12 ++++++++++++
 global.json                       |  4 ++--
 4 files changed, 20 insertions(+), 6 deletions(-)

diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index b17eacb80..b24cff83a 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -3,13 +3,13 @@
   <ProductDependencies>
   </ProductDependencies>
   <ToolsetDependencies>
-    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22368.5">
+    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22369.9">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>6bf3e1d9cd29fe839be38a4c051aa307cf96f5d0</Sha>
+      <Sha>cda764613f89280de6d5c5383ebded9ac01ebd00</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22368.5">
+    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22369.9">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>6bf3e1d9cd29fe839be38a4c051aa307cf96f5d0</Sha>
+      <Sha>cda764613f89280de6d5c5383ebded9ac01ebd00</Sha>
     </Dependency>
   </ToolsetDependencies>
 </Dependencies>
diff --git a/eng/common/generate-sbom-prep.ps1 b/eng/common/generate-sbom-prep.ps1
index a733a8885..3e5c1c74a 100644
--- a/eng/common/generate-sbom-prep.ps1
+++ b/eng/common/generate-sbom-prep.ps1
@@ -2,6 +2,8 @@ Param(
     [Parameter(Mandatory=$true)][string] $ManifestDirPath    # Manifest directory where sbom will be placed
 )
 
+. $PSScriptRoot\pipeline-logging-functions.ps1
+
 Write-Host "Creating dir $ManifestDirPath"
 # create directory for sbom manifest to be placed
 if (!(Test-Path -path $ManifestDirPath))
diff --git a/eng/common/generate-sbom-prep.sh b/eng/common/generate-sbom-prep.sh
index f6c774531..d5c76dc82 100644
--- a/eng/common/generate-sbom-prep.sh
+++ b/eng/common/generate-sbom-prep.sh
@@ -2,6 +2,18 @@
 
 source="${BASH_SOURCE[0]}"
 
+# resolve $SOURCE until the file is no longer a symlink
+while [[ -h $source ]]; do
+  scriptroot="$( cd -P "$( dirname "$source" )" && pwd )"
+  source="$(readlink "$source")"
+
+  # if $source was a relative symlink, we need to resolve it relative to the path where the
+  # symlink file was located
+  [[ $source != /* ]] && source="$scriptroot/$source"
+done
+scriptroot="$( cd -P "$( dirname "$source" )" && pwd )"
+. $scriptroot/pipeline-logging-functions.sh
+
 manifest_dir=$1
 
 if [ ! -d "$manifest_dir" ] ; then
diff --git a/global.json b/global.json
index 977cbe597..459530013 100644
--- a/global.json
+++ b/global.json
@@ -6,7 +6,7 @@
     "xcopy-msbuild": "16.8.0-preview2.1"
   },
   "msbuild-sdks": {
-    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22368.5",
-    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22368.5"
+    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22369.9",
+    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22369.9"
   }
 }

From 2976ef89d4801711ff7d3f881886918ab1b726d9 Mon Sep 17 00:00:00 2001
From: "dotnet-maestro[bot]" <dotnet-maestro[bot]@users.noreply.github.com>
Date: Thu, 21 Jul 2022 12:46:10 +0000
Subject: [PATCH 19/34] Update dependencies from
 https://github.com/dotnet/arcade build 20220720.1

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 7.0.0-beta.22314.8 -> To Version 7.0.0-beta.22370.1
---
 eng/Version.Details.xml | 8 ++++----
 global.json             | 4 ++--
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index b24cff83a..fe62dc8c2 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -3,13 +3,13 @@
   <ProductDependencies>
   </ProductDependencies>
   <ToolsetDependencies>
-    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22369.9">
+    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22370.1">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>cda764613f89280de6d5c5383ebded9ac01ebd00</Sha>
+      <Sha>2da4f9da491ecf07fe08d8a117f3265a0433fc23</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22369.9">
+    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22370.1">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>cda764613f89280de6d5c5383ebded9ac01ebd00</Sha>
+      <Sha>2da4f9da491ecf07fe08d8a117f3265a0433fc23</Sha>
     </Dependency>
   </ToolsetDependencies>
 </Dependencies>
diff --git a/global.json b/global.json
index 459530013..8990ce8e7 100644
--- a/global.json
+++ b/global.json
@@ -6,7 +6,7 @@
     "xcopy-msbuild": "16.8.0-preview2.1"
   },
   "msbuild-sdks": {
-    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22369.9",
-    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22369.9"
+    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22370.1",
+    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22370.1"
   }
 }

From 79f7f7115f1e97e1d4e043e7079f0efce59d862b Mon Sep 17 00:00:00 2001
From: "dotnet-maestro[bot]" <dotnet-maestro[bot]@users.noreply.github.com>
Date: Fri, 22 Jul 2022 12:47:09 +0000
Subject: [PATCH 20/34] Update dependencies from
 https://github.com/dotnet/arcade build 20220721.8

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 7.0.0-beta.22314.8 -> To Version 7.0.0-beta.22371.8
---
 eng/Version.Details.xml | 8 ++++----
 global.json             | 4 ++--
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index fe62dc8c2..8d5a8a761 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -3,13 +3,13 @@
   <ProductDependencies>
   </ProductDependencies>
   <ToolsetDependencies>
-    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22370.1">
+    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22371.8">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>2da4f9da491ecf07fe08d8a117f3265a0433fc23</Sha>
+      <Sha>3535001b78eff45df99b991571e84efbd7a8bbbd</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22370.1">
+    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22371.8">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>2da4f9da491ecf07fe08d8a117f3265a0433fc23</Sha>
+      <Sha>3535001b78eff45df99b991571e84efbd7a8bbbd</Sha>
     </Dependency>
   </ToolsetDependencies>
 </Dependencies>
diff --git a/global.json b/global.json
index 8990ce8e7..981cac9f2 100644
--- a/global.json
+++ b/global.json
@@ -6,7 +6,7 @@
     "xcopy-msbuild": "16.8.0-preview2.1"
   },
   "msbuild-sdks": {
-    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22370.1",
-    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22370.1"
+    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22371.8",
+    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22371.8"
   }
 }

From 12d3f880b546d21c9837a1e66b1a4f713af8e67e Mon Sep 17 00:00:00 2001
From: "dotnet-maestro[bot]" <dotnet-maestro[bot]@users.noreply.github.com>
Date: Sat, 23 Jul 2022 12:45:04 +0000
Subject: [PATCH 21/34] Update dependencies from
 https://github.com/dotnet/arcade build 20220722.1

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 7.0.0-beta.22314.8 -> To Version 7.0.0-beta.22372.1
---
 eng/Version.Details.xml | 8 ++++----
 global.json             | 4 ++--
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index 8d5a8a761..9ca734b8b 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -3,13 +3,13 @@
   <ProductDependencies>
   </ProductDependencies>
   <ToolsetDependencies>
-    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22371.8">
+    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22372.1">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>3535001b78eff45df99b991571e84efbd7a8bbbd</Sha>
+      <Sha>11672d906390046e77a34b6406d9e02229fd7e45</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22371.8">
+    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22372.1">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>3535001b78eff45df99b991571e84efbd7a8bbbd</Sha>
+      <Sha>11672d906390046e77a34b6406d9e02229fd7e45</Sha>
     </Dependency>
   </ToolsetDependencies>
 </Dependencies>
diff --git a/global.json b/global.json
index 981cac9f2..1e88ff6f9 100644
--- a/global.json
+++ b/global.json
@@ -6,7 +6,7 @@
     "xcopy-msbuild": "16.8.0-preview2.1"
   },
   "msbuild-sdks": {
-    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22371.8",
-    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22371.8"
+    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22372.1",
+    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22372.1"
   }
 }

From 69fc709627d7275b2c83e0a6e6a201cfa2d0bc22 Mon Sep 17 00:00:00 2001
From: "dotnet-maestro[bot]" <dotnet-maestro[bot]@users.noreply.github.com>
Date: Tue, 26 Jul 2022 12:48:39 +0000
Subject: [PATCH 22/34] Update dependencies from
 https://github.com/dotnet/arcade build 20220725.4

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 7.0.0-beta.22314.8 -> To Version 7.0.0-beta.22375.4
---
 eng/Version.Details.xml | 8 ++++----
 global.json             | 4 ++--
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index 9ca734b8b..c5ab13f8f 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -3,13 +3,13 @@
   <ProductDependencies>
   </ProductDependencies>
   <ToolsetDependencies>
-    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22372.1">
+    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22375.4">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>11672d906390046e77a34b6406d9e02229fd7e45</Sha>
+      <Sha>5d3e421833a18b48eed5bda24f4d5f65a75cf970</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22372.1">
+    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22375.4">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>11672d906390046e77a34b6406d9e02229fd7e45</Sha>
+      <Sha>5d3e421833a18b48eed5bda24f4d5f65a75cf970</Sha>
     </Dependency>
   </ToolsetDependencies>
 </Dependencies>
diff --git a/global.json b/global.json
index 1e88ff6f9..e3bde8f5c 100644
--- a/global.json
+++ b/global.json
@@ -6,7 +6,7 @@
     "xcopy-msbuild": "16.8.0-preview2.1"
   },
   "msbuild-sdks": {
-    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22372.1",
-    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22372.1"
+    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22375.4",
+    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22375.4"
   }
 }

From 11feaed106deea61092ea3e8e341fafbc29a6d8d Mon Sep 17 00:00:00 2001
From: "dotnet-maestro[bot]" <dotnet-maestro[bot]@users.noreply.github.com>
Date: Wed, 27 Jul 2022 12:40:24 +0000
Subject: [PATCH 23/34] Update dependencies from
 https://github.com/dotnet/arcade build 20220726.3

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 7.0.0-beta.22314.8 -> To Version 7.0.0-beta.22376.3
---
 eng/Version.Details.xml |  8 ++++----
 eng/common/build.sh     | 17 ++++++++++++++++-
 global.json             |  4 ++--
 3 files changed, 22 insertions(+), 7 deletions(-)

diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index c5ab13f8f..3b360cc06 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -3,13 +3,13 @@
   <ProductDependencies>
   </ProductDependencies>
   <ToolsetDependencies>
-    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22375.4">
+    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22376.3">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>5d3e421833a18b48eed5bda24f4d5f65a75cf970</Sha>
+      <Sha>37e6d5179448c5255f1517834463210dcc45963a</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22375.4">
+    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22376.3">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>5d3e421833a18b48eed5bda24f4d5f65a75cf970</Sha>
+      <Sha>37e6d5179448c5255f1517834463210dcc45963a</Sha>
     </Dependency>
   </ToolsetDependencies>
 </Dependencies>
diff --git a/eng/common/build.sh b/eng/common/build.sh
index 55b298f16..9031d41ea 100644
--- a/eng/common/build.sh
+++ b/eng/common/build.sh
@@ -19,6 +19,9 @@ usage()
   echo "Actions:"
   echo "  --restore                  Restore dependencies (short: -r)"
   echo "  --build                    Build solution (short: -b)"
+  echo "  --source-build             Source-build the solution (short: -sb)"
+  echo "                             Will additionally trigger the following actions: --restore, --build, --pack"
+  echo "                             If --configuration is not set explicitly, will also set it to 'Release'"
   echo "  --rebuild                  Rebuild solution"
   echo "  --test                     Run all unit tests in the solution (short: -t)"
   echo "  --integrationTest          Run all integration tests in the solution"
@@ -55,6 +58,7 @@ scriptroot="$( cd -P "$( dirname "$source" )" && pwd )"
 
 restore=false
 build=false
+source_build=false
 rebuild=false
 test=false
 integration_test=false
@@ -73,7 +77,7 @@ exclude_ci_binary_log=false
 pipelines_log=false
 
 projects=''
-configuration='Debug'
+configuration=''
 prepare_machine=false
 verbosity='minimal'
 runtime_source_feed=''
@@ -119,6 +123,12 @@ while [[ $# > 0 ]]; do
     -pack)
       pack=true
       ;;
+    -sourcebuild|-sb)
+      build=true
+      source_build=true
+      restore=true
+      pack=true
+      ;;
     -test|-t)
       test=true
       ;;
@@ -168,6 +178,10 @@ while [[ $# > 0 ]]; do
   shift
 done
 
+if [[ -z "$configuration" ]]; then
+  if [[ "$source_build" = true ]]; then configuration="Release"; else configuration="Debug"; fi
+fi
+
 if [[ "$ci" == true ]]; then
   pipelines_log=true
   node_reuse=false
@@ -205,6 +219,7 @@ function Build {
     /p:RepoRoot="$repo_root" \
     /p:Restore=$restore \
     /p:Build=$build \
+    /p:ArcadeBuildFromSource=$source_build \
     /p:Rebuild=$rebuild \
     /p:Test=$test \
     /p:Pack=$pack \
diff --git a/global.json b/global.json
index e3bde8f5c..fb5e0e88d 100644
--- a/global.json
+++ b/global.json
@@ -6,7 +6,7 @@
     "xcopy-msbuild": "16.8.0-preview2.1"
   },
   "msbuild-sdks": {
-    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22375.4",
-    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22375.4"
+    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22376.3",
+    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22376.3"
   }
 }

From c04ea61b890643497e8374a5bb49e5c9b28221ed Mon Sep 17 00:00:00 2001
From: "dotnet-maestro[bot]" <dotnet-maestro[bot]@users.noreply.github.com>
Date: Thu, 28 Jul 2022 12:44:20 +0000
Subject: [PATCH 24/34] Update dependencies from
 https://github.com/dotnet/arcade build 20220727.15

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 7.0.0-beta.22314.8 -> To Version 7.0.0-beta.22377.15
---
 eng/Version.Details.xml          |   8 +-
 eng/common/cross/build-rootfs.sh | 121 +++++++++++++++----------------
 global.json                      |   4 +-
 3 files changed, 64 insertions(+), 69 deletions(-)

diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index 3b360cc06..2ea3cd4bb 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -3,13 +3,13 @@
   <ProductDependencies>
   </ProductDependencies>
   <ToolsetDependencies>
-    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22376.3">
+    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22377.15">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>37e6d5179448c5255f1517834463210dcc45963a</Sha>
+      <Sha>7df67590fb080663ada77f269a8b132ef127a039</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22376.3">
+    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22377.15">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>37e6d5179448c5255f1517834463210dcc45963a</Sha>
+      <Sha>7df67590fb080663ada77f269a8b132ef127a039</Sha>
     </Dependency>
   </ToolsetDependencies>
 </Dependencies>
diff --git a/eng/common/cross/build-rootfs.sh b/eng/common/cross/build-rootfs.sh
index c8540474a..77eaac60c 100644
--- a/eng/common/cross/build-rootfs.sh
+++ b/eng/common/cross/build-rootfs.sh
@@ -18,7 +18,6 @@ usage()
 
 __CodeName=xenial
 __CrossDir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
-__InitialDir=$PWD
 __BuildArch=arm
 __AlpineArch=armv7
 __FreeBSDArch=arm
@@ -43,7 +42,7 @@ __AlpinePackages+=" libedit"
 # symlinks fixer
 __UbuntuPackages+=" symlinks"
 
-# CoreCLR and CoreFX dependencies
+# runtime dependencies
 __UbuntuPackages+=" libicu-dev"
 __UbuntuPackages+=" liblttng-ust-dev"
 __UbuntuPackages+=" libunwind8-dev"
@@ -54,7 +53,7 @@ __AlpinePackages+=" libunwind-dev"
 __AlpinePackages+=" lttng-ust-dev"
 __AlpinePackages+=" compiler-rt-static"
 
-# CoreFX dependencies
+# runtime libraries' dependencies
 __UbuntuPackages+=" libcurl4-openssl-dev"
 __UbuntuPackages+=" libkrb5-dev"
 __UbuntuPackages+=" libssl-dev"
@@ -84,17 +83,18 @@ __IllumosPackages+=" zlib-1.2.11"
 __UbuntuPackages+=" libomp5"
 __UbuntuPackages+=" libomp-dev"
 
+__Keyring=
 __UseMirror=0
 
 __UnprocessedBuildArgs=
 while :; do
-    if [ $# -le 0 ]; then
+    if [[ "$#" -le 0 ]]; then
         break
     fi
 
-    lowerI="$(echo $1 | tr "[:upper:]" "[:lower:]")"
+    lowerI="$(echo "$1" | tr "[:upper:]" "[:lower:]")"
     case $lowerI in
-        -?|-h|--help)
+        -\?|-h|--help)
             usage
             exit 1
             ;;
@@ -111,7 +111,7 @@ while :; do
             __UbuntuRepo="http://raspbian.raspberrypi.org/raspbian/"
             __CodeName=buster
             __LLDB_Package="liblldb-6.0-dev"
-            __Keyring="/usr/share/keyrings/raspbian-archive-keyring.gpg"
+            __Keyring="--keyring /usr/share/keyrings/raspbian-archive-keyring.gpg"
             ;;
         arm64)
             __BuildArch=arm64
@@ -189,17 +189,17 @@ while :; do
             fi
             ;;
         xenial) # Ubuntu 16.04
-            if [ "$__CodeName" != "jessie" ]; then
+            if [[ "$__CodeName" != "jessie" ]]; then
                 __CodeName=xenial
             fi
             ;;
         zesty) # Ubuntu 17.04
-            if [ "$__CodeName" != "jessie" ]; then
+            if [[ "$__CodeName" != "jessie" ]]; then
                 __CodeName=zesty
             fi
             ;;
         bionic) # Ubuntu 18.04
-            if [ "$__CodeName" != "jessie" ]; then
+            if [[ "$__CodeName" != "jessie" ]]; then
                 __CodeName=bionic
             fi
             ;;
@@ -253,7 +253,7 @@ while :; do
             ;;
         --rootfsdir|-rootfsdir)
             shift
-            __RootfsDir=$1
+            __RootfsDir="$1"
             ;;
         --use-mirror)
             __UseMirror=1
@@ -266,71 +266,66 @@ while :; do
     shift
 done
 
-if [ -e "$__Keyring" ]; then
-    __Keyring="--keyring=$__Keyring"
-else
-    __Keyring=""
-fi
-
-if [ "$__BuildArch" == "armel" ]; then
+if [[ "$__BuildArch" == "armel" ]]; then
     __LLDB_Package="lldb-3.5-dev"
 fi
+
 __UbuntuPackages+=" ${__LLDB_Package:-}"
 
-if [ ! -z "$__LLVM_MajorVersion" ]; then
+if [[ -n "$__LLVM_MajorVersion" ]]; then
     __UbuntuPackages+=" libclang-common-${__LLVM_MajorVersion}${__LLVM_MinorVersion:+.$__LLVM_MinorVersion}-dev"
 fi
 
-if [ -z "$__RootfsDir" ] && [ ! -z "$ROOTFS_DIR" ]; then
-    __RootfsDir=$ROOTFS_DIR
+if [[ -z "$__RootfsDir" && -n "$ROOTFS_DIR" ]]; then
+    __RootfsDir="$ROOTFS_DIR"
 fi
 
-if [ -z "$__RootfsDir" ]; then
+if [[ -z "$__RootfsDir" ]]; then
     __RootfsDir="$__CrossDir/../../../.tools/rootfs/$__BuildArch"
 fi
 
-if [ -d "$__RootfsDir" ]; then
-    if [ $__SkipUnmount == 0 ]; then
-        umount $__RootfsDir/* || true
+if [[ -d "$__RootfsDir" ]]; then
+    if [[ "$__SkipUnmount" == "0" ]]; then
+        umount "$__RootfsDir"/* || true
     fi
-    rm -rf $__RootfsDir
+    rm -rf "$__RootfsDir"
 fi
 
-mkdir -p $__RootfsDir
+mkdir -p "$__RootfsDir"
 __RootfsDir="$( cd "$__RootfsDir" && pwd )"
 
 if [[ "$__CodeName" == "alpine" ]]; then
     __ApkToolsVersion=2.9.1
-    __ApkToolsDir=$(mktemp -d)
-    wget https://github.com/alpinelinux/apk-tools/releases/download/v$__ApkToolsVersion/apk-tools-$__ApkToolsVersion-x86_64-linux.tar.gz -P $__ApkToolsDir
-    tar -xf $__ApkToolsDir/apk-tools-$__ApkToolsVersion-x86_64-linux.tar.gz -C $__ApkToolsDir
-    mkdir -p $__RootfsDir/usr/bin
-    cp -v /usr/bin/qemu-$__QEMUArch-static $__RootfsDir/usr/bin
+    __ApkToolsDir="$(mktemp -d)"
+    wget "https://github.com/alpinelinux/apk-tools/releases/download/v$__ApkToolsVersion/apk-tools-$__ApkToolsVersion-x86_64-linux.tar.gz" -P "$__ApkToolsDir"
+    tar -xf "$__ApkToolsDir/apk-tools-$__ApkToolsVersion-x86_64-linux.tar.gz" -C "$__ApkToolsDir"
+    mkdir -p "$__RootfsDir"/usr/bin
+    cp -v "/usr/bin/qemu-$__QEMUArch-static" "$__RootfsDir/usr/bin"
 
-    $__ApkToolsDir/apk-tools-$__ApkToolsVersion/apk \
-      -X http://dl-cdn.alpinelinux.org/alpine/v$__AlpineVersion/main \
-      -X http://dl-cdn.alpinelinux.org/alpine/v$__AlpineVersion/community \
-      -U --allow-untrusted --root $__RootfsDir --arch $__AlpineArch --initdb \
+    "$__ApkToolsDir/apk-tools-$__ApkToolsVersion/apk" \
+      -X "http://dl-cdn.alpinelinux.org/alpine/v$__AlpineVersion/main" \
+      -X "http://dl-cdn.alpinelinux.org/alpine/v$__AlpineVersion/community" \
+      -U --allow-untrusted --root "$__RootfsDir" --arch "$__AlpineArch" --initdb \
       add $__AlpinePackages
 
-    rm -r $__ApkToolsDir
+    rm -r "$__ApkToolsDir"
 elif [[ "$__CodeName" == "freebsd" ]]; then
-    mkdir -p $__RootfsDir/usr/local/etc
+    mkdir -p "$__RootfsDir"/usr/local/etc
     JOBS="$(getconf _NPROCESSORS_ONLN)"
-    wget -O - https://download.freebsd.org/ftp/releases/${__FreeBSDArch}/${__FreeBSDMachineArch}/${__FreeBSDBase}/base.txz | tar -C $__RootfsDir -Jxf - ./lib ./usr/lib ./usr/libdata ./usr/include ./usr/share/keys ./etc ./bin/freebsd-version
-    echo "ABI = \"FreeBSD:${__FreeBSDABI}:${__FreeBSDMachineArch}\"; FINGERPRINTS = \"${__RootfsDir}/usr/share/keys\"; REPOS_DIR = [\"${__RootfsDir}/etc/pkg\"]; REPO_AUTOUPDATE = NO; RUN_SCRIPTS = NO;" > ${__RootfsDir}/usr/local/etc/pkg.conf
-    echo "FreeBSD: { url: "pkg+http://pkg.FreeBSD.org/\${ABI}/quarterly", mirror_type: \"srv\", signature_type: \"fingerprints\", fingerprints: \"${__RootfsDir}/usr/share/keys/pkg\", enabled: yes }" > ${__RootfsDir}/etc/pkg/FreeBSD.conf
-    mkdir -p $__RootfsDir/tmp
+    wget -O - "https://download.freebsd.org/ftp/releases/${__FreeBSDArch}/${__FreeBSDMachineArch}/${__FreeBSDBase}/base.txz" | tar -C "$__RootfsDir" -Jxf - ./lib ./usr/lib ./usr/libdata ./usr/include ./usr/share/keys ./etc ./bin/freebsd-version
+    echo "ABI = \"FreeBSD:${__FreeBSDABI}:${__FreeBSDMachineArch}\"; FINGERPRINTS = \"${__RootfsDir}/usr/share/keys\"; REPOS_DIR = [\"${__RootfsDir}/etc/pkg\"]; REPO_AUTOUPDATE = NO; RUN_SCRIPTS = NO;" > "${__RootfsDir}"/usr/local/etc/pkg.conf
+    echo "FreeBSD: { url: \"pkg+http://pkg.FreeBSD.org/\${ABI}/quarterly\", mirror_type: \"srv\", signature_type: \"fingerprints\", fingerprints: \"${__RootfsDir}/usr/share/keys/pkg\", enabled: yes }" > "${__RootfsDir}"/etc/pkg/FreeBSD.conf
+    mkdir -p "$__RootfsDir"/tmp
     # get and build package manager
-    wget -O -  https://github.com/freebsd/pkg/archive/${__FreeBSDPkg}.tar.gz  |  tar -C $__RootfsDir/tmp -zxf -
-    cd $__RootfsDir/tmp/pkg-${__FreeBSDPkg}
+    wget -O - "https://github.com/freebsd/pkg/archive/${__FreeBSDPkg}.tar.gz" | tar -C "$__RootfsDir"/tmp -zxf -
+    cd "$__RootfsDir/tmp/pkg-${__FreeBSDPkg}"
     # needed for install to succeed
-    mkdir -p $__RootfsDir/host/etc
-    ./autogen.sh && ./configure --prefix=$__RootfsDir/host && make -j "$JOBS" && make install
-    rm -rf $__RootfsDir/tmp/pkg-${__FreeBSDPkg}
+    mkdir -p "$__RootfsDir"/host/etc
+    ./autogen.sh && ./configure --prefix="$__RootfsDir"/host && make -j "$JOBS" && make install
+    rm -rf "$__RootfsDir/tmp/pkg-${__FreeBSDPkg}"
     # install packages we need.
-    INSTALL_AS_USER=$(whoami) $__RootfsDir/host/sbin/pkg -r $__RootfsDir -C $__RootfsDir/usr/local/etc/pkg.conf update
-    INSTALL_AS_USER=$(whoami) $__RootfsDir/host/sbin/pkg -r $__RootfsDir -C $__RootfsDir/usr/local/etc/pkg.conf install --yes $__FreeBSDPackages
+    INSTALL_AS_USER=$(whoami) "$__RootfsDir"/host/sbin/pkg -r "$__RootfsDir" -C "$__RootfsDir"/usr/local/etc/pkg.conf update
+    INSTALL_AS_USER=$(whoami) "$__RootfsDir"/host/sbin/pkg -r "$__RootfsDir" -C "$__RootfsDir"/usr/local/etc/pkg.conf install --yes $__FreeBSDPackages
 elif [[ "$__CodeName" == "illumos" ]]; then
     mkdir "$__RootfsDir/tmp"
     pushd "$__RootfsDir/tmp"
@@ -358,7 +353,7 @@ elif [[ "$__CodeName" == "illumos" ]]; then
     if [[ "$__UseMirror" == 1 ]]; then
         BaseUrl=http://pkgsrc.smartos.skylime.net
     fi
-    BaseUrl="$BaseUrl"/packages/SmartOS/2020Q1/${__illumosArch}/All
+    BaseUrl="$BaseUrl/packages/SmartOS/2020Q1/${__illumosArch}/All"
     echo "Downloading dependencies."
     read -ra array <<<"$__IllumosPackages"
     for package in "${array[@]}"; do
@@ -376,26 +371,26 @@ elif [[ "$__CodeName" == "illumos" ]]; then
     wget -P "$__RootfsDir"/usr/include/net https://raw.githubusercontent.com/illumos/illumos-gate/master/usr/src/uts/common/io/bpf/net/dlt.h
     wget -P "$__RootfsDir"/usr/include/netpacket https://raw.githubusercontent.com/illumos/illumos-gate/master/usr/src/uts/common/inet/sockmods/netpacket/packet.h
     wget -P "$__RootfsDir"/usr/include/sys https://raw.githubusercontent.com/illumos/illumos-gate/master/usr/src/uts/common/sys/sdt.h
-elif [[ -n $__CodeName ]]; then
-    qemu-debootstrap $__Keyring --arch $__UbuntuArch $__CodeName $__RootfsDir $__UbuntuRepo
-    cp $__CrossDir/$__BuildArch/sources.list.$__CodeName $__RootfsDir/etc/apt/sources.list
-    chroot $__RootfsDir apt-get update
-    chroot $__RootfsDir apt-get -f -y install
-    chroot $__RootfsDir apt-get -y install $__UbuntuPackages
-    chroot $__RootfsDir symlinks -cr /usr
-    chroot $__RootfsDir apt-get clean
+elif [[ -n "$__CodeName" ]]; then
+    qemu-debootstrap $__Keyring --arch "$__UbuntuArch" "$__CodeName" "$__RootfsDir" "$__UbuntuRepo"
+    cp "$__CrossDir/$__BuildArch/sources.list.$__CodeName" "$__RootfsDir/etc/apt/sources.list"
+    chroot "$__RootfsDir" apt-get update
+    chroot "$__RootfsDir" apt-get -f -y install
+    chroot "$__RootfsDir" apt-get -y install $__UbuntuPackages
+    chroot "$__RootfsDir" symlinks -cr /usr
+    chroot "$__RootfsDir" apt-get clean
 
-    if [ $__SkipUnmount == 0 ]; then
-        umount $__RootfsDir/* || true
+    if [[ "$__SkipUnmount" == "0" ]]; then
+        umount "$__RootfsDir"/* || true
     fi
 
     if [[ "$__BuildArch" == "armel" && "$__CodeName" == "jessie" ]]; then
-        pushd $__RootfsDir
-        patch -p1 < $__CrossDir/$__BuildArch/armel.jessie.patch
+        pushd "$__RootfsDir"
+        patch -p1 < "$__CrossDir/$__BuildArch/armel.jessie.patch"
         popd
     fi
 elif [[ "$__Tizen" == "tizen" ]]; then
-    ROOTFS_DIR=$__RootfsDir $__CrossDir/$__BuildArch/tizen-build-rootfs.sh
+    ROOTFS_DIR="$__RootfsDir $__CrossDir/$__BuildArch/tizen-build-rootfs.sh"
 else
     echo "Unsupported target platform."
     usage;
diff --git a/global.json b/global.json
index fb5e0e88d..3653a824f 100644
--- a/global.json
+++ b/global.json
@@ -6,7 +6,7 @@
     "xcopy-msbuild": "16.8.0-preview2.1"
   },
   "msbuild-sdks": {
-    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22376.3",
-    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22376.3"
+    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22377.15",
+    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22377.15"
   }
 }

From a5a1a5c22d740d759cb79d02e55ef19c7ae73b12 Mon Sep 17 00:00:00 2001
From: "dotnet-maestro[bot]" <dotnet-maestro[bot]@users.noreply.github.com>
Date: Fri, 29 Jul 2022 12:42:41 +0000
Subject: [PATCH 25/34] Update dependencies from
 https://github.com/dotnet/arcade build 20220728.16

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 7.0.0-beta.22314.8 -> To Version 7.0.0-beta.22378.16
---
 eng/Version.Details.xml                   |  8 ++--
 eng/common/build.sh                       |  2 +-
 eng/common/cross/build-rootfs.sh          | 37 ++++++++++++------
 eng/common/cross/riscv64/sources.list.sid |  1 +
 eng/common/cross/toolchain.cmake          | 47 ++++++++++++-----------
 global.json                               |  4 +-
 6 files changed, 59 insertions(+), 40 deletions(-)
 create mode 100644 eng/common/cross/riscv64/sources.list.sid

diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index 2ea3cd4bb..1d951774d 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -3,13 +3,13 @@
   <ProductDependencies>
   </ProductDependencies>
   <ToolsetDependencies>
-    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22377.15">
+    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22378.16">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>7df67590fb080663ada77f269a8b132ef127a039</Sha>
+      <Sha>6f93ec8da69a42fbe9a702a33e104f94773c3f03</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22377.15">
+    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22378.16">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>7df67590fb080663ada77f269a8b132ef127a039</Sha>
+      <Sha>6f93ec8da69a42fbe9a702a33e104f94773c3f03</Sha>
     </Dependency>
   </ToolsetDependencies>
 </Dependencies>
diff --git a/eng/common/build.sh b/eng/common/build.sh
index 9031d41ea..50af40cdd 100644
--- a/eng/common/build.sh
+++ b/eng/common/build.sh
@@ -19,7 +19,7 @@ usage()
   echo "Actions:"
   echo "  --restore                  Restore dependencies (short: -r)"
   echo "  --build                    Build solution (short: -b)"
-  echo "  --source-build             Source-build the solution (short: -sb)"
+  echo "  --sourceBuild              Source-build the solution (short: -sb)"
   echo "                             Will additionally trigger the following actions: --restore, --build, --pack"
   echo "                             If --configuration is not set explicitly, will also set it to 'Release'"
   echo "  --rebuild                  Rebuild solution"
diff --git a/eng/common/cross/build-rootfs.sh b/eng/common/cross/build-rootfs.sh
index 77eaac60c..f058c9876 100644
--- a/eng/common/cross/build-rootfs.sh
+++ b/eng/common/cross/build-rootfs.sh
@@ -5,7 +5,7 @@ set -e
 usage()
 {
     echo "Usage: $0 [BuildArch] [CodeName] [lldbx.y] [llvmx[.y]] [--skipunmount] --rootfsdir <directory>]"
-    echo "BuildArch can be: arm(default), armel, arm64, x86, x64"
+    echo "BuildArch can be: arm(default), arm64, armel, armv6, ppc64le, riscv64, s390x, x64, x86"
     echo "CodeName - optional, Code name for Linux, can be: xenial(default), zesty, bionic, alpine, alpine3.13 or alpine3.14. If BuildArch is armel, LinuxCodeName is jessie(default) or tizen."
     echo "                              for FreeBSD can be: freebsd12, freebsd13"
     echo "                              for illumos can be: illumos."
@@ -104,15 +104,6 @@ while :; do
             __AlpineArch=armv7
             __QEMUArch=arm
             ;;
-        armv6)
-            __BuildArch=armv6
-            __UbuntuArch=armhf
-            __QEMUArch=arm
-            __UbuntuRepo="http://raspbian.raspberrypi.org/raspbian/"
-            __CodeName=buster
-            __LLDB_Package="liblldb-6.0-dev"
-            __Keyring="--keyring /usr/share/keyrings/raspbian-archive-keyring.gpg"
-            ;;
         arm64)
             __BuildArch=arm64
             __UbuntuArch=arm64
@@ -127,6 +118,18 @@ while :; do
             __UbuntuRepo="http://ftp.debian.org/debian/"
             __CodeName=jessie
             ;;
+        armv6)
+            __BuildArch=armv6
+            __UbuntuArch=armhf
+            __QEMUArch=arm
+            __UbuntuRepo="http://raspbian.raspberrypi.org/raspbian/"
+            __CodeName=buster
+            __LLDB_Package="liblldb-6.0-dev"
+
+            if [[ -e "/usr/share/keyrings/raspbian-archive-keyring.gpg" ]]; then
+                __Keyring="--keyring /usr/share/keyrings/raspbian-archive-keyring.gpg"
+            fi
+            ;;
         ppc64le)
             __BuildArch=ppc64le
             __UbuntuArch=ppc64el
@@ -136,6 +139,18 @@ while :; do
             __UbuntuPackages=$(echo ${__UbuntuPackages} | sed 's/ libomp5//')
             unset __LLDB_Package
             ;;
+        riscv64)
+            __BuildArch=riscv64
+            __UbuntuArch=riscv64
+            __UbuntuRepo="http://deb.debian.org/debian-ports"
+            __CodeName=sid
+            __UbuntuPackages=$(echo ${__UbuntuPackages} | sed 's/ libunwind8-dev//')
+            unset __LLDB_Package
+
+            if [[ -e "/usr/share/keyrings/debian-ports-archive-keyring.gpg" ]]; then
+                __Keyring="--keyring /usr/share/keyrings/debian-ports-archive-keyring.gpg --include=debian-ports-archive-keyring"
+            fi
+            ;;
         s390x)
             __BuildArch=s390x
             __UbuntuArch=s390x
@@ -390,7 +405,7 @@ elif [[ -n "$__CodeName" ]]; then
         popd
     fi
 elif [[ "$__Tizen" == "tizen" ]]; then
-    ROOTFS_DIR="$__RootfsDir $__CrossDir/$__BuildArch/tizen-build-rootfs.sh"
+    ROOTFS_DIR="$__RootfsDir" "$__CrossDir/$__BuildArch/tizen-build-rootfs.sh"
 else
     echo "Unsupported target platform."
     usage;
diff --git a/eng/common/cross/riscv64/sources.list.sid b/eng/common/cross/riscv64/sources.list.sid
new file mode 100644
index 000000000..65f730d22
--- /dev/null
+++ b/eng/common/cross/riscv64/sources.list.sid
@@ -0,0 +1 @@
+deb http://deb.debian.org/debian-ports sid main
diff --git a/eng/common/cross/toolchain.cmake b/eng/common/cross/toolchain.cmake
index d5dfc1350..909117759 100644
--- a/eng/common/cross/toolchain.cmake
+++ b/eng/common/cross/toolchain.cmake
@@ -19,13 +19,7 @@ elseif(EXISTS ${CROSS_ROOTFS}/android_platform)
   set(ANDROID 1)
 endif()
 
-if(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")
-  endif()
-elseif(TARGET_ARCH_NAME STREQUAL "arm")
+if(TARGET_ARCH_NAME STREQUAL "arm")
   set(CMAKE_SYSTEM_PROCESSOR armv7l)
   if(EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/armv7-alpine-linux-musleabihf)
     set(TOOLCHAIN "armv7-alpine-linux-musleabihf")
@@ -37,13 +31,6 @@ elseif(TARGET_ARCH_NAME STREQUAL "arm")
   if(TIZEN)
     set(TIZEN_TOOLCHAIN "armv7hl-tizen-linux-gnueabihf/9.2.0")
   endif()
-elseif(TARGET_ARCH_NAME STREQUAL "armv6")
-  set(CMAKE_SYSTEM_PROCESSOR armv6l)
-  if(EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/armv6-alpine-linux-musleabihf)
-    set(TOOLCHAIN "armv6-alpine-linux-musleabihf")
-  else()
-    set(TOOLCHAIN "arm-linux-gnueabihf")
-  endif()
 elseif(TARGET_ARCH_NAME STREQUAL "arm64")
   set(CMAKE_SYSTEM_PROCESSOR aarch64)
   if(EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/aarch64-alpine-linux-musl)
@@ -56,18 +43,28 @@ elseif(TARGET_ARCH_NAME STREQUAL "arm64")
   elseif(FREEBSD)
     set(triple "aarch64-unknown-freebsd12")
   endif()
+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")
+  endif()
+elseif(TARGET_ARCH_NAME STREQUAL "armv6")
+  set(CMAKE_SYSTEM_PROCESSOR armv6l)
+  if(EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/armv6-alpine-linux-musleabihf)
+    set(TOOLCHAIN "armv6-alpine-linux-musleabihf")
+  else()
+    set(TOOLCHAIN "arm-linux-gnueabihf")
+  endif()
 elseif(TARGET_ARCH_NAME STREQUAL "ppc64le")
   set(CMAKE_SYSTEM_PROCESSOR ppc64le)
   set(TOOLCHAIN "powerpc64le-linux-gnu")
+elseif(TARGET_ARCH_NAME STREQUAL "riscv64")
+  set(CMAKE_SYSTEM_PROCESSOR riscv64)
+  set(TOOLCHAIN "riscv64-linux-gnu")
 elseif(TARGET_ARCH_NAME STREQUAL "s390x")
   set(CMAKE_SYSTEM_PROCESSOR s390x)
   set(TOOLCHAIN "s390x-linux-gnu")
-elseif(TARGET_ARCH_NAME STREQUAL "x86")
-  set(CMAKE_SYSTEM_PROCESSOR i686)
-  set(TOOLCHAIN "i686-linux-gnu")
-  if(TIZEN)
-    set(TIZEN_TOOLCHAIN "i586-tizen-linux-gnu/9.2.0")
-  endif()
 elseif(TARGET_ARCH_NAME STREQUAL "x64")
   set(CMAKE_SYSTEM_PROCESSOR x86_64)
   if(LINUX)
@@ -80,8 +77,14 @@ elseif(TARGET_ARCH_NAME STREQUAL "x64")
   elseif(ILLUMOS)
     set(TOOLCHAIN "x86_64-illumos")
   endif()
+elseif(TARGET_ARCH_NAME STREQUAL "x86")
+  set(CMAKE_SYSTEM_PROCESSOR i686)
+  set(TOOLCHAIN "i686-linux-gnu")
+  if(TIZEN)
+    set(TIZEN_TOOLCHAIN "i586-tizen-linux-gnu/9.2.0")
+  endif()
 else()
-  message(FATAL_ERROR "Arch is ${TARGET_ARCH_NAME}. Only armel, arm, armv6, arm64, ppc64le, s390x and x86 are supported!")
+  message(FATAL_ERROR "Arch is ${TARGET_ARCH_NAME}. Only arm, arm64, armel, armv6, ppc64le, riscv64, s390x, x64 and x86 are supported!")
 endif()
 
 if(DEFINED ENV{TOOLCHAIN})
@@ -226,7 +229,7 @@ endif()
 
 # Specify compile options
 
-if((TARGET_ARCH_NAME MATCHES "^(arm|armv6|armel|arm64|ppc64le|s390x)$" AND NOT ANDROID AND NOT FREEBSD) OR ILLUMOS)
+if((TARGET_ARCH_NAME MATCHES "^(arm|arm64|armel|armv6|ppc64le|riscv64|s390x)$" AND NOT ANDROID AND NOT FREEBSD) OR ILLUMOS)
   set(CMAKE_C_COMPILER_TARGET ${TOOLCHAIN})
   set(CMAKE_CXX_COMPILER_TARGET ${TOOLCHAIN})
   set(CMAKE_ASM_COMPILER_TARGET ${TOOLCHAIN})
diff --git a/global.json b/global.json
index 3653a824f..012b5f67f 100644
--- a/global.json
+++ b/global.json
@@ -6,7 +6,7 @@
     "xcopy-msbuild": "16.8.0-preview2.1"
   },
   "msbuild-sdks": {
-    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22377.15",
-    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22377.15"
+    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22378.16",
+    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22378.16"
   }
 }

From 117e2ab44b17a4b4a0a0998a3e7938f0800c7c52 Mon Sep 17 00:00:00 2001
From: "dotnet-maestro[bot]" <dotnet-maestro[bot]@users.noreply.github.com>
Date: Sat, 30 Jul 2022 12:44:23 +0000
Subject: [PATCH 26/34] Update dependencies from
 https://github.com/dotnet/arcade build 20220729.10

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 7.0.0-beta.22314.8 -> To Version 7.0.0-beta.22379.10
---
 eng/Version.Details.xml                       |  8 +--
 eng/common/SetupNugetSources.ps1              | 18 ++---
 eng/common/SetupNugetSources.sh               | 68 +++++++------------
 eng/common/native/init-compiler.sh            |  2 +-
 .../templates/post-build/post-build.yml       |  2 +
 eng/common/templates/steps/execute-sdl.yml    | 21 ++++++
 global.json                                   |  4 +-
 7 files changed, 63 insertions(+), 60 deletions(-)

diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index 1d951774d..1970971bd 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -3,13 +3,13 @@
   <ProductDependencies>
   </ProductDependencies>
   <ToolsetDependencies>
-    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22378.16">
+    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22379.10">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>6f93ec8da69a42fbe9a702a33e104f94773c3f03</Sha>
+      <Sha>1e73f4ab4c172aa55614f24b2d5c319e1efb8813</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22378.16">
+    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22379.10">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>6f93ec8da69a42fbe9a702a33e104f94773c3f03</Sha>
+      <Sha>1e73f4ab4c172aa55614f24b2d5c319e1efb8813</Sha>
     </Dependency>
   </ToolsetDependencies>
 </Dependencies>
diff --git a/eng/common/SetupNugetSources.ps1 b/eng/common/SetupNugetSources.ps1
index 18823840b..6e9972394 100644
--- a/eng/common/SetupNugetSources.ps1
+++ b/eng/common/SetupNugetSources.ps1
@@ -146,22 +146,22 @@ $userName = "dn-bot"
 # Insert credential nodes for Maestro's private feeds
 InsertMaestroPrivateFeedCredentials -Sources $sources -Creds $creds -Username $userName -Password $Password
 
+# 3.1 uses a different feed url format so it's handled differently here
 $dotnet31Source = $sources.SelectSingleNode("add[@key='dotnet3.1']")
 if ($dotnet31Source -ne $null) {
     AddPackageSource -Sources $sources -SourceName "dotnet3.1-internal" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/_packaging/dotnet3.1-internal/nuget/v2" -Creds $creds -Username $userName -Password $Password
     AddPackageSource -Sources $sources -SourceName "dotnet3.1-internal-transport" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/_packaging/dotnet3.1-internal-transport/nuget/v2" -Creds $creds -Username $userName -Password $Password
 }
 
-$dotnet5Source = $sources.SelectSingleNode("add[@key='dotnet5']")
-if ($dotnet5Source -ne $null) {
-    AddPackageSource -Sources $sources -SourceName "dotnet5-internal" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/dotnet5-internal/nuget/v2" -Creds $creds -Username $userName -Password $Password
-    AddPackageSource -Sources $sources -SourceName "dotnet5-internal-transport" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/dotnet5-internal-transport/nuget/v2" -Creds $creds -Username $userName -Password $Password
-}
+$dotnetVersions = @('5','6','7')
 
-$dotnet6Source = $sources.SelectSingleNode("add[@key='dotnet6']")
-if ($dotnet6Source -ne $null) {
-    AddPackageSource -Sources $sources -SourceName "dotnet6-internal" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/dotnet6-internal/nuget/v2" -Creds $creds -Username $userName -Password $Password
-    AddPackageSource -Sources $sources -SourceName "dotnet6-internal-transport" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/dotnet6-internal-transport/nuget/v2" -Creds $creds -Username $userName -Password $Password
+foreach ($dotnetVersion in $dotnetVersions) {
+    $feedPrefix = "dotnet" + $dotnetVersion;
+    $dotnetSource = $sources.SelectSingleNode("add[@key='$feedPrefix']")
+    if ($dotnetSource -ne $null) {
+        AddPackageSource -Sources $sources -SourceName "$feedPrefix-internal" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/$feedPrefix-internal/nuget/v2" -Creds $creds -Username $userName -Password $Password
+        AddPackageSource -Sources $sources -SourceName "$feedPrefix-internal-transport" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/$feedPrefix-internal-transport/nuget/v2" -Creds $creds -Username $userName -Password $Password
+    }
 }
 
 $doc.Save($filename)
diff --git a/eng/common/SetupNugetSources.sh b/eng/common/SetupNugetSources.sh
index ad3fb74fd..8af7d899d 100644
--- a/eng/common/SetupNugetSources.sh
+++ b/eng/common/SetupNugetSources.sh
@@ -105,53 +105,33 @@ if [ "$?" == "0" ]; then
     PackageSources+=('dotnet3.1-internal-transport')
 fi
 
-# Ensure dotnet5-internal and dotnet5-internal-transport are in the packageSources if the public dotnet5 feeds are present
-grep -i "<add key=\"dotnet5\"" $ConfigFile
-if [ "$?" == "0" ]; then
-    grep -i "<add key=\"dotnet5-internal\"" $ConfigFile
-    if [ "$?" != "0" ]; then
-        echo "Adding dotnet5-internal to the packageSources."
-        PackageSourcesNodeFooter="</packageSources>"
-        PackageSourceTemplate="${TB}<add key=\"dotnet5-internal\" value=\"https://pkgs.dev.azure.com/dnceng/internal/_packaging/dotnet5-internal/nuget/v2\" />"
-
-        sed -i.bak "s|$PackageSourcesNodeFooter|$PackageSourceTemplate${NL}$PackageSourcesNodeFooter|" $ConfigFile
-    fi
-    PackageSources+=('dotnet5-internal')
-
-    grep -i "<add key=\"dotnet5-internal-transport\">" $ConfigFile
-    if [ "$?" != "0" ]; then
-        echo "Adding dotnet5-internal-transport to the packageSources."
-        PackageSourcesNodeFooter="</packageSources>"
-        PackageSourceTemplate="${TB}<add key=\"dotnet5-internal-transport\" value=\"https://pkgs.dev.azure.com/dnceng/internal/_packaging/dotnet5-internal-transport/nuget/v2\" />"
-
-        sed -i.bak "s|$PackageSourcesNodeFooter|$PackageSourceTemplate${NL}$PackageSourcesNodeFooter|" $ConfigFile
-    fi
-    PackageSources+=('dotnet5-internal-transport')
-fi
-
-# Ensure dotnet6-internal and dotnet6-internal-transport are in the packageSources if the public dotnet6 feeds are present
-grep -i "<add key=\"dotnet6\"" $ConfigFile
-if [ "$?" == "0" ]; then
-    grep -i "<add key=\"dotnet6-internal\"" $ConfigFile
-    if [ "$?" != "0" ]; then
-        echo "Adding dotnet6-internal to the packageSources."
-        PackageSourcesNodeFooter="</packageSources>"
-        PackageSourceTemplate="${TB}<add key=\"dotnet6-internal\" value=\"https://pkgs.dev.azure.com/dnceng/internal/_packaging/dotnet6-internal/nuget/v2\" />"
+DotNetVersions=('5' '6' '7')
+
+for DotNetVersion in ${DotNetVersions[@]} ; do
+    FeedPrefix="dotnet${DotNetVersion}";
+    grep -i "<add key=\"$FeedPrefix\"" $ConfigFile
+    if [ "$?" == "0" ]; then
+        grep -i "<add key=\"$FeedPrefix-internal\"" $ConfigFile
+        if [ "$?" != "0" ]; then
+            echo "Adding $FeedPrefix-internal to the packageSources."
+            PackageSourcesNodeFooter="</packageSources>"
+            PackageSourceTemplate="${TB}<add key=\"$FeedPrefix-internal\" value=\"https://pkgs.dev.azure.com/dnceng/internal/_packaging/$FeedPrefix-internal/nuget/v2\" />"
+
+            sed -i.bak "s|$PackageSourcesNodeFooter|$PackageSourceTemplate${NL}$PackageSourcesNodeFooter|" $ConfigFile
+        fi
+        PackageSources+=("$FeedPrefix-internal")
 
-        sed -i.bak "s|$PackageSourcesNodeFooter|$PackageSourceTemplate${NL}$PackageSourcesNodeFooter|" $ConfigFile
-    fi
-    PackageSources+=('dotnet6-internal')
+        grep -i "<add key=\"$FeedPrefix-internal-transport\">" $ConfigFile
+        if [ "$?" != "0" ]; then
+            echo "Adding $FeedPrefix-internal-transport to the packageSources."
+            PackageSourcesNodeFooter="</packageSources>"
+            PackageSourceTemplate="${TB}<add key=\"$FeedPrefix-internal-transport\" value=\"https://pkgs.dev.azure.com/dnceng/internal/_packaging/$FeedPrefix-internal-transport/nuget/v2\" />"
 
-    grep -i "<add key=\"dotnet6-internal-transport\">" $ConfigFile
-    if [ "$?" != "0" ]; then
-        echo "Adding dotnet6-internal-transport to the packageSources."
-        PackageSourcesNodeFooter="</packageSources>"
-        PackageSourceTemplate="${TB}<add key=\"dotnet6-internal-transport\" value=\"https://pkgs.dev.azure.com/dnceng/internal/_packaging/dotnet6-internal-transport/nuget/v2\" />"
-
-        sed -i.bak "s|$PackageSourcesNodeFooter|$PackageSourceTemplate${NL}$PackageSourcesNodeFooter|" $ConfigFile
+            sed -i.bak "s|$PackageSourcesNodeFooter|$PackageSourceTemplate${NL}$PackageSourcesNodeFooter|" $ConfigFile
+        fi
+        PackageSources+=("$FeedPrefix-internal-transport")
     fi
-    PackageSources+=('dotnet6-internal-transport')
-fi
+done
 
 # I want things split line by line
 PrevIFS=$IFS
diff --git a/eng/common/native/init-compiler.sh b/eng/common/native/init-compiler.sh
index 4b99a9cad..41a26d802 100644
--- a/eng/common/native/init-compiler.sh
+++ b/eng/common/native/init-compiler.sh
@@ -71,7 +71,7 @@ if [[ -z "$CLR_CC" ]]; then
     # Set default versions
     if [[ -z "$majorVersion" ]]; then
         # note: gcc (all versions) and clang versions higher than 6 do not have minor version in file name, if it is zero.
-        if [[ "$compiler" == "clang" ]]; then versions=( 14 13 12 11 10 9 8 7 6.0 5.0 4.0 3.9 3.8 3.7 3.6 3.5 )
+        if [[ "$compiler" == "clang" ]]; then versions=( 15 14 13 12 11 10 9 8 7 6.0 5.0 4.0 3.9 3.8 3.7 3.6 3.5 )
         elif [[ "$compiler" == "gcc" ]]; then versions=( 12 11 10 9 8 7 6 5 4.9 ); fi
 
         for version in "${versions[@]}"; do
diff --git a/eng/common/templates/post-build/post-build.yml b/eng/common/templates/post-build/post-build.yml
index 5a9056f6b..e0beb25d4 100644
--- a/eng/common/templates/post-build/post-build.yml
+++ b/eng/common/templates/post-build/post-build.yml
@@ -49,6 +49,7 @@ parameters:
     type: object
     default:
       enable: false
+      publishGdn: false
       continueOnError: false
       params: ''
       artifactNames: ''
@@ -235,6 +236,7 @@ stages:
     - template: /eng/common/templates/job/execute-sdl.yml
       parameters:
         enable: ${{ parameters.SDLValidationParameters.enable }}
+        publishGuardianDirectoryToPipeline: ${{ parameters.SDLValidationParameters.publishGdn }}
         additionalParameters: ${{ parameters.SDLValidationParameters.params }}
         continueOnError: ${{ parameters.SDLValidationParameters.continueOnError }}
         artifactNames: ${{ parameters.SDLValidationParameters.artifactNames }}
diff --git a/eng/common/templates/steps/execute-sdl.yml b/eng/common/templates/steps/execute-sdl.yml
index 7b8ee18a2..73245593c 100644
--- a/eng/common/templates/steps/execute-sdl.yml
+++ b/eng/common/templates/steps/execute-sdl.yml
@@ -62,7 +62,28 @@ steps:
         c
         i
     condition: succeededOrFailed()
+
   - publish: $(Agent.BuildDirectory)/.gdn
     artifact: GuardianConfiguration
     displayName: Publish GuardianConfiguration
+    condition: succeededOrFailed()
+
+  # Publish the SARIF files in a container named CodeAnalysisLogs to enable integration
+  # with the "SARIF SAST Scans Tab" Azure DevOps extension
+  - task: CopyFiles@2
+    displayName: Copy SARIF files
+    inputs:
+      flattenFolders: true
+      sourceFolder:  $(Agent.BuildDirectory)/.gdn/rc/
+      contents: '**/*.sarif'
+      targetFolder: $(Build.SourcesDirectory)/CodeAnalysisLogs
+    condition: succeededOrFailed()
+
+  # Use PublishBuildArtifacts because the SARIF extension only checks this case
+  # see microsoft/sarif-azuredevops-extension#4
+  - task: PublishBuildArtifacts@1
+    displayName: Publish SARIF files to CodeAnalysisLogs container
+    inputs:
+      pathToPublish:  $(Build.SourcesDirectory)/CodeAnalysisLogs
+      artifactName: CodeAnalysisLogs
     condition: succeededOrFailed()
\ No newline at end of file
diff --git a/global.json b/global.json
index 012b5f67f..cba878729 100644
--- a/global.json
+++ b/global.json
@@ -6,7 +6,7 @@
     "xcopy-msbuild": "16.8.0-preview2.1"
   },
   "msbuild-sdks": {
-    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22378.16",
-    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22378.16"
+    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22379.10",
+    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22379.10"
   }
 }

From 7e2ba34cedb73685a15c2a19f5ed9c1fe23f5a95 Mon Sep 17 00:00:00 2001
From: "dotnet-maestro[bot]" <dotnet-maestro[bot]@users.noreply.github.com>
Date: Tue, 2 Aug 2022 12:47:39 +0000
Subject: [PATCH 27/34] Update dependencies from
 https://github.com/dotnet/arcade build 20220801.3

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 7.0.0-beta.22314.8 -> To Version 7.0.0-beta.22401.3
---
 eng/Version.Details.xml | 8 ++++----
 global.json             | 4 ++--
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index 1970971bd..da964520b 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -3,13 +3,13 @@
   <ProductDependencies>
   </ProductDependencies>
   <ToolsetDependencies>
-    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22379.10">
+    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22401.3">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>1e73f4ab4c172aa55614f24b2d5c319e1efb8813</Sha>
+      <Sha>aa90e21c63248b4d6d61e8de14a0d8e7a9275130</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22379.10">
+    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22401.3">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>1e73f4ab4c172aa55614f24b2d5c319e1efb8813</Sha>
+      <Sha>aa90e21c63248b4d6d61e8de14a0d8e7a9275130</Sha>
     </Dependency>
   </ToolsetDependencies>
 </Dependencies>
diff --git a/global.json b/global.json
index cba878729..3c72cd6da 100644
--- a/global.json
+++ b/global.json
@@ -6,7 +6,7 @@
     "xcopy-msbuild": "16.8.0-preview2.1"
   },
   "msbuild-sdks": {
-    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22379.10",
-    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22379.10"
+    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22401.3",
+    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22401.3"
   }
 }

From b2f6e8577d6a09694d5ccedbdbe6cf29951e541b Mon Sep 17 00:00:00 2001
From: "dotnet-maestro[bot]" <dotnet-maestro[bot]@users.noreply.github.com>
Date: Wed, 3 Aug 2022 12:44:50 +0000
Subject: [PATCH 28/34] Update dependencies from
 https://github.com/dotnet/arcade build 20220802.4

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 7.0.0-beta.22314.8 -> To Version 7.0.0-beta.22402.4
---
 eng/Version.Details.xml | 8 ++++----
 global.json             | 4 ++--
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index da964520b..79557b544 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -3,13 +3,13 @@
   <ProductDependencies>
   </ProductDependencies>
   <ToolsetDependencies>
-    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22401.3">
+    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22402.4">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>aa90e21c63248b4d6d61e8de14a0d8e7a9275130</Sha>
+      <Sha>f7e668c691281e5ba69447e938627522e7be852e</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22401.3">
+    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22402.4">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>aa90e21c63248b4d6d61e8de14a0d8e7a9275130</Sha>
+      <Sha>f7e668c691281e5ba69447e938627522e7be852e</Sha>
     </Dependency>
   </ToolsetDependencies>
 </Dependencies>
diff --git a/global.json b/global.json
index 3c72cd6da..aa31e2694 100644
--- a/global.json
+++ b/global.json
@@ -6,7 +6,7 @@
     "xcopy-msbuild": "16.8.0-preview2.1"
   },
   "msbuild-sdks": {
-    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22401.3",
-    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22401.3"
+    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22402.4",
+    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22402.4"
   }
 }

From b8f7dde39765da71c7623e89501361dc39a54ac9 Mon Sep 17 00:00:00 2001
From: "dotnet-maestro[bot]" <dotnet-maestro[bot]@users.noreply.github.com>
Date: Thu, 4 Aug 2022 12:46:10 +0000
Subject: [PATCH 29/34] Update dependencies from
 https://github.com/dotnet/arcade build 20220803.1

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 7.0.0-beta.22314.8 -> To Version 7.0.0-beta.22403.1
---
 eng/Version.Details.xml | 8 ++++----
 global.json             | 4 ++--
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index 79557b544..80871530c 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -3,13 +3,13 @@
   <ProductDependencies>
   </ProductDependencies>
   <ToolsetDependencies>
-    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22402.4">
+    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22403.1">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>f7e668c691281e5ba69447e938627522e7be852e</Sha>
+      <Sha>4ee620cc1b57da45d93135e064d43a83e65bbb6e</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22402.4">
+    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22403.1">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>f7e668c691281e5ba69447e938627522e7be852e</Sha>
+      <Sha>4ee620cc1b57da45d93135e064d43a83e65bbb6e</Sha>
     </Dependency>
   </ToolsetDependencies>
 </Dependencies>
diff --git a/global.json b/global.json
index aa31e2694..b251a28cf 100644
--- a/global.json
+++ b/global.json
@@ -6,7 +6,7 @@
     "xcopy-msbuild": "16.8.0-preview2.1"
   },
   "msbuild-sdks": {
-    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22402.4",
-    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22402.4"
+    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22403.1",
+    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22403.1"
   }
 }

From 4431c60649058605bcd378705cd48f149478b426 Mon Sep 17 00:00:00 2001
From: "dotnet-maestro[bot]" <dotnet-maestro[bot]@users.noreply.github.com>
Date: Sat, 6 Aug 2022 12:41:36 +0000
Subject: [PATCH 30/34] Update dependencies from
 https://github.com/dotnet/arcade build 20220805.2

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 7.0.0-beta.22314.8 -> To Version 7.0.0-beta.22405.2
---
 eng/Version.Details.xml                          | 8 ++++----
 eng/common/templates/job/source-index-stage1.yml | 2 +-
 global.json                                      | 4 ++--
 3 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index 80871530c..5ee1a8641 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -3,13 +3,13 @@
   <ProductDependencies>
   </ProductDependencies>
   <ToolsetDependencies>
-    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22403.1">
+    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22405.2">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>4ee620cc1b57da45d93135e064d43a83e65bbb6e</Sha>
+      <Sha>be709269603a9a3e90b189e6145b8450969ab067</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22403.1">
+    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22405.2">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>4ee620cc1b57da45d93135e064d43a83e65bbb6e</Sha>
+      <Sha>be709269603a9a3e90b189e6145b8450969ab067</Sha>
     </Dependency>
   </ToolsetDependencies>
 </Dependencies>
diff --git a/eng/common/templates/job/source-index-stage1.yml b/eng/common/templates/job/source-index-stage1.yml
index c2d51098d..4e3721085 100644
--- a/eng/common/templates/job/source-index-stage1.yml
+++ b/eng/common/templates/job/source-index-stage1.yml
@@ -1,6 +1,6 @@
 parameters:
   runAsPublic: false
-  sourceIndexPackageVersion: 1.0.1-20210614.1
+  sourceIndexPackageVersion: 1.0.1-20220804.1
   sourceIndexPackageSource: https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json
   sourceIndexBuildCommand: powershell -NoLogo -NoProfile -ExecutionPolicy Bypass -Command "eng/common/build.ps1 -restore -build -binarylog -ci"
   preSteps: []
diff --git a/global.json b/global.json
index b251a28cf..c121a6f6b 100644
--- a/global.json
+++ b/global.json
@@ -6,7 +6,7 @@
     "xcopy-msbuild": "16.8.0-preview2.1"
   },
   "msbuild-sdks": {
-    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22403.1",
-    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22403.1"
+    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22405.2",
+    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22405.2"
   }
 }

From 5da746dc56ec59a55dae939c85d579bfd200d9ee Mon Sep 17 00:00:00 2001
From: "dotnet-maestro[bot]" <dotnet-maestro[bot]@users.noreply.github.com>
Date: Sun, 7 Aug 2022 12:42:01 +0000
Subject: [PATCH 31/34] Update dependencies from
 https://github.com/dotnet/arcade build 20220805.6

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 7.0.0-beta.22314.8 -> To Version 7.0.0-beta.22405.6
---
 eng/Version.Details.xml | 8 ++++----
 global.json             | 4 ++--
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index 5ee1a8641..f5fb509ff 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -3,13 +3,13 @@
   <ProductDependencies>
   </ProductDependencies>
   <ToolsetDependencies>
-    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22405.2">
+    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22405.6">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>be709269603a9a3e90b189e6145b8450969ab067</Sha>
+      <Sha>58aed6cc9fde5155c79cf706eeccf31b03e9a8a7</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22405.2">
+    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22405.6">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>be709269603a9a3e90b189e6145b8450969ab067</Sha>
+      <Sha>58aed6cc9fde5155c79cf706eeccf31b03e9a8a7</Sha>
     </Dependency>
   </ToolsetDependencies>
 </Dependencies>
diff --git a/global.json b/global.json
index c121a6f6b..19c6f30ce 100644
--- a/global.json
+++ b/global.json
@@ -6,7 +6,7 @@
     "xcopy-msbuild": "16.8.0-preview2.1"
   },
   "msbuild-sdks": {
-    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22405.2",
-    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22405.2"
+    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22405.6",
+    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22405.6"
   }
 }

From b1f63a70f65ef3daa1b56df8594c0823834f1483 Mon Sep 17 00:00:00 2001
From: "dotnet-maestro[bot]" <dotnet-maestro[bot]@users.noreply.github.com>
Date: Tue, 9 Aug 2022 12:48:27 +0000
Subject: [PATCH 32/34] Update dependencies from
 https://github.com/dotnet/arcade build 20220808.3

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 7.0.0-beta.22314.8 -> To Version 7.0.0-beta.22408.3
---
 eng/Version.Details.xml | 8 ++++----
 global.json             | 4 ++--
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index f5fb509ff..30d76b0e8 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -3,13 +3,13 @@
   <ProductDependencies>
   </ProductDependencies>
   <ToolsetDependencies>
-    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22405.6">
+    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22408.3">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>58aed6cc9fde5155c79cf706eeccf31b03e9a8a7</Sha>
+      <Sha>13b342360ba81ca3fdf911fda985dc8420d51627</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22405.6">
+    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22408.3">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>58aed6cc9fde5155c79cf706eeccf31b03e9a8a7</Sha>
+      <Sha>13b342360ba81ca3fdf911fda985dc8420d51627</Sha>
     </Dependency>
   </ToolsetDependencies>
 </Dependencies>
diff --git a/global.json b/global.json
index 19c6f30ce..9f6995b4a 100644
--- a/global.json
+++ b/global.json
@@ -6,7 +6,7 @@
     "xcopy-msbuild": "16.8.0-preview2.1"
   },
   "msbuild-sdks": {
-    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22405.6",
-    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22405.6"
+    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22408.3",
+    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22408.3"
   }
 }

From 588d62a51a88e8edda81cd47afa6c849477b2202 Mon Sep 17 00:00:00 2001
From: "dotnet-maestro[bot]" <dotnet-maestro[bot]@users.noreply.github.com>
Date: Thu, 11 Aug 2022 12:46:22 +0000
Subject: [PATCH 33/34] Update dependencies from
 https://github.com/dotnet/arcade build 20220810.3

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 7.0.0-beta.22314.8 -> To Version 7.0.0-beta.22410.3
---
 eng/Version.Details.xml                       |  8 +-
 eng/common/cross/build-rootfs.sh              | 92 ++++++++++++++++++-
 eng/common/cross/toolchain.cmake              | 41 ++++++++-
 eng/common/templates/job/execute-sdl.yml      |  2 +-
 eng/common/templates/job/onelocbuild.yml      |  2 +-
 .../templates/job/source-index-stage1.yml     |  4 +-
 eng/common/templates/jobs/jobs.yml            |  2 +-
 .../templates/post-build/post-build.yml       |  8 +-
 eng/common/tools.ps1                          |  9 +-
 global.json                                   |  4 +-
 10 files changed, 152 insertions(+), 20 deletions(-)

diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index 30d76b0e8..648d215b2 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -3,13 +3,13 @@
   <ProductDependencies>
   </ProductDependencies>
   <ToolsetDependencies>
-    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22408.3">
+    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22410.3">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>13b342360ba81ca3fdf911fda985dc8420d51627</Sha>
+      <Sha>fd9941799bb6983a7d00ed72682378b46a45f396</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22408.3">
+    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22410.3">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>13b342360ba81ca3fdf911fda985dc8420d51627</Sha>
+      <Sha>fd9941799bb6983a7d00ed72682378b46a45f396</Sha>
     </Dependency>
   </ToolsetDependencies>
 </Dependencies>
diff --git a/eng/common/cross/build-rootfs.sh b/eng/common/cross/build-rootfs.sh
index f058c9876..d3b0ac3ba 100644
--- a/eng/common/cross/build-rootfs.sh
+++ b/eng/common/cross/build-rootfs.sh
@@ -8,11 +8,13 @@ usage()
     echo "BuildArch can be: arm(default), arm64, armel, armv6, ppc64le, riscv64, s390x, x64, x86"
     echo "CodeName - optional, Code name for Linux, can be: xenial(default), zesty, bionic, alpine, alpine3.13 or alpine3.14. If BuildArch is armel, LinuxCodeName is jessie(default) or tizen."
     echo "                              for FreeBSD can be: freebsd12, freebsd13"
-    echo "                              for illumos can be: illumos."
+    echo "                              for illumos can be: illumos"
+    echo "                                for Haiku can be: haiku."
     echo "lldbx.y - optional, LLDB version, can be: lldb3.9(default), lldb4.0, lldb5.0, lldb6.0 no-lldb. Ignored for alpine and FreeBSD"
     echo "llvmx[.y] - optional, LLVM version for LLVM related packages."
     echo "--skipunmount - optional, will skip the unmount of rootfs folder."
     echo "--use-mirror - optional, use mirror URL to fetch resources, when available."
+    echo "--jobs N - optional, restrict to N jobs."
     exit 1
 }
 
@@ -79,6 +81,17 @@ __IllumosPackages+=" mit-krb5-1.16.2nb4"
 __IllumosPackages+=" openssl-1.1.1e"
 __IllumosPackages+=" zlib-1.2.11"
 
+__HaikuPackages="gmp"
+__HaikuPackages+=" gmp_devel"
+__HaikuPackages+=" krb5"
+__HaikuPackages+=" krb5_devel"
+__HaikuPackages+=" libiconv"
+__HaikuPackages+=" libiconv_devel"
+__HaikuPackages+=" llvm12_libunwind"
+__HaikuPackages+=" llvm12_libunwind_devel"
+__HaikuPackages+=" mpfr"
+__HaikuPackages+=" mpfr_devel"
+
 # ML.NET dependencies
 __UbuntuPackages+=" libomp5"
 __UbuntuPackages+=" libomp-dev"
@@ -263,6 +276,11 @@ while :; do
             __CodeName=illumos
             __SkipUnmount=1
             ;;
+        haiku)
+            __CodeName=haiku
+            __BuildArch=x64
+            __SkipUnmount=1
+            ;;
         --skipunmount)
             __SkipUnmount=1
             ;;
@@ -273,6 +291,10 @@ while :; do
         --use-mirror)
             __UseMirror=1
             ;;
+        --use-jobs)
+            shift
+            MAXJOBS=$1
+            ;;
         *)
             __UnprocessedBuildArgs="$__UnprocessedBuildArgs $1"
             ;;
@@ -326,7 +348,7 @@ if [[ "$__CodeName" == "alpine" ]]; then
     rm -r "$__ApkToolsDir"
 elif [[ "$__CodeName" == "freebsd" ]]; then
     mkdir -p "$__RootfsDir"/usr/local/etc
-    JOBS="$(getconf _NPROCESSORS_ONLN)"
+    JOBS=${MAXJOBS:="$(getconf _NPROCESSORS_ONLN)"}
     wget -O - "https://download.freebsd.org/ftp/releases/${__FreeBSDArch}/${__FreeBSDMachineArch}/${__FreeBSDBase}/base.txz" | tar -C "$__RootfsDir" -Jxf - ./lib ./usr/lib ./usr/libdata ./usr/include ./usr/share/keys ./etc ./bin/freebsd-version
     echo "ABI = \"FreeBSD:${__FreeBSDABI}:${__FreeBSDMachineArch}\"; FINGERPRINTS = \"${__RootfsDir}/usr/share/keys\"; REPOS_DIR = [\"${__RootfsDir}/etc/pkg\"]; REPO_AUTOUPDATE = NO; RUN_SCRIPTS = NO;" > "${__RootfsDir}"/usr/local/etc/pkg.conf
     echo "FreeBSD: { url: \"pkg+http://pkg.FreeBSD.org/\${ABI}/quarterly\", mirror_type: \"srv\", signature_type: \"fingerprints\", fingerprints: \"${__RootfsDir}/usr/share/keys/pkg\", enabled: yes }" > "${__RootfsDir}"/etc/pkg/FreeBSD.conf
@@ -344,7 +366,7 @@ elif [[ "$__CodeName" == "freebsd" ]]; then
 elif [[ "$__CodeName" == "illumos" ]]; then
     mkdir "$__RootfsDir/tmp"
     pushd "$__RootfsDir/tmp"
-    JOBS="$(getconf _NPROCESSORS_ONLN)"
+    JOBS=${MAXJOBS:="$(getconf _NPROCESSORS_ONLN)"}
     echo "Downloading sysroot."
     wget -O - https://github.com/illumos/sysroot/releases/download/20181213-de6af22ae73b-v1/illumos-sysroot-i386-20181213-de6af22ae73b-v1.tar.gz | tar -C "$__RootfsDir" -xzf -
     echo "Building binutils. Please wait.."
@@ -386,6 +408,70 @@ elif [[ "$__CodeName" == "illumos" ]]; then
     wget -P "$__RootfsDir"/usr/include/net https://raw.githubusercontent.com/illumos/illumos-gate/master/usr/src/uts/common/io/bpf/net/dlt.h
     wget -P "$__RootfsDir"/usr/include/netpacket https://raw.githubusercontent.com/illumos/illumos-gate/master/usr/src/uts/common/inet/sockmods/netpacket/packet.h
     wget -P "$__RootfsDir"/usr/include/sys https://raw.githubusercontent.com/illumos/illumos-gate/master/usr/src/uts/common/sys/sdt.h
+elif [[ "$__CodeName" == "haiku" ]]; then
+    JOBS=${MAXJOBS:="$(getconf _NPROCESSORS_ONLN)"}
+
+    echo "Building Haiku sysroot for x86_64"
+    mkdir -p "$__RootfsDir/tmp"
+    cd "$__RootfsDir/tmp"
+    git clone -b hrev56235  https://review.haiku-os.org/haiku
+    git clone -b btrev43195 https://review.haiku-os.org/buildtools
+    cd "$__RootfsDir/tmp/buildtools" && git checkout 7487388f5110021d400b9f3b88e1a7f310dc066d
+
+    # Fetch some unmerged patches
+    cd "$__RootfsDir/tmp/haiku"
+    ## Add development build profile (slimmer than nightly)
+    git fetch origin refs/changes/64/4164/1 && git -c commit.gpgsign=false cherry-pick FETCH_HEAD
+
+    # Build jam
+    cd "$__RootfsDir/tmp/buildtools/jam"
+    make
+
+    # Configure cross tools
+    echo "Building cross-compiler"
+    mkdir -p "$__RootfsDir/generated"
+    cd "$__RootfsDir/generated"
+    "$__RootfsDir/tmp/haiku/configure" -j"$JOBS" --sysroot "$__RootfsDir" --cross-tools-source "$__RootfsDir/tmp/buildtools" --build-cross-tools x86_64
+
+    # Build Haiku packages
+    echo "Building Haiku"
+    echo 'HAIKU_BUILD_PROFILE = "development-raw" ;' > UserProfileConfig
+    "$__RootfsDir/tmp/buildtools/jam/jam0" -j"$JOBS" -q '<build>package' '<repository>Haiku'
+
+    BaseUrl="https://depot.haiku-os.org/__api/v2/pkg/get-pkg"
+
+    # Download additional packages
+    echo "Downloading additional required packages"
+    read -ra array <<<"$__HaikuPackages"
+    for package in "${array[@]}"; do
+        echo "Downloading $package..."
+        # API documented here: https://github.com/haiku/haikudepotserver/blob/master/haikudepotserver-api2/src/main/resources/api2/pkg.yaml#L60
+        # The schema here: https://github.com/haiku/haikudepotserver/blob/master/haikudepotserver-api2/src/main/resources/api2/pkg.yaml#L598
+        hpkgDownloadUrl="$(wget -qO- --post-data='{"name":"'"$package"'","repositorySourceCode":"haikuports_x86_64","versionType":"LATEST","naturalLanguageCode":"en"}' \
+            --header='Content-Type:application/json' "$BaseUrl" | jq -r '.result.versions[].hpkgDownloadURL')"
+        wget -P "$__RootfsDir/generated/download" "$hpkgDownloadUrl"
+    done
+
+    # Setup the sysroot
+    echo "Setting up sysroot and extracting needed packages"
+    mkdir -p "$__RootfsDir/boot/system"
+    for file in "$__RootfsDir/generated/objects/haiku/x86_64/packaging/packages/"*.hpkg; do
+        "$__RootfsDir/generated/objects/linux/x86_64/release/tools/package/package" extract -C "$__RootfsDir/boot/system" "$file"
+    done
+    for file in "$__RootfsDir/generated/download/"*.hpkg; do
+        "$__RootfsDir/generated/objects/linux/x86_64/release/tools/package/package" extract -C "$__RootfsDir/boot/system" "$file"
+    done
+
+    # Cleaning up temporary files
+    echo "Cleaning up temporary files"
+    rm -rf "$__RootfsDir/tmp"
+    for name in "$__RootfsDir/generated/"*; do
+        if [[ "$name" =~ "cross-tools-" ]]; then
+            : # Keep the cross-compiler
+        else
+            rm -rf "$name"
+        fi
+    done
 elif [[ -n "$__CodeName" ]]; then
     qemu-debootstrap $__Keyring --arch "$__UbuntuArch" "$__CodeName" "$__RootfsDir" "$__UbuntuRepo"
     cp "$__CrossDir/$__BuildArch/sources.list.$__CodeName" "$__RootfsDir/etc/apt/sources.list"
diff --git a/eng/common/cross/toolchain.cmake b/eng/common/cross/toolchain.cmake
index 909117759..561576be9 100644
--- a/eng/common/cross/toolchain.cmake
+++ b/eng/common/cross/toolchain.cmake
@@ -7,6 +7,8 @@ if(EXISTS ${CROSS_ROOTFS}/bin/freebsd-version)
 elseif(EXISTS ${CROSS_ROOTFS}/usr/platform/i86pc)
   set(CMAKE_SYSTEM_NAME SunOS)
   set(ILLUMOS 1)
+elseif(EXISTS ${CROSS_ROOTFS}/boot/system/develop/headers/config/HaikuConfig.h)
+  set(CMAKE_SYSTEM_NAME Haiku)
 else()
   set(CMAKE_SYSTEM_NAME Linux)
   set(LINUX 1)
@@ -76,6 +78,8 @@ elseif(TARGET_ARCH_NAME STREQUAL "x64")
     set(triple "x86_64-unknown-freebsd12")
   elseif(ILLUMOS)
     set(TOOLCHAIN "x86_64-illumos")
+  elseif(HAIKU)
+    set(TOOLCHAIN "x64_64-unknown-haiku")
   endif()
 elseif(TARGET_ARCH_NAME STREQUAL "x86")
   set(CMAKE_SYSTEM_PROCESSOR i686)
@@ -170,6 +174,41 @@ elseif(ILLUMOS)
 
     set(CMAKE_C_STANDARD_LIBRARIES "${CMAKE_C_STANDARD_LIBRARIES} -lssp")
     set(CMAKE_CXX_STANDARD_LIBRARIES "${CMAKE_CXX_STANDARD_LIBRARIES} -lssp")
+elseif(HAIKU)
+    set(CMAKE_SYSROOT "${CROSS_ROOTFS}")
+
+    set(TOOLSET_PREFIX ${TOOLCHAIN}-)
+    function(locate_toolchain_exec exec var)
+        string(TOUPPER ${exec} EXEC_UPPERCASE)
+        if(NOT "$ENV{CLR_${EXEC_UPPERCASE}}" STREQUAL "")
+            set(${var} "$ENV{CLR_${EXEC_UPPERCASE}}" PARENT_SCOPE)
+            return()
+        endif()
+
+        set(SEARCH_PATH "${CROSS_ROOTFS}/generated/cross-tools-x86_64/bin")
+
+        find_program(EXEC_LOCATION_${exec}
+            PATHS ${SEARCH_PATH}
+            NAMES
+            "${TOOLSET_PREFIX}${exec}${CLR_CMAKE_COMPILER_FILE_NAME_VERSION}"
+            "${TOOLSET_PREFIX}${exec}")
+
+        if (EXEC_LOCATION_${exec} STREQUAL "EXEC_LOCATION_${exec}-NOTFOUND")
+            message(FATAL_ERROR "Unable to find toolchain executable. Name: ${exec}, Prefix: ${TOOLSET_PREFIX}.")
+        endif()
+        set(${var} ${EXEC_LOCATION_${exec}} PARENT_SCOPE)
+    endfunction()
+
+    set(CMAKE_SYSTEM_PREFIX_PATH "${CROSS_ROOTFS}")
+
+    locate_toolchain_exec(gcc CMAKE_C_COMPILER)
+    locate_toolchain_exec(g++ CMAKE_CXX_COMPILER)
+
+    set(CMAKE_C_STANDARD_LIBRARIES "${CMAKE_C_STANDARD_LIBRARIES} -lssp")
+    set(CMAKE_CXX_STANDARD_LIBRARIES "${CMAKE_CXX_STANDARD_LIBRARIES} -lssp")
+
+    # let CMake set up the correct search paths
+    include(Platform/Haiku)
 else()
     set(CMAKE_SYSROOT "${CROSS_ROOTFS}")
 
@@ -229,7 +268,7 @@ endif()
 
 # Specify compile options
 
-if((TARGET_ARCH_NAME MATCHES "^(arm|arm64|armel|armv6|ppc64le|riscv64|s390x)$" AND NOT ANDROID AND NOT FREEBSD) OR ILLUMOS)
+if((TARGET_ARCH_NAME MATCHES "^(arm|arm64|armel|armv6|ppc64le|riscv64|s390x)$" AND NOT ANDROID AND NOT FREEBSD) OR ILLUMOS OR HAIKU)
   set(CMAKE_C_COMPILER_TARGET ${TOOLCHAIN})
   set(CMAKE_CXX_COMPILER_TARGET ${TOOLCHAIN})
   set(CMAKE_ASM_COMPILER_TARGET ${TOOLCHAIN})
diff --git a/eng/common/templates/job/execute-sdl.yml b/eng/common/templates/job/execute-sdl.yml
index 24cec0424..9ff6a10a6 100644
--- a/eng/common/templates/job/execute-sdl.yml
+++ b/eng/common/templates/job/execute-sdl.yml
@@ -54,7 +54,7 @@ jobs:
     # If it's not devdiv, it's dnceng
     ${{ if ne(variables['System.TeamProject'], 'DevDiv') }}:
       name: NetCore1ESPool-Internal
-      demands: ImageOverride -equals Build.Server.Amd64.VS2019
+      demands: ImageOverride -equals windows.vs2019.amd64
   steps:
   - checkout: self
     clean: true
diff --git a/eng/common/templates/job/onelocbuild.yml b/eng/common/templates/job/onelocbuild.yml
index 3bcd243c4..6c523b714 100644
--- a/eng/common/templates/job/onelocbuild.yml
+++ b/eng/common/templates/job/onelocbuild.yml
@@ -41,7 +41,7 @@ jobs:
       # If it's not devdiv, it's dnceng
       ${{ if ne(variables['System.TeamProject'], 'DevDiv') }}:
         name: NetCore1ESPool-Internal
-        demands: ImageOverride -equals Build.Server.Amd64.VS2019
+        demands: ImageOverride -equals windows.vs2019.amd64
 
   variables:
     - group: OneLocBuildVariables # Contains the CeapexPat and GithubPat
diff --git a/eng/common/templates/job/source-index-stage1.yml b/eng/common/templates/job/source-index-stage1.yml
index 4e3721085..c85044a68 100644
--- a/eng/common/templates/job/source-index-stage1.yml
+++ b/eng/common/templates/job/source-index-stage1.yml
@@ -29,10 +29,10 @@ jobs:
     pool:
       ${{ if eq(variables['System.TeamProject'], 'public') }}:
         name: NetCore1ESPool-Public
-        demands: ImageOverride -equals Build.Server.Amd64.VS2019.Open
+        demands: ImageOverride -equals windows.vs2019.amd64.open
       ${{ if eq(variables['System.TeamProject'], 'internal') }}:
         name: NetCore1ESPool-Internal
-        demands: ImageOverride -equals Build.Server.Amd64.VS2019
+        demands: ImageOverride -equals windows.vs2019.amd64
 
   steps:
   - ${{ each preStep in parameters.preSteps }}:
diff --git a/eng/common/templates/jobs/jobs.yml b/eng/common/templates/jobs/jobs.yml
index 2cca53c2d..64e5929f2 100644
--- a/eng/common/templates/jobs/jobs.yml
+++ b/eng/common/templates/jobs/jobs.yml
@@ -96,7 +96,7 @@ jobs:
           # If it's not devdiv, it's dnceng
           ${{ if ne(variables['System.TeamProject'], 'DevDiv') }}:
             name: NetCore1ESPool-Internal
-            demands: ImageOverride -equals Build.Server.Amd64.VS2019
+            demands: ImageOverride -equals windows.vs2019.amd64
 
         runAsPublic: ${{ parameters.runAsPublic }}
         publishUsingPipelines: ${{ parameters.enablePublishUsingPipelines }}
diff --git a/eng/common/templates/post-build/post-build.yml b/eng/common/templates/post-build/post-build.yml
index e0beb25d4..87fcae940 100644
--- a/eng/common/templates/post-build/post-build.yml
+++ b/eng/common/templates/post-build/post-build.yml
@@ -107,7 +107,7 @@ stages:
         # If it's not devdiv, it's dnceng
         ${{ else }}:
           name: NetCore1ESPool-Internal
-          demands: ImageOverride -equals Build.Server.Amd64.VS2019
+          demands: ImageOverride -equals windows.vs2019.amd64
 
       steps:
         - template: setup-maestro-vars.yml
@@ -144,7 +144,7 @@ stages:
         # If it's not devdiv, it's dnceng
         ${{ else }}:
           name: NetCore1ESPool-Internal
-          demands: ImageOverride -equals Build.Server.Amd64.VS2019
+          demands: ImageOverride -equals windows.vs2019.amd64
       steps:
         - template: setup-maestro-vars.yml
           parameters:
@@ -204,7 +204,7 @@ stages:
         # If it's not devdiv, it's dnceng
         ${{ else }}:
           name: NetCore1ESPool-Internal
-          demands: ImageOverride -equals Build.Server.Amd64.VS2019
+          demands: ImageOverride -equals windows.vs2019.amd64
       steps:
         - template: setup-maestro-vars.yml
           parameters:
@@ -263,7 +263,7 @@ stages:
         # If it's not devdiv, it's dnceng
         ${{ else }}:
           name: NetCore1ESPool-Internal
-          demands: ImageOverride -equals Build.Server.Amd64.VS2019
+          demands: ImageOverride -equals windows.vs2019.amd64
       steps:
         - template: setup-maestro-vars.yml
           parameters:
diff --git a/eng/common/tools.ps1 b/eng/common/tools.ps1
index 9638c63c7..f83a748c3 100644
--- a/eng/common/tools.ps1
+++ b/eng/common/tools.ps1
@@ -368,7 +368,14 @@ function InitializeVisualStudioMSBuild([bool]$install, [object]$vsRequirements =
   # https://dev.azure.com/dnceng/public/_packaging?_a=package&feed=dotnet-eng&package=RoslynTools.MSBuild&protocolType=NuGet&version=17.1.0&view=overview
   $defaultXCopyMSBuildVersion = '17.1.0'
 
-  if (!$vsRequirements) { $vsRequirements = $GlobalJson.tools.vs }
+  if (!$vsRequirements) {
+    if (Get-Member -InputObject $GlobalJson.tools -Name 'vs') {
+      $vsRequirements = $GlobalJson.tools.vs
+    }
+    else {
+      $vsRequirements = New-Object PSObject -Property @{ version = $vsMinVersionReqdStr }
+    }
+  }
   $vsMinVersionStr = if ($vsRequirements.version) { $vsRequirements.version } else { $vsMinVersionReqdStr }
   $vsMinVersion = [Version]::new($vsMinVersionStr)
 
diff --git a/global.json b/global.json
index 9f6995b4a..df52d25d1 100644
--- a/global.json
+++ b/global.json
@@ -6,7 +6,7 @@
     "xcopy-msbuild": "16.8.0-preview2.1"
   },
   "msbuild-sdks": {
-    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22408.3",
-    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22408.3"
+    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22410.3",
+    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22410.3"
   }
 }

From 7775266f702eae878af5989e2b5f35be73e25484 Mon Sep 17 00:00:00 2001
From: "dotnet-maestro[bot]" <dotnet-maestro[bot]@users.noreply.github.com>
Date: Fri, 12 Aug 2022 12:43:25 +0000
Subject: [PATCH 34/34] Update dependencies from
 https://github.com/dotnet/arcade build 20220811.2

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 7.0.0-beta.22314.8 -> To Version 7.0.0-beta.22411.2
---
 eng/Version.Details.xml | 8 ++++----
 global.json             | 4 ++--
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index 648d215b2..2dd517e5c 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -3,13 +3,13 @@
   <ProductDependencies>
   </ProductDependencies>
   <ToolsetDependencies>
-    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22410.3">
+    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22411.2">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>fd9941799bb6983a7d00ed72682378b46a45f396</Sha>
+      <Sha>6a638cd0c13962ab2a1943cb1c878be5a41dd82e</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22410.3">
+    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22411.2">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>fd9941799bb6983a7d00ed72682378b46a45f396</Sha>
+      <Sha>6a638cd0c13962ab2a1943cb1c878be5a41dd82e</Sha>
     </Dependency>
   </ToolsetDependencies>
 </Dependencies>
diff --git a/global.json b/global.json
index df52d25d1..d42c60800 100644
--- a/global.json
+++ b/global.json
@@ -6,7 +6,7 @@
     "xcopy-msbuild": "16.8.0-preview2.1"
   },
   "msbuild-sdks": {
-    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22410.3",
-    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22410.3"
+    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22411.2",
+    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22411.2"
   }
 }