diff --git a/.devcontainer/vmr/devcontainer.json b/.devcontainer/vmr/devcontainer.json
index 950e3aaa7afe..2f6ece0d545f 100644
--- a/.devcontainer/vmr/devcontainer.json
+++ b/.devcontainer/vmr/devcontainer.json
@@ -3,7 +3,7 @@
// The container supports source-building the SDK
{
"name": "VMR with PR changes",
- "image": "mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-39",
+ "image": "mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream9",
"hostRequirements": {
// A completely source built .NET is >64 GB with all the repos/artifacts
"storage": "128gb"
diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml
index ca14360c2ea8..e3faa1263a49 100644
--- a/.github/workflows/stale.yml
+++ b/.github/workflows/stale.yml
@@ -8,7 +8,7 @@ on:
inputs:
daysBeforeStale:
required: true
- default: "2192"
+ default: "1827"
daysBeforeClose:
required: true
default: "30"
diff --git a/.vsts-ci.yml b/.vsts-ci.yml
index cceb8e5faab4..b966a4c8c7ff 100644
--- a/.vsts-ci.yml
+++ b/.vsts-ci.yml
@@ -293,14 +293,15 @@ extends:
runTests: false
############### SOURCE BUILD ###############
- - template: /eng/common/templates-official/job/source-build.yml@self
- parameters:
- enableInternalSources: true
- platform:
- name: Managed
- container: centosStream9
- jobProperties:
- timeoutInMinutes: 30
+ # Temporarily removed until the SDK can target net10. The assets produced by upstream repos
+ # are net10, but this repo needs net9.
+ # - template: /eng/common/templates-official/job/source-build.yml@self
+ # parameters:
+ # platform:
+ # name: Managed
+ # container: centosStream9
+ # jobProperties:
+ # timeoutInMinutes: 30
############### DOTNET-FORMAT ###############
- ${{ if or(eq(parameters.runTestBuild, true), eq(variables['Build.Reason'], 'PullRequest')) }}:
diff --git a/.vsts-pr.yml b/.vsts-pr.yml
index 584f725feb86..ee6748b90f33 100644
--- a/.vsts-pr.yml
+++ b/.vsts-pr.yml
@@ -8,6 +8,11 @@ pr:
- main
- release/*
- internal/release/*
+ paths:
+ exclude:
+ - documentation/*
+ - README.md
+ - CODEOWNERS
variables:
- template: /eng/pipelines/templates/variables/sdk-defaults.yml
@@ -60,14 +65,15 @@ stages:
helixTargetQueue: osx.13.amd64.open
############### SOURCE BUILD ###############
- - template: /eng/common/templates/job/source-build.yml
- parameters:
- enableInternalSources: true
- platform:
- name: Managed
- container: centosStream9
- jobProperties:
- timeoutInMinutes: 30
+ # Temporarily removed until the SDK can target net10. The assets produced by upstream repos
+ # are net10, but this repo needs net9.
+ # - template: /eng/common/templates-official/job/source-build.yml@self
+ # parameters:
+ # platform:
+ # name: Managed
+ # container: centosStream9
+ # jobProperties:
+ # timeoutInMinutes: 30
############### DOTNET-FORMAT ###############
- template: /eng/dotnet-format/dotnet-format-integration.yml
diff --git a/Directory.Build.props b/Directory.Build.props
index 90b657484e81..9a7df4870cc1 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -44,7 +44,7 @@
- $(NoWarn);NU1701;NU1507
+ $(NoWarn);NU1701;NU1507;NU1202
true
true
diff --git a/Directory.Packages.props b/Directory.Packages.props
index 1d941c1212fd..4fae24481438 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -33,6 +33,7 @@
+
@@ -44,8 +45,8 @@
-
+
@@ -101,6 +102,7 @@
+
diff --git a/NuGet.config b/NuGet.config
index b20333c22218..aaa7050379fd 100644
--- a/NuGet.config
+++ b/NuGet.config
@@ -4,8 +4,7 @@
-
-
+
@@ -34,6 +33,8 @@
+
+
diff --git a/documentation/general/workloads/workload-diagnosis.md b/documentation/general/workloads/workload-diagnosis.md
index 49fb19d3bc9e..3f7c4f35d7a4 100644
--- a/documentation/general/workloads/workload-diagnosis.md
+++ b/documentation/general/workloads/workload-diagnosis.md
@@ -22,12 +22,12 @@ _Installation rollback failed: Workload manifest dependency 'Microsoft.NET.Workl
## Diagnosing Issues With Installed Workloads
-### Common Workload State Failrues
+### Common Workload State Failures
1. Workload is not installed. Try running `dotnet workload restore`. If that does not work, try running `dotnet build -getItem:MissingWorkloadPack` to determine what workload packs are missing. Our workload detection logic could be wrong and you could need a different workload than we list. This call should provide the pack we need and file an issue in the SDK repo with this information.
_NETSDK1147: To build this project, the following workloads must be installed:_
2. You installed workloads previously but now your workload templates are missing (Aspire and MAUI templates are installed by the workloads). This could be because your workloads were installed correctly at some point in the past but are now out of sync.
- 1. You installed a new band of the SDK. Workloads are installed per band so installing a new SDK could lead to your workloads not working. [Workload versions](https://github.com/dotnet/designs/pull/294)s should improve that.
+ 1. You installed a new band of the SDK. Workloads are installed per band so installing a new SDK could lead to your workloads not working. [Workload versions](https://github.com/dotnet/designs/pull/294) should improve that.
2. You installed a different workload from the dotnet CLI. We've improved this a few times but it's still possible to install a different workload which updates your workload manifests without updating your workloads. Please file a bug if this happens to you.
3. You install a new version of Visual Studio that doesn't have worklaods selected. Visual Studio should include all available workloads so make sure to select them in Visual Studio setup.
diff --git a/documentation/package-table.md b/documentation/package-table.md
index acfaf4d55045..07789e240f5a 100644
--- a/documentation/package-table.md
+++ b/documentation/package-table.md
@@ -1,20 +1,20 @@
### Table
--------------------------------------------------------------------------------------
-| Platform | main
(9.0.x Runtime) | 9.0.1xx-preview7
(9.0-preview7 Runtime) | 8.0.4xx
(8.0 Runtime) |
+| Platform | main
(10.0.x Runtime) | 9.0.2xx
(9.0 Runtime) | 9.0.1xx
(9.0 Runtime) |
| :--------- | :----------: | :----------: | :----------: |
-| **Windows x64** | [![][win-x64-badge-main]][win-x64-version-main]
[Installer][win-x64-installer-main] - [Checksum][win-x64-installer-checksum-main]
[zip][win-x64-zip-main] - [Checksum][win-x64-zip-checksum-main] | [![][win-x64-badge-9.0.1XX-preview7]][win-x64-version-9.0.1XX-preview7]
[Installer][win-x64-installer-9.0.1XX-preview7] - [Checksum][win-x64-installer-checksum-9.0.1XX-preview7]
[zip][win-x64-zip-9.0.1XX-preview7] - [Checksum][win-x64-zip-checksum-9.0.1XX-preview7] | [![][win-x64-badge-8.0.4XX]][win-x64-version-8.0.4XX]
[Installer][win-x64-installer-8.0.4XX] - [Checksum][win-x64-installer-checksum-8.0.4XX]
[zip][win-x64-zip-8.0.4XX] - [Checksum][win-x64-zip-checksum-8.0.4XX] |
-| **Windows x86** | [![][win-x86-badge-main]][win-x86-version-main]
[Installer][win-x86-installer-main] - [Checksum][win-x86-installer-checksum-main]
[zip][win-x86-zip-main] - [Checksum][win-x86-zip-checksum-main] | [![][win-x86-badge-9.0.1XX-preview7]][win-x86-version-9.0.1XX-preview7]
[Installer][win-x86-installer-9.0.1XX-preview7] - [Checksum][win-x86-installer-checksum-9.0.1XX-preview7]
[zip][win-x86-zip-9.0.1XX-preview7] - [Checksum][win-x86-zip-checksum-9.0.1XX-preview7] | [![][win-x86-badge-8.0.4XX]][win-x86-version-8.0.4XX]
[Installer][win-x86-installer-8.0.4XX] - [Checksum][win-x86-installer-checksum-8.0.4XX]
[zip][win-x86-zip-8.0.4XX] - [Checksum][win-x86-zip-checksum-8.0.4XX] |
+| **Windows x64** | [![][win-x64-badge-main]][win-x64-version-main]
[Installer][win-x64-installer-main] - [Checksum][win-x64-installer-checksum-main]
[zip][win-x64-zip-main] - [Checksum][win-x64-zip-checksum-main] | [![][win-x64-badge-9.0.2XX]][win-x64-version-9.0.2XX]
[Installer][win-x64-installer-9.0.2XX] - [Checksum][win-x64-installer-checksum-9.0.2XX]
[zip][win-x64-zip-9.0.2XX] - [Checksum][win-x64-zip-checksum-9.0.2XX] | [![][win-x64-badge-9.0.1XX]][win-x64-version-9.0.1XX]
[Installer][win-x64-installer-9.0.1XX] - [Checksum][win-x64-installer-checksum-9.0.1XX]
[zip][win-x64-zip-9.0.1XX] - [Checksum][win-x64-zip-checksum-9.0.1XX] |
+| **Windows x86** | [![][win-x86-badge-main]][win-x86-version-main]
[Installer][win-x86-installer-main] - [Checksum][win-x86-installer-checksum-main]
[zip][win-x86-zip-main] - [Checksum][win-x86-zip-checksum-main] | [![][win-x86-badge-9.0.2XX]][win-x86-version-9.0.2XX]
[Installer][win-x86-installer-9.0.2XX] - [Checksum][win-x86-installer-checksum-9.0.2XX]
[zip][win-x86-zip-9.0.2XX] - [Checksum][win-x86-zip-checksum-9.0.2XX] | [![][win-x86-badge-9.0.1XX]][win-x86-version-9.0.1XX]
[Installer][win-x86-installer-9.0.1XX] - [Checksum][win-x86-installer-checksum-9.0.1XX]
[zip][win-x86-zip-9.0.1XX] - [Checksum][win-x86-zip-checksum-9.0.1XX] |
| **Windows arm** | **N/A** | **N/A** | **N/A** |
-| **Windows arm64** | [![][win-arm64-badge-main]][win-arm64-version-main]
[Installer][win-arm64-installer-main] - [Checksum][win-arm64-installer-checksum-main]
[zip][win-arm64-zip-main] | [![][win-arm64-badge-9.0.1XX-preview7]][win-arm64-version-9.0.1XX-preview7]
[Installer][win-arm64-installer-9.0.1XX-preview7] - [Checksum][win-arm64-installer-checksum-9.0.1XX-preview7]
[zip][win-arm64-zip-9.0.1XX-preview7] | [![][win-arm64-badge-8.0.4XX]][win-arm64-version-8.0.4XX]
[Installer][win-arm64-installer-8.0.4XX] - [Checksum][win-arm64-installer-checksum-8.0.4XX]
[zip][win-arm64-zip-8.0.4XX] |
-| **macOS x64** | [![][osx-x64-badge-main]][osx-x64-version-main]
[Installer][osx-x64-installer-main] - [Checksum][osx-x64-installer-checksum-main]
[tar.gz][osx-x64-targz-main] - [Checksum][osx-x64-targz-checksum-main] | [![][osx-x64-badge-9.0.1XX-preview7]][osx-x64-version-9.0.1XX-preview7]
[Installer][osx-x64-installer-9.0.1XX-preview7] - [Checksum][osx-x64-installer-checksum-9.0.1XX-preview7]
[tar.gz][osx-x64-targz-9.0.1XX-preview7] - [Checksum][osx-x64-targz-checksum-9.0.1XX-preview7] | [![][osx-x64-badge-8.0.4XX]][osx-x64-version-8.0.4XX]
[Installer][osx-x64-installer-8.0.4XX] - [Checksum][osx-x64-installer-checksum-8.0.4XX]
[tar.gz][osx-x64-targz-8.0.4XX] - [Checksum][osx-x64-targz-checksum-8.0.4XX] |
-| **macOS arm64** | [![][osx-arm64-badge-main]][osx-arm64-version-main]
[Installer][osx-arm64-installer-main] - [Checksum][osx-arm64-installer-checksum-main]
[tar.gz][osx-arm64-targz-main] - [Checksum][osx-arm64-targz-checksum-main] | [![][osx-arm64-badge-9.0.1XX-preview7]][osx-arm64-version-9.0.1XX-preview7]
[Installer][osx-arm64-installer-9.0.1XX-preview7] - [Checksum][osx-arm64-installer-checksum-9.0.1XX-preview7]
[tar.gz][osx-arm64-targz-9.0.1XX-preview7] - [Checksum][osx-arm64-targz-checksum-9.0.1XX-preview7] | [![][osx-arm64-badge-8.0.4XX]][osx-arm64-version-8.0.4XX]
[Installer][osx-arm64-installer-8.0.4XX] - [Checksum][osx-arm64-installer-checksum-8.0.4XX]
[tar.gz][osx-arm64-targz-8.0.4XX] - [Checksum][osx-arm64-targz-checksum-8.0.4XX] |
-| **Linux x64** | [![][linux-badge-main]][linux-version-main]
[DEB Installer][linux-DEB-installer-main] - [Checksum][linux-DEB-installer-checksum-main]
[RPM Installer][linux-RPM-installer-main] - [Checksum][linux-RPM-installer-checksum-main]
_see installer note below_1
[tar.gz][linux-targz-main] - [Checksum][linux-targz-checksum-main] | [![][linux-badge-9.0.1XX-preview7]][linux-version-9.0.1XX-preview7]
[DEB Installer][linux-DEB-installer-9.0.1XX-preview7] - [Checksum][linux-DEB-installer-checksum-9.0.1XX-preview7]
[RPM Installer][linux-RPM-installer-9.0.1XX-preview7] - [Checksum][linux-RPM-installer-checksum-9.0.1XX-preview7]
_see installer note below_1
[tar.gz][linux-targz-9.0.1XX-preview7] - [Checksum][linux-targz-checksum-9.0.1XX-preview7] | [![][linux-badge-8.0.4XX]][linux-version-8.0.4XX]
[DEB Installer][linux-DEB-installer-8.0.4XX] - [Checksum][linux-DEB-installer-checksum-8.0.4XX]
[RPM Installer][linux-RPM-installer-8.0.4XX] - [Checksum][linux-RPM-installer-checksum-8.0.4XX]
_see installer note below_1
[tar.gz][linux-targz-8.0.4XX] - [Checksum][linux-targz-checksum-8.0.4XX] |
-| **Linux arm** | [![][linux-arm-badge-main]][linux-arm-version-main]
[tar.gz][linux-arm-targz-main] - [Checksum][linux-arm-targz-checksum-main] | [![][linux-arm-badge-9.0.1XX-preview7]][linux-arm-version-9.0.1XX-preview7]
[tar.gz][linux-arm-targz-9.0.1XX-preview7] - [Checksum][linux-arm-targz-checksum-9.0.1XX-preview7] | [![][linux-arm-badge-8.0.4XX]][linux-arm-version-8.0.4XX]
[tar.gz][linux-arm-targz-8.0.4XX] - [Checksum][linux-arm-targz-checksum-8.0.4XX] |
-| **Linux arm64** | [![][linux-arm64-badge-main]][linux-arm64-version-main]
[tar.gz][linux-arm64-targz-main] - [Checksum][linux-arm64-targz-checksum-main] | [![][linux-arm64-badge-9.0.1XX-preview7]][linux-arm64-version-9.0.1XX-preview7]
[tar.gz][linux-arm64-targz-9.0.1XX-preview7] - [Checksum][linux-arm64-targz-checksum-9.0.1XX-preview7] | [![][linux-arm64-badge-8.0.4XX]][linux-arm64-version-8.0.4XX]
[tar.gz][linux-arm64-targz-8.0.4XX] - [Checksum][linux-arm64-targz-checksum-8.0.4XX] |
-| **Linux-musl-x64** | [![][linux-musl-x64-badge-main]][linux-musl-x64-version-main]
[tar.gz][linux-musl-x64-targz-main] - [Checksum][linux-musl-x64-targz-checksum-main] | [![][linux-musl-x64-badge-9.0.1XX-preview7]][linux-musl-x64-version-9.0.1XX-preview7]
[tar.gz][linux-musl-x64-targz-9.0.1XX-preview7] - [Checksum][linux-musl-x64-targz-checksum-9.0.1XX-preview7] | [![][linux-musl-x64-badge-8.0.4XX]][linux-musl-x64-version-8.0.4XX]
[tar.gz][linux-musl-x64-targz-8.0.4XX] - [Checksum][linux-musl-x64-targz-checksum-8.0.4XX] |
-| **Linux-musl-arm** | [![][linux-musl-arm-badge-main]][linux-musl-arm-version-main]
[tar.gz][linux-musl-arm-targz-main] - [Checksum][linux-musl-arm-targz-checksum-main] | [![][linux-musl-arm-badge-9.0.1XX-preview7]][linux-musl-arm-version-9.0.1XX-preview7]
[tar.gz][linux-musl-arm-targz-9.0.1XX-preview7] - [Checksum][linux-musl-arm-targz-checksum-9.0.1XX-preview7] | [![][linux-musl-arm-badge-8.0.4XX]][linux-musl-arm-version-8.0.4XX]
[tar.gz][linux-musl-arm-targz-8.0.4XX] - [Checksum][linux-musl-arm-targz-checksum-8.0.4XX] |
-| **Linux-musl-arm64** | [![][linux-musl-arm64-badge-main]][linux-musl-arm64-version-main]
[tar.gz][linux-musl-arm64-targz-main] - [Checksum][linux-musl-arm64-targz-checksum-main] | [![][linux-musl-arm64-badge-9.0.1XX-preview7]][linux-musl-arm64-version-9.0.1XX-preview7]
[tar.gz][linux-musl-arm64-targz-9.0.1XX-preview7] - [Checksum][linux-musl-arm64-targz-checksum-9.0.1XX-preview7] | [![][linux-musl-arm64-badge-8.0.4XX]][linux-musl-arm64-version-8.0.4XX]
[tar.gz][linux-musl-arm64-targz-8.0.4XX] - [Checksum][linux-musl-arm64-targz-checksum-8.0.4XX] |
+| **Windows arm64** | [![][win-arm64-badge-main]][win-arm64-version-main]
[Installer][win-arm64-installer-main] - [Checksum][win-arm64-installer-checksum-main]
[zip][win-arm64-zip-main] | [![][win-arm64-badge-9.0.2XX]][win-arm64-version-9.0.2XX]
[Installer][win-arm64-installer-9.0.2XX] - [Checksum][win-arm64-installer-checksum-9.0.2XX]
[zip][win-arm64-zip-9.0.2XX] | [![][win-arm64-badge-9.0.1XX]][win-arm64-version-9.0.1XX]
[Installer][win-arm64-installer-9.0.1XX] - [Checksum][win-arm64-installer-checksum-9.0.1XX]
[zip][win-arm64-zip-9.0.1XX] |
+| **macOS x64** | [![][osx-x64-badge-main]][osx-x64-version-main]
[Installer][osx-x64-installer-main] - [Checksum][osx-x64-installer-checksum-main]
[tar.gz][osx-x64-targz-main] - [Checksum][osx-x64-targz-checksum-main] | [![][osx-x64-badge-9.0.2XX]][osx-x64-version-9.0.2XX]
[Installer][osx-x64-installer-9.0.2XX] - [Checksum][osx-x64-installer-checksum-9.0.2XX]
[tar.gz][osx-x64-targz-9.0.2XX] - [Checksum][osx-x64-targz-checksum-9.0.2XX] | [![][osx-x64-badge-9.0.1XX]][osx-x64-version-9.0.1XX]
[Installer][osx-x64-installer-9.0.1XX] - [Checksum][osx-x64-installer-checksum-9.0.1XX]
[tar.gz][osx-x64-targz-9.0.1XX] - [Checksum][osx-x64-targz-checksum-9.0.1XX] |
+| **macOS arm64** | [![][osx-arm64-badge-main]][osx-arm64-version-main]
[Installer][osx-arm64-installer-main] - [Checksum][osx-arm64-installer-checksum-main]
[tar.gz][osx-arm64-targz-main] - [Checksum][osx-arm64-targz-checksum-main] | [![][osx-arm64-badge-9.0.2XX]][osx-arm64-version-9.0.2XX]
[Installer][osx-arm64-installer-9.0.2XX] - [Checksum][osx-arm64-installer-checksum-9.0.2XX]
[tar.gz][osx-arm64-targz-9.0.2XX] - [Checksum][osx-arm64-targz-checksum-9.0.2XX] | [![][osx-arm64-badge-9.0.1XX]][osx-arm64-version-9.0.1XX]
[Installer][osx-arm64-installer-9.0.1XX] - [Checksum][osx-arm64-installer-checksum-9.0.1XX]
[tar.gz][osx-arm64-targz-9.0.1XX] - [Checksum][osx-arm64-targz-checksum-9.0.1XX] |
+| **Linux x64** | [![][linux-badge-main]][linux-version-main]
[DEB Installer][linux-DEB-installer-main] - [Checksum][linux-DEB-installer-checksum-main]
[RPM Installer][linux-RPM-installer-main] - [Checksum][linux-RPM-installer-checksum-main]
_see installer note below_1
[tar.gz][linux-targz-main] - [Checksum][linux-targz-checksum-main] | [![][linux-badge-9.0.2XX]][linux-version-9.0.2XX]
[DEB Installer][linux-DEB-installer-9.0.2XX] - [Checksum][linux-DEB-installer-checksum-9.0.2XX]
[RPM Installer][linux-RPM-installer-9.0.2XX] - [Checksum][linux-RPM-installer-checksum-9.0.2XX]
_see installer note below_1
[tar.gz][linux-targz-9.0.2XX] - [Checksum][linux-targz-checksum-9.0.2XX] | [![][linux-badge-9.0.1XX]][linux-version-9.0.1XX]
[DEB Installer][linux-DEB-installer-9.0.1XX] - [Checksum][linux-DEB-installer-checksum-9.0.1XX]
[RPM Installer][linux-RPM-installer-9.0.1XX] - [Checksum][linux-RPM-installer-checksum-9.0.1XX]
_see installer note below_1
[tar.gz][linux-targz-9.0.1XX] - [Checksum][linux-targz-checksum-9.0.1XX] |
+| **Linux arm** | [![][linux-arm-badge-main]][linux-arm-version-main]
[tar.gz][linux-arm-targz-main] - [Checksum][linux-arm-targz-checksum-main] | [![][linux-arm-badge-9.0.2XX]][linux-arm-version-9.0.2XX]
[tar.gz][linux-arm-targz-9.0.2XX] - [Checksum][linux-arm-targz-checksum-9.0.2XX] | [![][linux-arm-badge-9.0.1XX]][linux-arm-version-9.0.1XX]
[tar.gz][linux-arm-targz-9.0.1XX] - [Checksum][linux-arm-targz-checksum-9.0.1XX] |
+| **Linux arm64** | [![][linux-arm64-badge-main]][linux-arm64-version-main]
[tar.gz][linux-arm64-targz-main] - [Checksum][linux-arm64-targz-checksum-main] | [![][linux-arm64-badge-9.0.2XX]][linux-arm64-version-9.0.2XX]
[tar.gz][linux-arm64-targz-9.0.2XX] - [Checksum][linux-arm64-targz-checksum-9.0.2XX] | [![][linux-arm64-badge-9.0.1XX]][linux-arm64-version-9.0.1XX]
[tar.gz][linux-arm64-targz-9.0.1XX] - [Checksum][linux-arm64-targz-checksum-9.0.1XX] |
+| **Linux-musl-x64** | [![][linux-musl-x64-badge-main]][linux-musl-x64-version-main]
[tar.gz][linux-musl-x64-targz-main] - [Checksum][linux-musl-x64-targz-checksum-main] | [![][linux-musl-x64-badge-9.0.2XX]][linux-musl-x64-version-9.0.2XX]
[tar.gz][linux-musl-x64-targz-9.0.2XX] - [Checksum][linux-musl-x64-targz-checksum-9.0.2XX] | [![][linux-musl-x64-badge-9.0.1XX]][linux-musl-x64-version-9.0.1XX]
[tar.gz][linux-musl-x64-targz-9.0.1XX] - [Checksum][linux-musl-x64-targz-checksum-9.0.1XX] |
+| **Linux-musl-arm** | [![][linux-musl-arm-badge-main]][linux-musl-arm-version-main]
[tar.gz][linux-musl-arm-targz-main] - [Checksum][linux-musl-arm-targz-checksum-main] | [![][linux-musl-arm-badge-9.0.2XX]][linux-musl-arm-version-9.0.2XX]
[tar.gz][linux-musl-arm-targz-9.0.2XX] - [Checksum][linux-musl-arm-targz-checksum-9.0.2XX] | [![][linux-musl-arm-badge-9.0.1XX]][linux-musl-arm-version-9.0.1XX]
[tar.gz][linux-musl-arm-targz-9.0.1XX] - [Checksum][linux-musl-arm-targz-checksum-9.0.1XX] |
+| **Linux-musl-arm64** | [![][linux-musl-arm64-badge-main]][linux-musl-arm64-version-main]
[tar.gz][linux-musl-arm64-targz-main] - [Checksum][linux-musl-arm64-targz-checksum-main] | [![][linux-musl-arm64-badge-9.0.2XX]][linux-musl-arm64-version-9.0.2XX]
[tar.gz][linux-musl-arm64-targz-9.0.2XX] - [Checksum][linux-musl-arm64-targz-checksum-9.0.2XX] | [![][linux-musl-arm64-badge-9.0.1XX]][linux-musl-arm64-version-9.0.1XX]
[tar.gz][linux-musl-arm64-targz-9.0.1XX] - [Checksum][linux-musl-arm64-targz-checksum-9.0.1XX] |
| **RHEL 6** | **N/A** | **N/A** | **N/A** |
Reference notes:
@@ -22,239 +22,239 @@ Reference notes:
> * [Host, Host FX Resolver, and Shared Framework](https://github.com/dotnet/runtime/blob/main/docs/project/dogfooding.md#nightly-builds-table)
> * [ASP.NET Core Shared Framework](https://github.com/aspnet/AspNetCore/blob/main/docs/DailyBuilds.md)
-[win-x64-badge-main]: https://aka.ms/dotnet/9.0.1xx/daily/win_x64_Release_version_badge.svg?no-cache
-[win-x64-version-main]: https://aka.ms/dotnet/9.0.1xx/daily/productCommit-win-x64.txt
-[win-x64-installer-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-win-x64.exe
-[win-x64-installer-checksum-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-win-x64.exe.sha
-[win-x64-zip-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-win-x64.zip
-[win-x64-zip-checksum-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-win-x64.zip.sha
-
-[win-x64-badge-9.0.1XX-preview7]: https://aka.ms/dotnet/9.0.1xx-preview7/daily/win_x64_Release_version_badge.svg?no-cache
-[win-x64-version-9.0.1XX-preview7]: https://aka.ms/dotnet/9.0.1xx-preview7/daily/productCommit-win-x64.txt
-[win-x64-installer-9.0.1XX-preview7]: https://aka.ms/dotnet/9.0.1xx-preview7/daily/dotnet-sdk-win-x64.exe
-[win-x64-installer-checksum-9.0.1XX-preview7]: https://aka.ms/dotnet/9.0.1xx-preview7/daily/dotnet-sdk-win-x64.exe.sha
-[win-x64-zip-9.0.1XX-preview7]: https://aka.ms/dotnet/9.0.1xx-preview7/daily/dotnet-sdk-win-x64.zip
-[win-x64-zip-checksum-9.0.1XX-preview7]: https://aka.ms/dotnet/9.0.1xx-preview7/daily/dotnet-sdk-win-x64.zip.sha
-
-[win-x64-badge-8.0.4XX]: https://aka.ms/dotnet/8.0.4xx/daily/win_x64_Release_version_badge.svg?no-cache
-[win-x64-version-8.0.4XX]: https://aka.ms/dotnet/8.0.4xx/daily/productCommit-win-x64.txt
-[win-x64-installer-8.0.4XX]: https://aka.ms/dotnet/8.0.4xx/daily/dotnet-sdk-win-x64.exe
-[win-x64-installer-checksum-8.0.4XX]: https://aka.ms/dotnet/8.0.4xx/daily/dotnet-sdk-win-x64.exe.sha
-[win-x64-zip-8.0.4XX]: https://aka.ms/dotnet/8.0.4xx/daily/dotnet-sdk-win-x64.zip
-[win-x64-zip-checksum-8.0.4XX]: https://aka.ms/dotnet/8.0.4xx/daily/dotnet-sdk-win-x64.zip.sha
-
-[win-x86-badge-main]: https://aka.ms/dotnet/9.0.1xx/daily/win_x86_Release_version_badge.svg?no-cache
-[win-x86-version-main]: https://aka.ms/dotnet/9.0.1xx/daily/productCommit-win-x86.txt
-[win-x86-installer-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-win-x86.exe
-[win-x86-installer-checksum-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-win-x86.exe.sha
-[win-x86-zip-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-win-x86.zip
-[win-x86-zip-checksum-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-win-x86.zip.sha
-
-[win-x86-badge-9.0.1XX-preview7]: https://aka.ms/dotnet/9.0.1xx-preview7/daily/win_x86_Release_version_badge.svg?no-cache
-[win-x86-version-9.0.1XX-preview7]: https://aka.ms/dotnet/9.0.1xx-preview7/daily/productCommit-win-x86.txt
-[win-x86-installer-9.0.1XX-preview7]: https://aka.ms/dotnet/9.0.1xx-preview7/daily/dotnet-sdk-win-x86.exe
-[win-x86-installer-checksum-9.0.1XX-preview7]: https://aka.ms/dotnet/9.0.1xx-preview7/daily/dotnet-sdk-win-x86.exe.sha
-[win-x86-zip-9.0.1XX-preview7]: https://aka.ms/dotnet/9.0.1xx-preview7/daily/dotnet-sdk-win-x86.zip
-[win-x86-zip-checksum-9.0.1XX-preview7]: https://aka.ms/dotnet/9.0.1xx-preview7/daily/dotnet-sdk-win-x86.zip.sha
-
-[win-x86-badge-8.0.4XX]: https://aka.ms/dotnet/8.0.4xx/daily/win_x86_Release_version_badge.svg?no-cache
-[win-x86-version-8.0.4XX]: https://aka.ms/dotnet/8.0.4xx/daily/productCommit-win-x86.txt
-[win-x86-installer-8.0.4XX]: https://aka.ms/dotnet/8.0.4xx/daily/dotnet-sdk-win-x86.exe
-[win-x86-installer-checksum-8.0.4XX]: https://aka.ms/dotnet/8.0.4xx/daily/dotnet-sdk-win-x86.exe.sha
-[win-x86-zip-8.0.4XX]: https://aka.ms/dotnet/8.0.4xx/daily/dotnet-sdk-win-x86.zip
-[win-x86-zip-checksum-8.0.4XX]: https://aka.ms/dotnet/8.0.4xx/daily/dotnet-sdk-win-x86.zip.sha
-
-[osx-x64-badge-main]: https://aka.ms/dotnet/9.0.1xx/daily/osx_x64_Release_version_badge.svg?no-cache
-[osx-x64-version-main]: https://aka.ms/dotnet/9.0.1xx/daily/productCommit-osx-x64.txt
-[osx-x64-installer-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-osx-x64.pkg
-[osx-x64-installer-checksum-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-osx-x64.pkg.sha
-[osx-x64-targz-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-osx-x64.tar.gz
-[osx-x64-targz-checksum-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-osx-x64.pkg.tar.gz.sha
-
-[osx-x64-badge-9.0.1XX-preview7]: https://aka.ms/dotnet/9.0.1xx-preview7/daily/osx_x64_Release_version_badge.svg?no-cache
-[osx-x64-version-9.0.1XX-preview7]: https://aka.ms/dotnet/9.0.1xx-preview7/daily/productCommit-osx-x64.txt
-[osx-x64-installer-9.0.1XX-preview7]: https://aka.ms/dotnet/9.0.1xx-preview7/daily/dotnet-sdk-osx-x64.pkg
-[osx-x64-installer-checksum-9.0.1XX-preview7]: https://aka.ms/dotnet/9.0.1xx-preview7/daily/dotnet-sdk-osx-x64.pkg.sha
-[osx-x64-targz-9.0.1XX-preview7]: https://aka.ms/dotnet/9.0.1xx-preview7/daily/dotnet-sdk-osx-x64.tar.gz
-[osx-x64-targz-checksum-9.0.1XX-preview7]: https://aka.ms/dotnet/9.0.1xx-preview7/daily/dotnet-sdk-osx-x64.pkg.tar.gz.sha
-
-[osx-x64-badge-8.0.4XX]: https://aka.ms/dotnet/8.0.4xx/daily/osx_x64_Release_version_badge.svg?no-cache
-[osx-x64-version-8.0.4XX]: https://aka.ms/dotnet/8.0.4xx/daily/productCommit-osx-x64.txt
-[osx-x64-installer-8.0.4XX]: https://aka.ms/dotnet/8.0.4xx/daily/dotnet-sdk-osx-x64.pkg
-[osx-x64-installer-checksum-8.0.4XX]: https://aka.ms/dotnet/8.0.4xx/daily/dotnet-sdk-osx-x64.pkg.sha
-[osx-x64-targz-8.0.4XX]: https://aka.ms/dotnet/8.0.4xx/daily/dotnet-sdk-osx-x64.tar.gz
-[osx-x64-targz-checksum-8.0.4XX]: https://aka.ms/dotnet/8.0.4xx/daily/dotnet-sdk-osx-x64.pkg.tar.gz.sha
-
-[osx-arm64-badge-main]: https://aka.ms/dotnet/9.0.1xx/daily/osx_arm64_Release_version_badge.svg?no-cache
-[osx-arm64-version-main]: https://aka.ms/dotnet/9.0.1xx/daily/productCommit-osx-arm64.txt
-[osx-arm64-installer-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-osx-arm64.pkg
-[osx-arm64-installer-checksum-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-osx-arm64.pkg.sha
-[osx-arm64-targz-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-osx-arm64.tar.gz
-[osx-arm64-targz-checksum-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-osx-arm64.pkg.tar.gz.sha
-
-[osx-arm64-badge-9.0.1XX-preview7]: https://aka.ms/dotnet/9.0.1xx-preview7/daily/osx_arm64_Release_version_badge.svg?no-cache
-[osx-arm64-version-9.0.1XX-preview7]: https://aka.ms/dotnet/9.0.1xx-preview7/daily/productCommit-osx-arm64.txt
-[osx-arm64-installer-9.0.1XX-preview7]: https://aka.ms/dotnet/9.0.1xx-preview7/daily/dotnet-sdk-osx-arm64.pkg
-[osx-arm64-installer-checksum-9.0.1XX-preview7]: https://aka.ms/dotnet/9.0.1xx-preview7/daily/dotnet-sdk-osx-arm64.pkg.sha
-[osx-arm64-targz-9.0.1XX-preview7]: https://aka.ms/dotnet/9.0.1xx-preview7/daily/dotnet-sdk-osx-arm64.tar.gz
-[osx-arm64-targz-checksum-9.0.1XX-preview7]: https://aka.ms/dotnet/9.0.1xx-preview7/daily/dotnet-sdk-osx-arm64.pkg.tar.gz.sha
-
-[osx-arm64-badge-8.0.4XX]: https://aka.ms/dotnet/8.0.4xx/daily/osx_arm64_Release_version_badge.svg?no-cache
-[osx-arm64-version-8.0.4XX]: https://aka.ms/dotnet/8.0.4xx/daily/productCommit-osx-arm64.txt
-[osx-arm64-installer-8.0.4XX]: https://aka.ms/dotnet/8.0.4xx/daily/dotnet-sdk-osx-arm64.pkg
-[osx-arm64-installer-checksum-8.0.4XX]: https://aka.ms/dotnet/8.0.4xx/daily/dotnet-sdk-osx-arm64.pkg.sha
-[osx-arm64-targz-8.0.4XX]: https://aka.ms/dotnet/8.0.4xx/daily/dotnet-sdk-osx-arm64.tar.gz
-[osx-arm64-targz-checksum-8.0.4XX]: https://aka.ms/dotnet/8.0.4xx/daily/dotnet-sdk-osx-arm64.pkg.tar.gz.sha
-
-[linux-badge-main]: https://aka.ms/dotnet/9.0.1xx/daily/linux_x64_Release_version_badge.svg?no-cache
-[linux-version-main]: https://aka.ms/dotnet/9.0.1xx/daily/productCommit-linux-x64.txt
-[linux-DEB-installer-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-x64.deb
-[linux-DEB-installer-checksum-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-x64.deb.sha
-[linux-RPM-installer-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-x64.rpm
-[linux-RPM-installer-checksum-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-x64.rpm.sha
-[linux-targz-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-linux-x64.tar.gz
-[linux-targz-checksum-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-linux-x64.tar.gz.sha
-
-[linux-badge-9.0.1XX-preview7]: https://aka.ms/dotnet/9.0.1xx-preview7/daily/linux_x64_Release_version_badge.svg?no-cache
-[linux-version-9.0.1XX-preview7]: https://aka.ms/dotnet/9.0.1xx-preview7/daily/productCommit-linux-x64.txt
-[linux-DEB-installer-9.0.1XX-preview7]: https://aka.ms/dotnet/9.0.1xx-preview7/daily/dotnet-sdk-x64.deb
-[linux-DEB-installer-checksum-9.0.1XX-preview7]: https://aka.ms/dotnet/9.0.1xx-preview7/daily/dotnet-sdk-x64.deb.sha
-[linux-RPM-installer-9.0.1XX-preview7]: https://aka.ms/dotnet/9.0.1xx-preview7/daily/dotnet-sdk-x64.rpm
-[linux-RPM-installer-checksum-9.0.1XX-preview7]: https://aka.ms/dotnet/9.0.1xx-preview7/daily/dotnet-sdk-x64.rpm.sha
-[linux-targz-9.0.1XX-preview7]: https://aka.ms/dotnet/9.0.1xx-preview7/daily/dotnet-sdk-linux-x64.tar.gz
-[linux-targz-checksum-9.0.1XX-preview7]: https://aka.ms/dotnet/9.0.1xx-preview7/daily/dotnet-sdk-linux-x64.tar.gz.sha
-
-[linux-badge-8.0.4XX]: https://aka.ms/dotnet/8.0.4xx/daily/linux_x64_Release_version_badge.svg?no-cache
-[linux-version-8.0.4XX]: https://aka.ms/dotnet/8.0.4xx/daily/productCommit-linux-x64.txt
-[linux-DEB-installer-8.0.4XX]: https://aka.ms/dotnet/8.0.4xx/daily/dotnet-sdk-x64.deb
-[linux-DEB-installer-checksum-8.0.4XX]: https://aka.ms/dotnet/8.0.4xx/daily/dotnet-sdk-x64.deb.sha
-[linux-RPM-installer-8.0.4XX]: https://aka.ms/dotnet/8.0.4xx/daily/dotnet-sdk-x64.rpm
-[linux-RPM-installer-checksum-8.0.4XX]: https://aka.ms/dotnet/8.0.4xx/daily/dotnet-sdk-x64.rpm.sha
-[linux-targz-8.0.4XX]: https://aka.ms/dotnet/8.0.4xx/daily/dotnet-sdk-linux-x64.tar.gz
-[linux-targz-checksum-8.0.4XX]: https://aka.ms/dotnet/8.0.4xx/daily/dotnet-sdk-linux-x64.tar.gz.sha
-
-[linux-arm-badge-main]: https://aka.ms/dotnet/9.0.1xx/daily/linux_arm_Release_version_badge.svg?no-cache
-[linux-arm-version-main]: https://aka.ms/dotnet/9.0.1xx/daily/productCommit-linux-arm.txt
-[linux-arm-targz-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-linux-arm.tar.gz
-[linux-arm-targz-checksum-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-linux-arm.tar.gz.sha
-
-[linux-arm-badge-9.0.1XX-preview7]: https://aka.ms/dotnet/9.0.1xx-preview7/daily/linux_arm_Release_version_badge.svg?no-cache
-[linux-arm-version-9.0.1XX-preview7]: https://aka.ms/dotnet/9.0.1xx-preview7/daily/productCommit-linux-arm.txt
-[linux-arm-targz-9.0.1XX-preview7]: https://aka.ms/dotnet/9.0.1xx-preview7/daily/dotnet-sdk-linux-arm.tar.gz
-[linux-arm-targz-checksum-9.0.1XX-preview7]: https://aka.ms/dotnet/9.0.1xx-preview7/daily/dotnet-sdk-linux-arm.tar.gz.sha
-
-[linux-arm-badge-8.0.4XX]: https://aka.ms/dotnet/8.0.4xx/daily/linux_arm_Release_version_badge.svg?no-cache
-[linux-arm-version-8.0.4XX]: https://aka.ms/dotnet/8.0.4xx/daily/productCommit-linux-arm.txt
-[linux-arm-targz-8.0.4XX]: https://aka.ms/dotnet/8.0.4xx/daily/dotnet-sdk-linux-arm.tar.gz
-[linux-arm-targz-checksum-8.0.4XX]: https://aka.ms/dotnet/8.0.4xx/daily/dotnet-sdk-linux-arm.tar.gz.sha
-
-[linux-arm64-badge-main]: https://aka.ms/dotnet/9.0.1xx/daily/linux_arm64_Release_version_badge.svg?no-cache
-[linux-arm64-version-main]: https://aka.ms/dotnet/9.0.1xx/daily/productCommit-linux-arm64.txt
-[linux-arm64-targz-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-linux-arm64.tar.gz
-[linux-arm64-targz-checksum-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-linux-arm64.tar.gz.sha
-
-[linux-arm64-badge-9.0.1XX-preview7]: https://aka.ms/dotnet/9.0.1xx-preview7/daily/linux_arm64_Release_version_badge.svg?no-cache
-[linux-arm64-version-9.0.1XX-preview7]: https://aka.ms/dotnet/9.0.1xx-preview7/daily/productCommit-linux-arm64.txt
-[linux-arm64-targz-9.0.1XX-preview7]: https://aka.ms/dotnet/9.0.1xx-preview7/daily/dotnet-sdk-linux-arm64.tar.gz
-[linux-arm64-targz-checksum-9.0.1XX-preview7]: https://aka.ms/dotnet/9.0.1xx-preview7/daily/dotnet-sdk-linux-arm64.tar.gz.sha
-
-[linux-arm64-badge-8.0.4XX]: https://aka.ms/dotnet/8.0.4xx/daily/linux_arm64_Release_version_badge.svg?no-cache
-[linux-arm64-version-8.0.4XX]: https://aka.ms/dotnet/8.0.4xx/daily/productCommit-linux-arm64.txt
-[linux-arm64-targz-8.0.4XX]: https://aka.ms/dotnet/8.0.4xx/daily/dotnet-sdk-linux-arm64.tar.gz
-[linux-arm64-targz-checksum-8.0.4XX]: https://aka.ms/dotnet/8.0.4xx/daily/dotnet-sdk-linux-arm64.tar.gz.sha
-
-[rhel-6-badge-main]: https://aka.ms/dotnet/9.0.1xx/daily/rhel.6_x64_Release_version_badge.svg?no-cache
-[rhel-6-version-main]: https://aka.ms/dotnet/9.0.1xx/daily/productCommit-rhel.6-x64.txt
-[rhel-6-targz-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-rhel.6-x64.tar.gz
-[rhel-6-targz-checksum-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-rhel.6-x64.tar.gz.sha
-
-[rhel-6-badge-9.0.1XX-preview7]: https://aka.ms/dotnet/9.0.1xx-preview7/daily/rhel.6_x64_Release_version_badge.svg?no-cache
-[rhel-6-version-9.0.1XX-preview7]: https://aka.ms/dotnet/9.0.1xx-preview7/daily/productCommit-rhel.6-x64.txt
-[rhel-6-targz-9.0.1XX-preview7]: https://aka.ms/dotnet/9.0.1xx-preview7/daily/dotnet-sdk-rhel.6-x64.tar.gz
-[rhel-6-targz-checksum-9.0.1XX-preview7]: https://aka.ms/dotnet/9.0.1xx-preview7/daily/dotnet-sdk-rhel.6-x64.tar.gz.sha
-
-[rhel-6-badge-8.0.4XX]: https://aka.ms/dotnet/8.0.4xx/daily/rhel.6_x64_Release_version_badge.svg?no-cache
-[rhel-6-version-8.0.4XX]: https://aka.ms/dotnet/8.0.4xx/daily/productCommit-rhel.6-x64.txt
-[rhel-6-targz-8.0.4XX]: https://aka.ms/dotnet/8.0.4xx/daily/dotnet-sdk-rhel.6-x64.tar.gz
-[rhel-6-targz-checksum-8.0.4XX]: https://aka.ms/dotnet/8.0.4xx/daily/dotnet-sdk-rhel.6-x64.tar.gz.sha
-
-[linux-musl-x64-badge-main]: https://aka.ms/dotnet/9.0.1xx/daily/linux_musl_x64_Release_version_badge.svg?no-cache
-[linux-musl-x64-version-main]: https://aka.ms/dotnet/9.0.1xx/daily/productCommit-linux-musl-x64.txt
-[linux-musl-x64-targz-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-linux-musl-x64.tar.gz
-[linux-musl-x64-targz-checksum-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-linux-musl-x64.tar.gz.sha
-
-[linux-musl-x64-badge-9.0.1XX-preview7]: https://aka.ms/dotnet/9.0.1xx-preview7/daily/linux_musl_x64_Release_version_badge.svg?no-cache
-[linux-musl-x64-version-9.0.1XX-preview7]: https://aka.ms/dotnet/9.0.1xx-preview7/daily/productCommit-linux-musl-x64.txt
-[linux-musl-x64-targz-9.0.1XX-preview7]: https://aka.ms/dotnet/9.0.1xx-preview7/daily/dotnet-sdk-linux-musl-x64.tar.gz
-[linux-musl-x64-targz-checksum-9.0.1XX-preview7]: https://aka.ms/dotnet/9.0.1xx-preview7/daily/dotnet-sdk-linux-musl-x64.tar.gz.sha
-
-[linux-musl-x64-badge-8.0.4XX]: https://aka.ms/dotnet/8.0.4xx/daily/linux_musl_x64_Release_version_badge.svg?no-cache
-[linux-musl-x64-version-8.0.4XX]: https://aka.ms/dotnet/8.0.4xx/daily/productCommit-linux-musl-x64.txt
-[linux-musl-x64-targz-8.0.4XX]: https://aka.ms/dotnet/8.0.4xx/daily/dotnet-sdk-linux-musl-x64.tar.gz
-[linux-musl-x64-targz-checksum-8.0.4XX]: https://aka.ms/dotnet/8.0.4xx/daily/dotnet-sdk-linux-musl-x64.tar.gz.sha
-
-[linux-musl-arm-badge-main]: https://aka.ms/dotnet/9.0.1xx/daily/linux_musl_arm_Release_version_badge.svg?no-cache
-[linux-musl-arm-version-main]: https://aka.ms/dotnet/9.0.1xx/daily/productCommit-linux-musl-arm.txt
-[linux-musl-arm-targz-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-linux-musl-arm.tar.gz
-[linux-musl-arm-targz-checksum-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-linux-musl-arm.tar.gz.sha
-
-[linux-musl-arm-badge-9.0.1XX-preview7]: https://aka.ms/dotnet/9.0.1xx-preview7/daily/linux_musl_arm_Release_version_badge.svg?no-cache
-[linux-musl-arm-version-9.0.1XX-preview7]: https://aka.ms/dotnet/9.0.1xx-preview7/daily/productCommit-linux-musl-arm.txt
-[linux-musl-arm-targz-9.0.1XX-preview7]: https://aka.ms/dotnet/9.0.1xx-preview7/daily/dotnet-sdk-linux-musl-arm.tar.gz
-[linux-musl-arm-targz-checksum-9.0.1XX-preview7]: https://aka.ms/dotnet/9.0.1xx-preview7/daily/dotnet-sdk-linux-musl-arm.tar.gz.sha
-
-[linux-musl-arm-badge-8.0.4XX]: https://aka.ms/dotnet/8.0.4xx/daily/linux_musl_arm_Release_version_badge.svg?no-cache
-[linux-musl-arm-version-8.0.4XX]: https://aka.ms/dotnet/8.0.4xx/daily/productCommit-linux-musl-arm.txt
-[linux-musl-arm-targz-8.0.4XX]: https://aka.ms/dotnet/8.0.4xx/daily/dotnet-sdk-linux-musl-arm.tar.gz
-[linux-musl-arm-targz-checksum-8.0.4XX]: https://aka.ms/dotnet/8.0.4xx/daily/dotnet-sdk-linux-musl-arm.tar.gz.sha
-
-[linux-musl-arm64-badge-main]: https://aka.ms/dotnet/9.0.1xx/daily/linux_musl_arm64_Release_version_badge.svg?no-cache
-[linux-musl-arm64-version-main]: https://aka.ms/dotnet/9.0.1xx/daily/productCommit-linux-musl-arm64.txt
-[linux-musl-arm64-targz-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-linux-musl-arm64.tar.gz
-[linux-musl-arm64-targz-checksum-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-linux-musl-arm64.tar.gz.sha
-
-[linux-musl-arm64-badge-9.0.1XX-preview7]: https://aka.ms/dotnet/9.0.1xx-preview7/daily/linux_musl_arm64_Release_version_badge.svg?no-cache
-[linux-musl-arm64-version-9.0.1XX-preview7]: https://aka.ms/dotnet/9.0.1xx-preview7/daily/productCommit-linux-musl-arm64.txt
-[linux-musl-arm64-targz-9.0.1XX-preview7]: https://aka.ms/dotnet/9.0.1xx-preview7/daily/dotnet-sdk-linux-musl-arm64.tar.gz
-[linux-musl-arm64-targz-checksum-9.0.1XX-preview7]: https://aka.ms/dotnet/9.0.1xx-preview7/daily/dotnet-sdk-linux-musl-arm64.tar.gz.sha
-
-[linux-musl-arm64-badge-8.0.4XX]: https://aka.ms/dotnet/8.0.4xx/daily/linux_musl_arm64_Release_version_badge.svg?no-cache
-[linux-musl-arm64-version-8.0.4XX]: https://aka.ms/dotnet/8.0.4xx/daily/productCommit-linux-musl-arm64.txt
-[linux-musl-arm64-targz-8.0.4XX]: https://aka.ms/dotnet/8.0.4xx/daily/dotnet-sdk-linux-musl-arm64.tar.gz
-[linux-musl-arm64-targz-checksum-8.0.4XX]: https://aka.ms/dotnet/8.0.4xx/daily/dotnet-sdk-linux-musl-arm64.tar.gz.sha
-
-[win-arm-badge-main]: https://aka.ms/dotnet/9.0.1xx/daily/win_arm_Release_version_badge.svg?no-cache
-[win-arm-version-main]: https://aka.ms/dotnet/9.0.1xx/daily/productCommit-win-arm.txt
-[win-arm-zip-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-win-arm.zip
-[win-arm-zip-checksum-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-win-arm.zip.sha
-
-[win-arm-badge-9.0.1XX-preview7]: https://aka.ms/dotnet/9.0.1xx-preview7/daily/win_arm_Release_version_badge.svg?no-cache
-[win-arm-version-9.0.1XX-preview7]: https://aka.ms/dotnet/9.0.1xx-preview7/daily/productCommit-win-arm.txt
-[win-arm-zip-9.0.1XX-preview7]: https://aka.ms/dotnet/9.0.1xx-preview7/daily/dotnet-sdk-win-arm.zip
-[win-arm-zip-checksum-9.0.1XX-preview7]: https://aka.ms/dotnet/9.0.1xx-preview7/daily/dotnet-sdk-win-arm.zip.sha
-
-[win-arm-badge-8.0.4XX]: https://aka.ms/dotnet/8.0.4xx/daily/win_arm_Release_version_badge.svg?no-cache
-[win-arm-version-8.0.4XX]: https://aka.ms/dotnet/8.0.4xx/daily/productCommit-win-arm.txt
-[win-arm-zip-8.0.4XX]: https://aka.ms/dotnet/8.0.4xx/daily/dotnet-sdk-win-arm.zip
-[win-arm-zip-checksum-8.0.4XX]: https://aka.ms/dotnet/8.0.4xx/daily/dotnet-sdk-win-arm.zip.sha
-
-[win-arm64-badge-main]: https://aka.ms/dotnet/9.0.1xx/daily/win_arm64_Release_version_badge.svg?no-cache
-[win-arm64-version-main]: https://aka.ms/dotnet/9.0.1xx/daily/productCommit-win-arm64.txt
-[win-arm64-installer-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-win-arm64.exe
-[win-arm64-installer-checksum-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-win-arm64.exe.sha
-[win-arm64-zip-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-win-arm64.zip
-[win-arm64-zip-checksum-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-win-arm64.zip.sha
-
-[win-arm64-badge-9.0.1XX-preview7]: https://aka.ms/dotnet/9.0.1xx-preview7/daily/win_arm64_Release_version_badge.svg?no-cache
-[win-arm64-version-9.0.1XX-preview7]: https://aka.ms/dotnet/9.0.1xx-preview7/daily/productCommit-win-arm64.txt
-[win-arm64-installer-9.0.1XX-preview7]: https://aka.ms/dotnet/9.0.1xx-preview7/daily/dotnet-sdk-win-arm64.exe
-[win-arm64-installer-checksum-9.0.1XX-preview7]: https://aka.ms/dotnet/9.0.1xx-preview7/daily/dotnet-sdk-win-arm64.exe.sha
-[win-arm64-zip-9.0.1XX-preview7]: https://aka.ms/dotnet/9.0.1xx-preview7/daily/dotnet-sdk-win-arm64.zip
-[win-arm64-zip-checksum-9.0.1XX-preview7]: https://aka.ms/dotnet/9.0.1xx-preview7/daily/dotnet-sdk-win-arm64.zip.sha
-
-[win-arm64-badge-8.0.4XX]: https://aka.ms/dotnet/8.0.4xx/daily/win_arm64_Release_version_badge.svg?no-cache
-[win-arm64-version-8.0.4XX]: https://aka.ms/dotnet/8.0.4xx/daily/productCommit-win-arm64.txt
-[win-arm64-installer-8.0.4XX]: https://aka.ms/dotnet/8.0.4xx/daily/dotnet-sdk-win-arm64.exe
-[win-arm64-installer-checksum-8.0.4XX]: https://aka.ms/dotnet/8.0.4xx/daily/dotnet-sdk-win-arm64.exe.sha
-[win-arm64-zip-8.0.4XX]: https://aka.ms/dotnet/8.0.4xx/daily/dotnet-sdk-win-arm64.zip
-[win-arm64-zip-checksum-8.0.4XX]: https://aka.ms/dotnet/8.0.4xx/daily/dotnet-sdk-win-arm64.zip.sha
+[win-x64-badge-main]: https://aka.ms/dotnet/10.0.1xx/daily/win_x64_Release_version_badge.svg?no-cache
+[win-x64-version-main]: https://aka.ms/dotnet/10.0.1xx/daily/productCommit-win-x64.txt
+[win-x64-installer-main]: https://aka.ms/dotnet/10.0.1xx/daily/dotnet-sdk-win-x64.exe
+[win-x64-installer-checksum-main]: https://aka.ms/dotnet/10.0.1xx/daily/dotnet-sdk-win-x64.exe.sha
+[win-x64-zip-main]: https://aka.ms/dotnet/10.0.1xx/daily/dotnet-sdk-win-x64.zip
+[win-x64-zip-checksum-main]: https://aka.ms/dotnet/10.0.1xx/daily/dotnet-sdk-win-x64.zip.sha
+
+[win-x64-badge-9.0.2XX]: https://aka.ms/dotnet/9.0.2xx/daily/win_x64_Release_version_badge.svg?no-cache
+[win-x64-version-9.0.2XX]: https://aka.ms/dotnet/9.0.2xx/daily/productCommit-win-x64.txt
+[win-x64-installer-9.0.2XX]: https://aka.ms/dotnet/9.0.2xx/daily/dotnet-sdk-win-x64.exe
+[win-x64-installer-checksum-9.0.2XX]: https://aka.ms/dotnet/9.0.2xx/daily/dotnet-sdk-win-x64.exe.sha
+[win-x64-zip-9.0.2XX]: https://aka.ms/dotnet/9.0.2xx/daily/dotnet-sdk-win-x64.zip
+[win-x64-zip-checksum-9.0.2XX]: https://aka.ms/dotnet/9.0.2xx/daily/dotnet-sdk-win-x64.zip.sha
+
+[win-x64-badge-9.0.1XX]: https://aka.ms/dotnet/9.0.1xx/daily/win_x64_Release_version_badge.svg?no-cache
+[win-x64-version-9.0.1XX]: https://aka.ms/dotnet/9.0.1xx/daily/productCommit-win-x64.txt
+[win-x64-installer-9.0.1XX]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-win-x64.exe
+[win-x64-installer-checksum-9.0.1XX]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-win-x64.exe.sha
+[win-x64-zip-9.0.1XX]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-win-x64.zip
+[win-x64-zip-checksum-9.0.1XX]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-win-x64.zip.sha
+
+[win-x86-badge-main]: https://aka.ms/dotnet/10.0.1xx/daily/win_x86_Release_version_badge.svg?no-cache
+[win-x86-version-main]: https://aka.ms/dotnet/10.0.1xx/daily/productCommit-win-x86.txt
+[win-x86-installer-main]: https://aka.ms/dotnet/10.0.1xx/daily/dotnet-sdk-win-x86.exe
+[win-x86-installer-checksum-main]: https://aka.ms/dotnet/10.0.1xx/daily/dotnet-sdk-win-x86.exe.sha
+[win-x86-zip-main]: https://aka.ms/dotnet/10.0.1xx/daily/dotnet-sdk-win-x86.zip
+[win-x86-zip-checksum-main]: https://aka.ms/dotnet/10.0.1xx/daily/dotnet-sdk-win-x86.zip.sha
+
+[win-x86-badge-9.0.2XX]: https://aka.ms/dotnet/9.0.2xx/daily/win_x86_Release_version_badge.svg?no-cache
+[win-x86-version-9.0.2XX]: https://aka.ms/dotnet/9.0.2xx/daily/productCommit-win-x86.txt
+[win-x86-installer-9.0.2XX]: https://aka.ms/dotnet/9.0.2xx/daily/dotnet-sdk-win-x86.exe
+[win-x86-installer-checksum-9.0.2XX]: https://aka.ms/dotnet/9.0.2xx/daily/dotnet-sdk-win-x86.exe.sha
+[win-x86-zip-9.0.2XX]: https://aka.ms/dotnet/9.0.2xx/daily/dotnet-sdk-win-x86.zip
+[win-x86-zip-checksum-9.0.2XX]: https://aka.ms/dotnet/9.0.2xx/daily/dotnet-sdk-win-x86.zip.sha
+
+[win-x86-badge-9.0.1XX]: https://aka.ms/dotnet/9.0.1xx/daily/win_x86_Release_version_badge.svg?no-cache
+[win-x86-version-9.0.1XX]: https://aka.ms/dotnet/9.0.1xx/daily/productCommit-win-x86.txt
+[win-x86-installer-9.0.1XX]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-win-x86.exe
+[win-x86-installer-checksum-9.0.1XX]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-win-x86.exe.sha
+[win-x86-zip-9.0.1XX]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-win-x86.zip
+[win-x86-zip-checksum-9.0.1XX]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-win-x86.zip.sha
+
+[osx-x64-badge-main]: https://aka.ms/dotnet/10.0.1xx/daily/osx_x64_Release_version_badge.svg?no-cache
+[osx-x64-version-main]: https://aka.ms/dotnet/10.0.1xx/daily/productCommit-osx-x64.txt
+[osx-x64-installer-main]: https://aka.ms/dotnet/10.0.1xx/daily/dotnet-sdk-osx-x64.pkg
+[osx-x64-installer-checksum-main]: https://aka.ms/dotnet/10.0.1xx/daily/dotnet-sdk-osx-x64.pkg.sha
+[osx-x64-targz-main]: https://aka.ms/dotnet/10.0.1xx/daily/dotnet-sdk-osx-x64.tar.gz
+[osx-x64-targz-checksum-main]: https://aka.ms/dotnet/10.0.1xx/daily/dotnet-sdk-osx-x64.pkg.tar.gz.sha
+
+[osx-x64-badge-9.0.2XX]: https://aka.ms/dotnet/9.0.2xx/daily/osx_x64_Release_version_badge.svg?no-cache
+[osx-x64-version-9.0.2XX]: https://aka.ms/dotnet/9.0.2xx/daily/productCommit-osx-x64.txt
+[osx-x64-installer-9.0.2XX]: https://aka.ms/dotnet/9.0.2xx/daily/dotnet-sdk-osx-x64.pkg
+[osx-x64-installer-checksum-9.0.2XX]: https://aka.ms/dotnet/9.0.2xx/daily/dotnet-sdk-osx-x64.pkg.sha
+[osx-x64-targz-9.0.2XX]: https://aka.ms/dotnet/9.0.2xx/daily/dotnet-sdk-osx-x64.tar.gz
+[osx-x64-targz-checksum-9.0.2XX]: https://aka.ms/dotnet/9.0.2xx/daily/dotnet-sdk-osx-x64.pkg.tar.gz.sha
+
+[osx-x64-badge-9.0.1XX]: https://aka.ms/dotnet/9.0.1xx/daily/osx_x64_Release_version_badge.svg?no-cache
+[osx-x64-version-9.0.1XX]: https://aka.ms/dotnet/9.0.1xx/daily/productCommit-osx-x64.txt
+[osx-x64-installer-9.0.1XX]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-osx-x64.pkg
+[osx-x64-installer-checksum-9.0.1XX]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-osx-x64.pkg.sha
+[osx-x64-targz-9.0.1XX]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-osx-x64.tar.gz
+[osx-x64-targz-checksum-9.0.1XX]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-osx-x64.pkg.tar.gz.sha
+
+[osx-arm64-badge-main]: https://aka.ms/dotnet/10.0.1xx/daily/osx_arm64_Release_version_badge.svg?no-cache
+[osx-arm64-version-main]: https://aka.ms/dotnet/10.0.1xx/daily/productCommit-osx-arm64.txt
+[osx-arm64-installer-main]: https://aka.ms/dotnet/10.0.1xx/daily/dotnet-sdk-osx-arm64.pkg
+[osx-arm64-installer-checksum-main]: https://aka.ms/dotnet/10.0.1xx/daily/dotnet-sdk-osx-arm64.pkg.sha
+[osx-arm64-targz-main]: https://aka.ms/dotnet/10.0.1xx/daily/dotnet-sdk-osx-arm64.tar.gz
+[osx-arm64-targz-checksum-main]: https://aka.ms/dotnet/10.0.1xx/daily/dotnet-sdk-osx-arm64.pkg.tar.gz.sha
+
+[osx-arm64-badge-9.0.2XX]: https://aka.ms/dotnet/9.0.2xx/daily/osx_arm64_Release_version_badge.svg?no-cache
+[osx-arm64-version-9.0.2XX]: https://aka.ms/dotnet/9.0.2xx/daily/productCommit-osx-arm64.txt
+[osx-arm64-installer-9.0.2XX]: https://aka.ms/dotnet/9.0.2xx/daily/dotnet-sdk-osx-arm64.pkg
+[osx-arm64-installer-checksum-9.0.2XX]: https://aka.ms/dotnet/9.0.2xx/daily/dotnet-sdk-osx-arm64.pkg.sha
+[osx-arm64-targz-9.0.2XX]: https://aka.ms/dotnet/9.0.2xx/daily/dotnet-sdk-osx-arm64.tar.gz
+[osx-arm64-targz-checksum-9.0.2XX]: https://aka.ms/dotnet/9.0.2xx/daily/dotnet-sdk-osx-arm64.pkg.tar.gz.sha
+
+[osx-arm64-badge-9.0.1XX]: https://aka.ms/dotnet/9.0.1xx/daily/osx_arm64_Release_version_badge.svg?no-cache
+[osx-arm64-version-9.0.1XX]: https://aka.ms/dotnet/9.0.1xx/daily/productCommit-osx-arm64.txt
+[osx-arm64-installer-9.0.1XX]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-osx-arm64.pkg
+[osx-arm64-installer-checksum-9.0.1XX]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-osx-arm64.pkg.sha
+[osx-arm64-targz-9.0.1XX]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-osx-arm64.tar.gz
+[osx-arm64-targz-checksum-9.0.1XX]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-osx-arm64.pkg.tar.gz.sha
+
+[linux-badge-main]: https://aka.ms/dotnet/10.0.1xx/daily/linux_x64_Release_version_badge.svg?no-cache
+[linux-version-main]: https://aka.ms/dotnet/10.0.1xx/daily/productCommit-linux-x64.txt
+[linux-DEB-installer-main]: https://aka.ms/dotnet/10.0.1xx/daily/dotnet-sdk-x64.deb
+[linux-DEB-installer-checksum-main]: https://aka.ms/dotnet/10.0.1xx/daily/dotnet-sdk-x64.deb.sha
+[linux-RPM-installer-main]: https://aka.ms/dotnet/10.0.1xx/daily/dotnet-sdk-x64.rpm
+[linux-RPM-installer-checksum-main]: https://aka.ms/dotnet/10.0.1xx/daily/dotnet-sdk-x64.rpm.sha
+[linux-targz-main]: https://aka.ms/dotnet/10.0.1xx/daily/dotnet-sdk-linux-x64.tar.gz
+[linux-targz-checksum-main]: https://aka.ms/dotnet/10.0.1xx/daily/dotnet-sdk-linux-x64.tar.gz.sha
+
+[linux-badge-9.0.2XX]: https://aka.ms/dotnet/9.0.2xx/daily/linux_x64_Release_version_badge.svg?no-cache
+[linux-version-9.0.2XX]: https://aka.ms/dotnet/9.0.2xx/daily/productCommit-linux-x64.txt
+[linux-DEB-installer-9.0.2XX]: https://aka.ms/dotnet/9.0.2xx/daily/dotnet-sdk-x64.deb
+[linux-DEB-installer-checksum-9.0.2XX]: https://aka.ms/dotnet/9.0.2xx/daily/dotnet-sdk-x64.deb.sha
+[linux-RPM-installer-9.0.2XX]: https://aka.ms/dotnet/9.0.2xx/daily/dotnet-sdk-x64.rpm
+[linux-RPM-installer-checksum-9.0.2XX]: https://aka.ms/dotnet/9.0.2xx/daily/dotnet-sdk-x64.rpm.sha
+[linux-targz-9.0.2XX]: https://aka.ms/dotnet/9.0.2xx/daily/dotnet-sdk-linux-x64.tar.gz
+[linux-targz-checksum-9.0.2XX]: https://aka.ms/dotnet/9.0.2xx/daily/dotnet-sdk-linux-x64.tar.gz.sha
+
+[linux-badge-9.0.1XX]: https://aka.ms/dotnet/9.0.1xx/daily/linux_x64_Release_version_badge.svg?no-cache
+[linux-version-9.0.1XX]: https://aka.ms/dotnet/9.0.1xx/daily/productCommit-linux-x64.txt
+[linux-DEB-installer-9.0.1XX]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-x64.deb
+[linux-DEB-installer-checksum-9.0.1XX]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-x64.deb.sha
+[linux-RPM-installer-9.0.1XX]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-x64.rpm
+[linux-RPM-installer-checksum-9.0.1XX]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-x64.rpm.sha
+[linux-targz-9.0.1XX]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-linux-x64.tar.gz
+[linux-targz-checksum-9.0.1XX]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-linux-x64.tar.gz.sha
+
+[linux-arm-badge-main]: https://aka.ms/dotnet/10.0.1xx/daily/linux_arm_Release_version_badge.svg?no-cache
+[linux-arm-version-main]: https://aka.ms/dotnet/10.0.1xx/daily/productCommit-linux-arm.txt
+[linux-arm-targz-main]: https://aka.ms/dotnet/10.0.1xx/daily/dotnet-sdk-linux-arm.tar.gz
+[linux-arm-targz-checksum-main]: https://aka.ms/dotnet/10.0.1xx/daily/dotnet-sdk-linux-arm.tar.gz.sha
+
+[linux-arm-badge-9.0.2XX]: https://aka.ms/dotnet/9.0.2xx/daily/linux_arm_Release_version_badge.svg?no-cache
+[linux-arm-version-9.0.2XX]: https://aka.ms/dotnet/9.0.2xx/daily/productCommit-linux-arm.txt
+[linux-arm-targz-9.0.2XX]: https://aka.ms/dotnet/9.0.2xx/daily/dotnet-sdk-linux-arm.tar.gz
+[linux-arm-targz-checksum-9.0.2XX]: https://aka.ms/dotnet/9.0.2xx/daily/dotnet-sdk-linux-arm.tar.gz.sha
+
+[linux-arm-badge-9.0.1XX]: https://aka.ms/dotnet/9.0.1xx/daily/linux_arm_Release_version_badge.svg?no-cache
+[linux-arm-version-9.0.1XX]: https://aka.ms/dotnet/9.0.1xx/daily/productCommit-linux-arm.txt
+[linux-arm-targz-9.0.1XX]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-linux-arm.tar.gz
+[linux-arm-targz-checksum-9.0.1XX]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-linux-arm.tar.gz.sha
+
+[linux-arm64-badge-main]: https://aka.ms/dotnet/10.0.1xx/daily/linux_arm64_Release_version_badge.svg?no-cache
+[linux-arm64-version-main]: https://aka.ms/dotnet/10.0.1xx/daily/productCommit-linux-arm64.txt
+[linux-arm64-targz-main]: https://aka.ms/dotnet/10.0.1xx/daily/dotnet-sdk-linux-arm64.tar.gz
+[linux-arm64-targz-checksum-main]: https://aka.ms/dotnet/10.0.1xx/daily/dotnet-sdk-linux-arm64.tar.gz.sha
+
+[linux-arm64-badge-9.0.2XX]: https://aka.ms/dotnet/9.0.2xx/daily/linux_arm64_Release_version_badge.svg?no-cache
+[linux-arm64-version-9.0.2XX]: https://aka.ms/dotnet/9.0.2xx/daily/productCommit-linux-arm64.txt
+[linux-arm64-targz-9.0.2XX]: https://aka.ms/dotnet/9.0.2xx/daily/dotnet-sdk-linux-arm64.tar.gz
+[linux-arm64-targz-checksum-9.0.2XX]: https://aka.ms/dotnet/9.0.2xx/daily/dotnet-sdk-linux-arm64.tar.gz.sha
+
+[linux-arm64-badge-9.0.1XX]: https://aka.ms/dotnet/9.0.1xx/daily/linux_arm64_Release_version_badge.svg?no-cache
+[linux-arm64-version-9.0.1XX]: https://aka.ms/dotnet/9.0.1xx/daily/productCommit-linux-arm64.txt
+[linux-arm64-targz-9.0.1XX]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-linux-arm64.tar.gz
+[linux-arm64-targz-checksum-9.0.1XX]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-linux-arm64.tar.gz.sha
+
+[rhel-6-badge-main]: https://aka.ms/dotnet/10.0.1xx/daily/rhel.6_x64_Release_version_badge.svg?no-cache
+[rhel-6-version-main]: https://aka.ms/dotnet/10.0.1xx/daily/productCommit-rhel.6-x64.txt
+[rhel-6-targz-main]: https://aka.ms/dotnet/10.0.1xx/daily/dotnet-sdk-rhel.6-x64.tar.gz
+[rhel-6-targz-checksum-main]: https://aka.ms/dotnet/10.0.1xx/daily/dotnet-sdk-rhel.6-x64.tar.gz.sha
+
+[rhel-6-badge-9.0.2XX]: https://aka.ms/dotnet/9.0.2xx/daily/rhel.6_x64_Release_version_badge.svg?no-cache
+[rhel-6-version-9.0.2XX]: https://aka.ms/dotnet/9.0.2xx/daily/productCommit-rhel.6-x64.txt
+[rhel-6-targz-9.0.2XX]: https://aka.ms/dotnet/9.0.2xx/daily/dotnet-sdk-rhel.6-x64.tar.gz
+[rhel-6-targz-checksum-9.0.2XX]: https://aka.ms/dotnet/9.0.2xx/daily/dotnet-sdk-rhel.6-x64.tar.gz.sha
+
+[rhel-6-badge-9.0.1XX]: https://aka.ms/dotnet/9.0.1xx/daily/rhel.6_x64_Release_version_badge.svg?no-cache
+[rhel-6-version-9.0.1XX]: https://aka.ms/dotnet/9.0.1xx/daily/productCommit-rhel.6-x64.txt
+[rhel-6-targz-9.0.1XX]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-rhel.6-x64.tar.gz
+[rhel-6-targz-checksum-9.0.1XX]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-rhel.6-x64.tar.gz.sha
+
+[linux-musl-x64-badge-main]: https://aka.ms/dotnet/10.0.1xx/daily/linux_musl_x64_Release_version_badge.svg?no-cache
+[linux-musl-x64-version-main]: https://aka.ms/dotnet/10.0.1xx/daily/productCommit-linux-musl-x64.txt
+[linux-musl-x64-targz-main]: https://aka.ms/dotnet/10.0.1xx/daily/dotnet-sdk-linux-musl-x64.tar.gz
+[linux-musl-x64-targz-checksum-main]: https://aka.ms/dotnet/10.0.1xx/daily/dotnet-sdk-linux-musl-x64.tar.gz.sha
+
+[linux-musl-x64-badge-9.0.2XX]: https://aka.ms/dotnet/9.0.2xx/daily/linux_musl_x64_Release_version_badge.svg?no-cache
+[linux-musl-x64-version-9.0.2XX]: https://aka.ms/dotnet/9.0.2xx/daily/productCommit-linux-musl-x64.txt
+[linux-musl-x64-targz-9.0.2XX]: https://aka.ms/dotnet/9.0.2xx/daily/dotnet-sdk-linux-musl-x64.tar.gz
+[linux-musl-x64-targz-checksum-9.0.2XX]: https://aka.ms/dotnet/9.0.2xx/daily/dotnet-sdk-linux-musl-x64.tar.gz.sha
+
+[linux-musl-x64-badge-9.0.1XX]: https://aka.ms/dotnet/9.0.1xx/daily/linux_musl_x64_Release_version_badge.svg?no-cache
+[linux-musl-x64-version-9.0.1XX]: https://aka.ms/dotnet/9.0.1xx/daily/productCommit-linux-musl-x64.txt
+[linux-musl-x64-targz-9.0.1XX]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-linux-musl-x64.tar.gz
+[linux-musl-x64-targz-checksum-9.0.1XX]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-linux-musl-x64.tar.gz.sha
+
+[linux-musl-arm-badge-main]: https://aka.ms/dotnet/10.0.1xx/daily/linux_musl_arm_Release_version_badge.svg?no-cache
+[linux-musl-arm-version-main]: https://aka.ms/dotnet/10.0.1xx/daily/productCommit-linux-musl-arm.txt
+[linux-musl-arm-targz-main]: https://aka.ms/dotnet/10.0.1xx/daily/dotnet-sdk-linux-musl-arm.tar.gz
+[linux-musl-arm-targz-checksum-main]: https://aka.ms/dotnet/10.0.1xx/daily/dotnet-sdk-linux-musl-arm.tar.gz.sha
+
+[linux-musl-arm-badge-9.0.2XX]: https://aka.ms/dotnet/9.0.2xx/daily/linux_musl_arm_Release_version_badge.svg?no-cache
+[linux-musl-arm-version-9.0.2XX]: https://aka.ms/dotnet/9.0.2xx/daily/productCommit-linux-musl-arm.txt
+[linux-musl-arm-targz-9.0.2XX]: https://aka.ms/dotnet/9.0.2xx/daily/dotnet-sdk-linux-musl-arm.tar.gz
+[linux-musl-arm-targz-checksum-9.0.2XX]: https://aka.ms/dotnet/9.0.2xx/daily/dotnet-sdk-linux-musl-arm.tar.gz.sha
+
+[linux-musl-arm-badge-9.0.1XX]: https://aka.ms/dotnet/9.0.1xx/daily/linux_musl_arm_Release_version_badge.svg?no-cache
+[linux-musl-arm-version-9.0.1XX]: https://aka.ms/dotnet/9.0.1xx/daily/productCommit-linux-musl-arm.txt
+[linux-musl-arm-targz-9.0.1XX]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-linux-musl-arm.tar.gz
+[linux-musl-arm-targz-checksum-9.0.1XX]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-linux-musl-arm.tar.gz.sha
+
+[linux-musl-arm64-badge-main]: https://aka.ms/dotnet/10.0.1xx/daily/linux_musl_arm64_Release_version_badge.svg?no-cache
+[linux-musl-arm64-version-main]: https://aka.ms/dotnet/10.0.1xx/daily/productCommit-linux-musl-arm64.txt
+[linux-musl-arm64-targz-main]: https://aka.ms/dotnet/10.0.1xx/daily/dotnet-sdk-linux-musl-arm64.tar.gz
+[linux-musl-arm64-targz-checksum-main]: https://aka.ms/dotnet/10.0.1xx/daily/dotnet-sdk-linux-musl-arm64.tar.gz.sha
+
+[linux-musl-arm64-badge-9.0.2XX]: https://aka.ms/dotnet/9.0.2xx/daily/linux_musl_arm64_Release_version_badge.svg?no-cache
+[linux-musl-arm64-version-9.0.2XX]: https://aka.ms/dotnet/9.0.2xx/daily/productCommit-linux-musl-arm64.txt
+[linux-musl-arm64-targz-9.0.2XX]: https://aka.ms/dotnet/9.0.2xx/daily/dotnet-sdk-linux-musl-arm64.tar.gz
+[linux-musl-arm64-targz-checksum-9.0.2XX]: https://aka.ms/dotnet/9.0.2xx/daily/dotnet-sdk-linux-musl-arm64.tar.gz.sha
+
+[linux-musl-arm64-badge-9.0.1XX]: https://aka.ms/dotnet/9.0.1xx/daily/linux_musl_arm64_Release_version_badge.svg?no-cache
+[linux-musl-arm64-version-9.0.1XX]: https://aka.ms/dotnet/9.0.1xx/daily/productCommit-linux-musl-arm64.txt
+[linux-musl-arm64-targz-9.0.1XX]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-linux-musl-arm64.tar.gz
+[linux-musl-arm64-targz-checksum-9.0.1XX]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-linux-musl-arm64.tar.gz.sha
+
+[win-arm-badge-main]: https://aka.ms/dotnet/10.0.1xx/daily/win_arm_Release_version_badge.svg?no-cache
+[win-arm-version-main]: https://aka.ms/dotnet/10.0.1xx/daily/productCommit-win-arm.txt
+[win-arm-zip-main]: https://aka.ms/dotnet/10.0.1xx/daily/dotnet-sdk-win-arm.zip
+[win-arm-zip-checksum-main]: https://aka.ms/dotnet/10.0.1xx/daily/dotnet-sdk-win-arm.zip.sha
+
+[win-arm-badge-9.0.2XX]: https://aka.ms/dotnet/9.0.2xx/daily/win_arm_Release_version_badge.svg?no-cache
+[win-arm-version-9.0.2XX]: https://aka.ms/dotnet/9.0.2xx/daily/productCommit-win-arm.txt
+[win-arm-zip-9.0.2XX]: https://aka.ms/dotnet/9.0.2xx/daily/dotnet-sdk-win-arm.zip
+[win-arm-zip-checksum-9.0.2XX]: https://aka.ms/dotnet/9.0.2xx/daily/dotnet-sdk-win-arm.zip.sha
+
+[win-arm-badge-9.0.1XX]: https://aka.ms/dotnet/9.0.1xx/daily/win_arm_Release_version_badge.svg?no-cache
+[win-arm-version-9.0.1XX]: https://aka.ms/dotnet/9.0.1xx/daily/productCommit-win-arm.txt
+[win-arm-zip-9.0.1XX]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-win-arm.zip
+[win-arm-zip-checksum-9.0.1XX]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-win-arm.zip.sha
+
+[win-arm64-badge-main]: https://aka.ms/dotnet/10.0.1xx/daily/win_arm64_Release_version_badge.svg?no-cache
+[win-arm64-version-main]: https://aka.ms/dotnet/10.0.1xx/daily/productCommit-win-arm64.txt
+[win-arm64-installer-main]: https://aka.ms/dotnet/10.0.1xx/daily/dotnet-sdk-win-arm64.exe
+[win-arm64-installer-checksum-main]: https://aka.ms/dotnet/10.0.1xx/daily/dotnet-sdk-win-arm64.exe.sha
+[win-arm64-zip-main]: https://aka.ms/dotnet/10.0.1xx/daily/dotnet-sdk-win-arm64.zip
+[win-arm64-zip-checksum-main]: https://aka.ms/dotnet/10.0.1xx/daily/dotnet-sdk-win-arm64.zip.sha
+
+[win-arm64-badge-9.0.2XX]: https://aka.ms/dotnet/9.0.2xx/daily/win_arm64_Release_version_badge.svg?no-cache
+[win-arm64-version-9.0.2XX]: https://aka.ms/dotnet/9.0.2xx/daily/productCommit-win-arm64.txt
+[win-arm64-installer-9.0.2XX]: https://aka.ms/dotnet/9.0.2xx/daily/dotnet-sdk-win-arm64.exe
+[win-arm64-installer-checksum-9.0.2XX]: https://aka.ms/dotnet/9.0.2xx/daily/dotnet-sdk-win-arm64.exe.sha
+[win-arm64-zip-9.0.2XX]: https://aka.ms/dotnet/9.0.2xx/daily/dotnet-sdk-win-arm64.zip
+[win-arm64-zip-checksum-9.0.2XX]: https://aka.ms/dotnet/9.0.2xx/daily/dotnet-sdk-win-arm64.zip.sha
+
+[win-arm64-badge-9.0.1XX]: https://aka.ms/dotnet/9.0.1xx/daily/win_arm64_Release_version_badge.svg?no-cache
+[win-arm64-version-9.0.1XX]: https://aka.ms/dotnet/9.0.1xx/daily/productCommit-win-arm64.txt
+[win-arm64-installer-9.0.1XX]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-win-arm64.exe
+[win-arm64-installer-checksum-9.0.1XX]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-win-arm64.exe.sha
+[win-arm64-zip-9.0.1XX]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-win-arm64.zip
+[win-arm64-zip-checksum-9.0.1XX]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-win-arm64.zip.sha
diff --git a/documentation/project-docs/Localization.md b/documentation/project-docs/Localization.md
new file mode 100644
index 000000000000..884c9fa075a3
--- /dev/null
+++ b/documentation/project-docs/Localization.md
@@ -0,0 +1,37 @@
+# Localization
+## Summary
+The .NET SDK is translated into 14 languages. In our codebase, you can see the primary resx file lists the strings to be translated.
+
+### Making changes
+The local dev build automatically generates updates to the xlf files that contain the translations. You can see the UpdateXlf task in the binlog to see that in action.
+
+When making string changes, update the resx, build, and check in all xlf file changes. Developers should never need to update the xlf files directly and should always rely on the local build for updates to those files. This will leave the files in english initially and they will get translated eventually.
+
+For internal folks, see https://aka.ms/allaboutloc
+
+### Loc issues
+Never manually update the xlf file even if a translation is wrong. Report a bug instead.
+
+External -- https://aka.ms/provide-feedback
+Internal -- https://aka.ms/icxLocFeedback
+
+### Loc Updates
+These are triggered automatically by the loc system as new translations come in. We generally accept these unless we notice it removing translations.
+https://github.com/dotnet/sdk/pulls?q=is%3Apr+author%3Adotnet-bot+onelocbuild
+
+### Loc Builds
+We typically only localize the primary development branch. We move to vNext once we get to RC1 and only then, localize all new strings introduced in that release. That way we can continue to add messages in the 4xx release of an SDK.
+
+This is controlled https://github.com/dotnet/sdk/blob/main/eng/pipelines/templates/jobs/sdk-job-matrix.yml#L86 and requires a change both here and in the loc system to align branches.
+
+### Translation directives
+There are a ton of translations directives our localization system understands. Here are some of the most common in this repo:
+
+#### Locking translations
+If a string or partial string should not be translated, add `{Locked=""}` with the details in the appropriate resx files. If `{Locked}` is used the entire string is locked. This can be specified multiple times, each locking different sections.
+
+#### Contextual comments
+You can use `` elements inside the `` tags to provide context to translators.
+
+### String formatting constraints
+You can use `{StrBegins=}`, `{StrContains=}` and `{StrEnds=}` to ensure that after translation the string contains the specified values
diff --git a/documentation/project-docs/developer-guide.md b/documentation/project-docs/developer-guide.md
index 38ddaee917b1..1aae54b45a50 100644
--- a/documentation/project-docs/developer-guide.md
+++ b/documentation/project-docs/developer-guide.md
@@ -8,6 +8,7 @@ In order to build and test the .NET Core Command-line Interface (CLI), you need
### For Windows
1. git (available from the [Git Website](http://www.git-scm.com/)) on the PATH.
+2. MSVC, C++ CMake Tools, and C++ ATL through the Visual Studio Installer.
### For Linux
@@ -15,7 +16,7 @@ In order to build and test the .NET Core Command-line Interface (CLI), you need
### For macOS
-1. git (available from [Homebrew](https://www.google.com/search?client=firefox-b-1-d&q=homebrew) or the [Git Website](http://www.git-scm.com/)) on the PATH.
+1. git (available from [Homebrew](https://brew.sh) or the [Git Website](http://www.git-scm.com/)) on the PATH.
## Building
diff --git a/documentation/project-docs/external-component-telemetry.md b/documentation/project-docs/external-component-telemetry.md
new file mode 100644
index 000000000000..77c347e4ab69
--- /dev/null
+++ b/documentation/project-docs/external-component-telemetry.md
@@ -0,0 +1,39 @@
+# Responsibly managing telemetry in external components
+
+Many components are _delivered_ with or by the .NET SDK but want to collect and
+manage telemetry. The SDK has telemetry collection mechanisms that may appear
+attractive, but present down-sides for these authors.
+
+This document clarifies some guidelines for authors of components that are consumed by the .NET SDK but want to own their own telemetry.
+
+## Sending telemetry
+
+### DO create and manage your own MSBuild Task for sending telemetry
+
+This allows you to have full control over the telemetry you send, where it is
+sent, and any PII masking requirements that are unique to your product.
+Attempting to use the .NET SDK's `AllowEmptyTelemetry` mechanism is not
+recommended for most internal partners and all external users. This is because
+`AllowEmptyTelemetry`
+ * is allow-listed for known events only, so your telemetry will not be sent
+ * sends to the SDK's telemetry storage, which your team may not have access to
+ * is dependent on the SDK version the user uses, which may lag behind the latest available
+
+### DO NOT use the MSBuild Engine telemetry APIs for logging telemetry
+
+These APIs, while convenient, require the MSBuild Engine Host (`dotnet build`,
+`msbuild.exe`, Visual Studio Project system) to have configured a telemetry
+collector. This is not guaranteed to be the case for all users of your component,
+and the collector configured may not send telemetry in the manner you expect, or
+to destinations you expect.
+
+## Managing telemetry
+
+### DO adhere to the SDK telemetry opt-out
+
+The SDK has an [opt out](https://learn.microsoft.com/dotnet/core/tools/telemetry#how-to-opt-out) mechanism for telemetry that all SDK-generated
+telemetry should adhere to. When running in the context of the SDK that means your
+telemetry should adhere to this signal as well. This opt-out mechanism is an
+environment variable, but the default value of this variable changes for
+Microsoft-authored and source-built SDKs. The SDK should provide a unified
+mechanism for tooling authors to rely on instead of probing for this value.
diff --git a/documentation/project-docs/repro-helix-failure.md b/documentation/project-docs/repro-helix-failure.md
index ffe972d79c17..e28d7d7736d8 100644
--- a/documentation/project-docs/repro-helix-failure.md
+++ b/documentation/project-docs/repro-helix-failure.md
@@ -39,7 +39,7 @@ cd C:\helix\payload-dir
REM HELIX_CORRELATION_PAYLOAD would be set to correlation payload by real helix machine
set HELIX_CORRELATION_PAYLOAD=C:\helix\localHelixTestLayout
-REM "true" is full framework test. Without "true", it is dotnet core tests. RunTestsOnHelix.cmd is the same script will setup the helix environnement.
+REM "true" is full framework test. Without "true", it is dotnet core tests. RunTestsOnHelix.cmd is the same script will setup the helix environment.
C:\helix\localHelixTestLayout\t\RunTestsOnHelix.cmd true
```
diff --git a/eng/DotNetBuild.props b/eng/DotNetBuild.props
index efb463b9ea62..042d7314e9b5 100644
--- a/eng/DotNetBuild.props
+++ b/eng/DotNetBuild.props
@@ -1,4 +1,4 @@
-
+
@@ -17,6 +17,7 @@
$(InnerBuildArgs) /p:IncludeAdditionalSharedFrameworks=false
$(InnerBuildArgs) /p:DISABLE_CROSSGEN=true
$(InnerBuildArgs) /p:PgoInstrument=true
+ $(InnerBuildArgs) /p:DotNetBuildPass=$(DotNetBuildPass)
diff --git a/eng/SourceBuildPrebuiltBaseline.xml b/eng/SourceBuildPrebuiltBaseline.xml
index bc36c6a79fcc..818cae010e57 100644
--- a/eng/SourceBuildPrebuiltBaseline.xml
+++ b/eng/SourceBuildPrebuiltBaseline.xml
@@ -1,4 +1,4 @@
-
+
@@ -47,7 +47,7 @@
-
+
diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index 2e8e06cc1916..3746f426f95c 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -1,56 +1,60 @@
-
+
https://github.com/dotnet/templating
- a23da1c15c737b5e121650cfa5a86805e74e34fc
+ bf40ec00f3761436f9e503691191ed722575f1bb
-
+
https://github.com/dotnet/templating
- a23da1c15c737b5e121650cfa5a86805e74e34fc
+ bf40ec00f3761436f9e503691191ed722575f1bb
-
+
https://github.com/dotnet/templating
- a23da1c15c737b5e121650cfa5a86805e74e34fc
+ bf40ec00f3761436f9e503691191ed722575f1bb
-
+
https://github.com/dotnet/runtime
- c4d7f7c6f2e2f34f07e64c6caa3bf9b2ce915cc1
+ 43295bb5378453d2ec4d9272cb44c6f50b4faa1f
-
+
https://github.com/dotnet/runtime
- c4d7f7c6f2e2f34f07e64c6caa3bf9b2ce915cc1
+ 43295bb5378453d2ec4d9272cb44c6f50b4faa1f
-
+
https://github.com/dotnet/runtime
- c4d7f7c6f2e2f34f07e64c6caa3bf9b2ce915cc1
+ 43295bb5378453d2ec4d9272cb44c6f50b4faa1f
-
+
https://github.com/dotnet/runtime
- c4d7f7c6f2e2f34f07e64c6caa3bf9b2ce915cc1
+ 43295bb5378453d2ec4d9272cb44c6f50b4faa1f
-
+
https://github.com/dotnet/runtime
- c4d7f7c6f2e2f34f07e64c6caa3bf9b2ce915cc1
+ 43295bb5378453d2ec4d9272cb44c6f50b4faa1f
-
+
https://github.com/dotnet/runtime
- c4d7f7c6f2e2f34f07e64c6caa3bf9b2ce915cc1
+ 43295bb5378453d2ec4d9272cb44c6f50b4faa1f
-
+
https://github.com/dotnet/runtime
- c4d7f7c6f2e2f34f07e64c6caa3bf9b2ce915cc1
+ 43295bb5378453d2ec4d9272cb44c6f50b4faa1f
-
+
https://github.com/dotnet/runtime
- c4d7f7c6f2e2f34f07e64c6caa3bf9b2ce915cc1
+ 43295bb5378453d2ec4d9272cb44c6f50b4faa1f
+
+
+ https://github.com/dotnet/runtime
+ 43295bb5378453d2ec4d9272cb44c6f50b4faa1f
-
+
https://github.com/dotnet/runtime
- c4d7f7c6f2e2f34f07e64c6caa3bf9b2ce915cc1
+ 43295bb5378453d2ec4d9272cb44c6f50b4faa1f
@@ -59,28 +63,28 @@
https://github.com/dotnet/core-setup
7d57652f33493fa022125b7f63aad0d70c52d810
-
+
https://github.com/dotnet/emsdk
- 08499c128ade77a490b735a268f6539f6c7ea0ff
+ 4ea46baeaf74d5a99cb93593362b6d8263b10550
-
+
https://github.com/dotnet/emsdk
- 08499c128ade77a490b735a268f6539f6c7ea0ff
+ 4ea46baeaf74d5a99cb93593362b6d8263b10550
-
+
https://github.com/dotnet/msbuild
- 23587699646ec96072cf58a124bfa377b74435d1
+ c4d51a11b84b4aabd9e5da1e3099f2c7c85024fe
-
+
https://github.com/dotnet/msbuild
- 23587699646ec96072cf58a124bfa377b74435d1
+ c4d51a11b84b4aabd9e5da1e3099f2c7c85024fe
-
+
https://github.com/dotnet/msbuild
- 23587699646ec96072cf58a124bfa377b74435d1
+ c4d51a11b84b4aabd9e5da1e3099f2c7c85024fe
@@ -93,49 +97,53 @@
c3eb162ec7bcf7449ca54b2218ab0d0c4d67c1d0
-
+
https://github.com/dotnet/roslyn
- ca56c416058170063c5d363b1aff2feaf3b4237a
+ 3fd39c8f6c8db918e3184050599c2046997160f1
-
+
https://github.com/dotnet/roslyn
- ca56c416058170063c5d363b1aff2feaf3b4237a
+ 3fd39c8f6c8db918e3184050599c2046997160f1
-
+
https://github.com/dotnet/roslyn
- ca56c416058170063c5d363b1aff2feaf3b4237a
+ 3fd39c8f6c8db918e3184050599c2046997160f1
-
+
https://github.com/dotnet/roslyn
- ca56c416058170063c5d363b1aff2feaf3b4237a
+ 3fd39c8f6c8db918e3184050599c2046997160f1
-
+
https://github.com/dotnet/roslyn
- ca56c416058170063c5d363b1aff2feaf3b4237a
+ 3fd39c8f6c8db918e3184050599c2046997160f1
-
+
https://github.com/dotnet/roslyn
- ca56c416058170063c5d363b1aff2feaf3b4237a
+ 3fd39c8f6c8db918e3184050599c2046997160f1
-
+
https://github.com/dotnet/roslyn
- ca56c416058170063c5d363b1aff2feaf3b4237a
+ 3fd39c8f6c8db918e3184050599c2046997160f1
-
+
https://github.com/dotnet/roslyn
- ca56c416058170063c5d363b1aff2feaf3b4237a
+ 3fd39c8f6c8db918e3184050599c2046997160f1
-
+
https://github.com/dotnet/roslyn
- ca56c416058170063c5d363b1aff2feaf3b4237a
+ 3fd39c8f6c8db918e3184050599c2046997160f1
-
+
+
https://github.com/dotnet/aspnetcore
280c613963a1768b810d09f32c998fe4490855e9
-
+
+
https://github.com/dotnet/aspnetcore
280c613963a1768b810d09f32c998fe4490855e9
@@ -226,134 +234,136 @@
bc9161306b23641b0364b8f93d546da4d48da1eb
-
+
https://github.com/dotnet/runtime
- c4d7f7c6f2e2f34f07e64c6caa3bf9b2ce915cc1
+ 43295bb5378453d2ec4d9272cb44c6f50b4faa1f
-
+
https://github.com/dotnet/runtime
- c4d7f7c6f2e2f34f07e64c6caa3bf9b2ce915cc1
+ 43295bb5378453d2ec4d9272cb44c6f50b4faa1f
-
+
https://github.com/dotnet/runtime
- c4d7f7c6f2e2f34f07e64c6caa3bf9b2ce915cc1
+ 43295bb5378453d2ec4d9272cb44c6f50b4faa1f
-
+
https://github.com/dotnet/runtime
- c4d7f7c6f2e2f34f07e64c6caa3bf9b2ce915cc1
+ 43295bb5378453d2ec4d9272cb44c6f50b4faa1f
-
+
https://github.com/dotnet/runtime
- c4d7f7c6f2e2f34f07e64c6caa3bf9b2ce915cc1
+ 43295bb5378453d2ec4d9272cb44c6f50b4faa1f
-
+
+
https://github.com/dotnet/runtime
c4d7f7c6f2e2f34f07e64c6caa3bf9b2ce915cc1
-
+
https://github.com/dotnet/windowsdesktop
- acc13b1b4775aeea7e6fe083683052d697812e11
+ 19372fe078344546594740b5cf5f0b7860587ee8
-
+
https://github.com/dotnet/windowsdesktop
- acc13b1b4775aeea7e6fe083683052d697812e11
+ 19372fe078344546594740b5cf5f0b7860587ee8
-
+
https://github.com/dotnet/windowsdesktop
- acc13b1b4775aeea7e6fe083683052d697812e11
+ 19372fe078344546594740b5cf5f0b7860587ee8
-
+
https://github.com/dotnet/windowsdesktop
- acc13b1b4775aeea7e6fe083683052d697812e11
+ 19372fe078344546594740b5cf5f0b7860587ee8
-
+
https://github.com/dotnet/wpf
- 32227d2fa67c462e95005b288057aafa66391a49
+ ab6c13e933676fd6eecc223246d3a008fc0a6cb8
-
+
https://github.com/dotnet/aspnetcore
- 280c613963a1768b810d09f32c998fe4490855e9
+ 5302eff796af4412b7cc60cc81169d16f835172e
-
+
https://github.com/dotnet/aspnetcore
- 280c613963a1768b810d09f32c998fe4490855e9
+ 5302eff796af4412b7cc60cc81169d16f835172e
-
+
https://github.com/dotnet/aspnetcore
- 280c613963a1768b810d09f32c998fe4490855e9
+ 5302eff796af4412b7cc60cc81169d16f835172e
-
+
https://github.com/dotnet/aspnetcore
- 280c613963a1768b810d09f32c998fe4490855e9
+ 5302eff796af4412b7cc60cc81169d16f835172e
-
+
https://github.com/dotnet/aspnetcore
- 280c613963a1768b810d09f32c998fe4490855e9
+ 5302eff796af4412b7cc60cc81169d16f835172e
-
+
https://github.com/dotnet/aspnetcore
- 280c613963a1768b810d09f32c998fe4490855e9
+ 5302eff796af4412b7cc60cc81169d16f835172e
-
+
https://github.com/dotnet/aspnetcore
- 280c613963a1768b810d09f32c998fe4490855e9
+ 5302eff796af4412b7cc60cc81169d16f835172e
-
+
https://github.com/dotnet/aspnetcore
- 280c613963a1768b810d09f32c998fe4490855e9
+ 5302eff796af4412b7cc60cc81169d16f835172e
-
+
https://github.com/dotnet/aspnetcore
- 280c613963a1768b810d09f32c998fe4490855e9
+ 5302eff796af4412b7cc60cc81169d16f835172e
-
+
https://github.com/dotnet/aspnetcore
- 280c613963a1768b810d09f32c998fe4490855e9
+ 5302eff796af4412b7cc60cc81169d16f835172e
-
+
https://github.com/dotnet/aspnetcore
- 280c613963a1768b810d09f32c998fe4490855e9
+ 5302eff796af4412b7cc60cc81169d16f835172e
-
+
https://github.com/dotnet/aspnetcore
- 280c613963a1768b810d09f32c998fe4490855e9
+ 5302eff796af4412b7cc60cc81169d16f835172e
-
+
https://github.com/dotnet/razor
- 06041770eb94ecdafedbac53dcf95131f0597f8c
+ 3094e2df9783ab0c966fafe5f51f148030686444
-
+
https://github.com/dotnet/razor
- 06041770eb94ecdafedbac53dcf95131f0597f8c
+ 3094e2df9783ab0c966fafe5f51f148030686444
-
+
https://github.com/dotnet/razor
- 06041770eb94ecdafedbac53dcf95131f0597f8c
+ 3094e2df9783ab0c966fafe5f51f148030686444
-
+
https://github.com/dotnet/razor
- 06041770eb94ecdafedbac53dcf95131f0597f8c
+ 3094e2df9783ab0c966fafe5f51f148030686444
-
+
https://github.com/dotnet/aspnetcore
- 280c613963a1768b810d09f32c998fe4490855e9
+ 5302eff796af4412b7cc60cc81169d16f835172e
-
+
https://github.com/dotnet/aspnetcore
- 280c613963a1768b810d09f32c998fe4490855e9
+ 5302eff796af4412b7cc60cc81169d16f835172e
-
+
https://github.com/dotnet/aspnetcore
- 280c613963a1768b810d09f32c998fe4490855e9
+ 5302eff796af4412b7cc60cc81169d16f835172e
-
+
https://github.com/dotnet/aspnetcore
- 280c613963a1768b810d09f32c998fe4490855e9
+ 5302eff796af4412b7cc60cc81169d16f835172e
https://github.com/dotnet/test-templates
@@ -375,24 +385,24 @@
https://github.com/dotnet/test-templates
49c9ad01f057b3c6352bbec12b117acc2224493c
-
+
https://github.com/dotnet/test-templates
- d2676cfc536c42991b9e391c30dd0f49c4144d65
+ 910c7f7096eab524c87a8954a28d28ff2e0fd7ac
-
+
https://github.com/dotnet/test-templates
- d2676cfc536c42991b9e391c30dd0f49c4144d65
+ 910c7f7096eab524c87a8954a28d28ff2e0fd7ac
-
+
https://github.com/dotnet/winforms
- 4da5a50c6a357add50c027e9e3a3348d557cec20
+ f73363f4cb56a3649c8039bd47c39de4f4db810f
-
+
https://github.com/dotnet/wpf
- 32227d2fa67c462e95005b288057aafa66391a49
+ ab6c13e933676fd6eecc223246d3a008fc0a6cb8
https://github.com/dotnet/xdt
@@ -404,18 +414,18 @@
4ddd8113a29852380b7b929117bfe67f401ac320
-
+
https://github.com/dotnet/roslyn-analyzers
- 3d61c57c73c3dd5f1f407ef9cd3414d94bf0eaf2
+ 8c173ced8bb1545be6eb70a1a8a5dcff0a557457
-
+
https://github.com/dotnet/roslyn-analyzers
- 3d61c57c73c3dd5f1f407ef9cd3414d94bf0eaf2
+ 8c173ced8bb1545be6eb70a1a8a5dcff0a557457
-
+
https://github.com/dotnet/roslyn-analyzers
- 3d61c57c73c3dd5f1f407ef9cd3414d94bf0eaf2
+ 8c173ced8bb1545be6eb70a1a8a5dcff0a557457
@@ -441,55 +451,55 @@
-
+
https://github.com/dotnet/source-build-externals
- b11ed370b79aa475535a5803856b7c7d0977235e
+ 61f719aea181a75790c5a3e954287ee938387656
-
+
https://github.com/dotnet/source-build-reference-packages
- c43ee853e96528e2f2eb0f6d8c151ddc07b6a844
+ 76c417253f5b3890997a3ef4b0613c2eab73d156
-
+
https://github.com/dotnet/deployment-tools
- 7871ee378dce87b64d930d4f33dca9c888f4034d
+ 57d7baec5f331a145174d0e8f00d7bbfdf2b77d4
-
+
https://github.com/dotnet/sourcelink
- c490a5fbdc76f8f6870f0a6f6efb74a84e957a8e
+ 3f8465b450eef9f92ad9f8c6917195ab8c91fbc2
-
+
https://github.com/dotnet/sourcelink
- c490a5fbdc76f8f6870f0a6f6efb74a84e957a8e
+ 3f8465b450eef9f92ad9f8c6917195ab8c91fbc2
-
+
https://github.com/dotnet/sourcelink
- c490a5fbdc76f8f6870f0a6f6efb74a84e957a8e
+ 3f8465b450eef9f92ad9f8c6917195ab8c91fbc2
-
+
https://github.com/dotnet/sourcelink
- c490a5fbdc76f8f6870f0a6f6efb74a84e957a8e
+ 3f8465b450eef9f92ad9f8c6917195ab8c91fbc2
-
+
https://github.com/dotnet/sourcelink
- c490a5fbdc76f8f6870f0a6f6efb74a84e957a8e
+ 3f8465b450eef9f92ad9f8c6917195ab8c91fbc2
-
+
https://github.com/dotnet/sourcelink
- c490a5fbdc76f8f6870f0a6f6efb74a84e957a8e
+ 3f8465b450eef9f92ad9f8c6917195ab8c91fbc2
-
+
https://github.com/dotnet/sourcelink
- c490a5fbdc76f8f6870f0a6f6efb74a84e957a8e
+ 3f8465b450eef9f92ad9f8c6917195ab8c91fbc2
-
+
https://github.com/dotnet/deployment-tools
- 7871ee378dce87b64d930d4f33dca9c888f4034d
+ 57d7baec5f331a145174d0e8f00d7bbfdf2b77d4
@@ -499,123 +509,127 @@
-
+
https://github.com/dotnet/runtime
- c4d7f7c6f2e2f34f07e64c6caa3bf9b2ce915cc1
+ 43295bb5378453d2ec4d9272cb44c6f50b4faa1f
-
+
https://github.com/dotnet/runtime
- c4d7f7c6f2e2f34f07e64c6caa3bf9b2ce915cc1
+ 43295bb5378453d2ec4d9272cb44c6f50b4faa1f
-
+
https://github.com/dotnet/runtime
- c4d7f7c6f2e2f34f07e64c6caa3bf9b2ce915cc1
+ 43295bb5378453d2ec4d9272cb44c6f50b4faa1f
-
+
https://github.com/dotnet/runtime
- c4d7f7c6f2e2f34f07e64c6caa3bf9b2ce915cc1
+ 43295bb5378453d2ec4d9272cb44c6f50b4faa1f
-
+
https://github.com/dotnet/runtime
- c4d7f7c6f2e2f34f07e64c6caa3bf9b2ce915cc1
+ 43295bb5378453d2ec4d9272cb44c6f50b4faa1f
-
+
https://github.com/dotnet/runtime
- c4d7f7c6f2e2f34f07e64c6caa3bf9b2ce915cc1
+ 43295bb5378453d2ec4d9272cb44c6f50b4faa1f
-
+
https://github.com/dotnet/runtime
- c4d7f7c6f2e2f34f07e64c6caa3bf9b2ce915cc1
+ 43295bb5378453d2ec4d9272cb44c6f50b4faa1f
-
+
https://github.com/dotnet/runtime
- c4d7f7c6f2e2f34f07e64c6caa3bf9b2ce915cc1
+ 43295bb5378453d2ec4d9272cb44c6f50b4faa1f
-
+
https://github.com/dotnet/aspnetcore
- 280c613963a1768b810d09f32c998fe4490855e9
+ 5302eff796af4412b7cc60cc81169d16f835172e
-
+
https://github.com/dotnet/runtime
- c4d7f7c6f2e2f34f07e64c6caa3bf9b2ce915cc1
+ 43295bb5378453d2ec4d9272cb44c6f50b4faa1f
-
+
https://github.com/dotnet/runtime
- c4d7f7c6f2e2f34f07e64c6caa3bf9b2ce915cc1
+ 43295bb5378453d2ec4d9272cb44c6f50b4faa1f
-
+
https://github.com/dotnet/runtime
- c4d7f7c6f2e2f34f07e64c6caa3bf9b2ce915cc1
+ 43295bb5378453d2ec4d9272cb44c6f50b4faa1f
-
+
https://github.com/dotnet/runtime
- c4d7f7c6f2e2f34f07e64c6caa3bf9b2ce915cc1
+ 43295bb5378453d2ec4d9272cb44c6f50b4faa1f
-
+
https://github.com/dotnet/runtime
- c4d7f7c6f2e2f34f07e64c6caa3bf9b2ce915cc1
+ 43295bb5378453d2ec4d9272cb44c6f50b4faa1f
-
+
https://github.com/dotnet/runtime
- c4d7f7c6f2e2f34f07e64c6caa3bf9b2ce915cc1
+ 43295bb5378453d2ec4d9272cb44c6f50b4faa1f
-
+
https://github.com/dotnet/runtime
- c4d7f7c6f2e2f34f07e64c6caa3bf9b2ce915cc1
+ 43295bb5378453d2ec4d9272cb44c6f50b4faa1f
-
+
https://github.com/dotnet/runtime
- c4d7f7c6f2e2f34f07e64c6caa3bf9b2ce915cc1
+ 43295bb5378453d2ec4d9272cb44c6f50b4faa1f
-
+
https://github.com/dotnet/runtime
- c4d7f7c6f2e2f34f07e64c6caa3bf9b2ce915cc1
+ 43295bb5378453d2ec4d9272cb44c6f50b4faa1f
-
+
https://github.com/dotnet/runtime
c4d7f7c6f2e2f34f07e64c6caa3bf9b2ce915cc1
-
+
+
https://github.com/dotnet/runtime
c4d7f7c6f2e2f34f07e64c6caa3bf9b2ce915cc1
-
+
https://github.com/dotnet/arcade
- 05c72bb3c9b38138276a8029017f2ef905dcc7fa
+ 964e434191bd3ca5675743d08ff742ec0f1e79a9
-
+
https://github.com/dotnet/arcade
- 05c72bb3c9b38138276a8029017f2ef905dcc7fa
+ 964e434191bd3ca5675743d08ff742ec0f1e79a9
-
+
https://github.com/dotnet/arcade
- 05c72bb3c9b38138276a8029017f2ef905dcc7fa
+ 964e434191bd3ca5675743d08ff742ec0f1e79a9
-
+
https://github.com/dotnet/arcade
- 05c72bb3c9b38138276a8029017f2ef905dcc7fa
+ 964e434191bd3ca5675743d08ff742ec0f1e79a9
-
+
https://github.com/dotnet/arcade
- 05c72bb3c9b38138276a8029017f2ef905dcc7fa
+ 964e434191bd3ca5675743d08ff742ec0f1e79a9
-
+
https://github.com/dotnet/arcade
- 05c72bb3c9b38138276a8029017f2ef905dcc7fa
+ 964e434191bd3ca5675743d08ff742ec0f1e79a9
-
+
https://github.com/dotnet/arcade
- 05c72bb3c9b38138276a8029017f2ef905dcc7fa
+ 964e434191bd3ca5675743d08ff742ec0f1e79a9
-
+
+
https://github.com/dotnet/runtime
c4d7f7c6f2e2f34f07e64c6caa3bf9b2ce915cc1
@@ -627,14 +641,14 @@
https://github.com/dotnet/arcade-services
47e3672c762970073e4282bd563233da86bcca3e
-
+
https://github.com/dotnet/scenario-tests
- 985485ca86e0c04ab39d8f97ed2db4d7c50a46fa
+ 9ab92c12b6bf992abc84d52f5b42d86ca708255c
-
+
https://github.com/dotnet/scenario-tests
- 985485ca86e0c04ab39d8f97ed2db4d7c50a46fa
+ 9ab92c12b6bf992abc84d52f5b42d86ca708255c
-
+
https://github.com/dotnet/aspire
- 137e8dcae0a7b22c05f48c4e7a5d36fe3f00a8d7
+ a1f7880ae14703e747bf79d1e2e947bffea6a604
-
+
https://github.com/dotnet/aspire
- 137e8dcae0a7b22c05f48c4e7a5d36fe3f00a8d7
+ a1f7880ae14703e747bf79d1e2e947bffea6a604
diff --git a/eng/Versions.props b/eng/Versions.props
index 6d78b38d12e9..6955ed00c6d4 100644
--- a/eng/Versions.props
+++ b/eng/Versions.props
@@ -3,9 +3,9 @@
$(MSBuildAllProjects);$(MSBuildThisFileFullPath)
- 9
+ 10
0
- 2
+ 1
00
- preview
+ alpha
rtm
servicing
- 0
+ 1
true
6.0.1
+ true
30
@@ -73,7 +74,7 @@
4.0.5
2.0.0-beta4.24324.3
0.4.0-alpha.24324.3
- 2.0.0-preview.1.24406.1
+ 2.0.0-preview.1.24427.4
2.2.0-beta.24327.2
1.1.2-beta1.22216.1
10.3.0
@@ -84,6 +85,11 @@
1.8.1
+
+ 9.0.100-rc.2.24427.15
+ 9.0.0-rc.2.24427.3
+ 9.0.0-rc.2.24427.4
+
0.2.0
@@ -93,65 +99,66 @@
- 9.0.0-rc.1.24451.1
+ 10.0.0-alpha.1.24512.4
- 1.1.0-rc.24069.1
- 1.1.0-rc.24202.1
- 1.1.0-rc.24510.3
+ 1.1.0-rtm.24514.4
- 9.0.0-rc.1.24431.7
- 9.0.0-rc.1.24431.7
- 9.0.0-rc.1.24431.7
- 9.0.0-rc.1.24431.7
- 9.0.0-rc.1.24431.7
- 9.0.0-rc.1.24431.7
- 9.0.0-rc.1.24431.7
- 9.0.0-rc.1.24431.7
- 9.0.0-rc.1.24431.7
- 9.0.0-rc.1.24431.7
- 9.0.0-rc.1.24431.7
+ 10.0.0-alpha.1.24507.22
+ 10.0.0-alpha.1.24507.22
+ 10.0.0-alpha.1.24507.22
+ 10.0.0-alpha.1.24507.22
+ 10.0.0-alpha.1.24507.22
+ 10.0.0-alpha.1.24507.22
+ 10.0.0-alpha.1.24507.22
+ 10.0.0-alpha.1.24507.22
+ 10.0.0-alpha.1.24507.22
+ 10.0.0-alpha.1.24507.22
+ 10.0.0-alpha.1.24507.22
8.0.0-rc.1.23414.4
- 9.0.0-rc.1.24431.7
- 9.0.0-rc.1.24431.7
- 9.0.0-rc.1.24431.7
- 9.0.0-rc.1.24431.7
- 9.0.0-rc.1.24431.7
- 9.0.0-rc.1.24431.7
+ 10.0.0-alpha.1.24507.22
+ 10.0.0-alpha.1.24507.22
+ 10.0.0-alpha.1.24507.22
+ 10.0.0-alpha.1.24507.22
+ 10.0.0-alpha.1.24507.22
+ 10.0.0-alpha.1.24507.22
2.1.0
- 9.0.0-rc.1.24431.7
- 8.0.0
- 9.0.0-rc.1.24431.7
- 9.0.0-rc.1.24431.7
- 9.0.0-rc.1.24431.7
- 9.0.0-rc.1.24431.7
- 9.0.0-rc.1.24431.7
- 9.0.0-rc.1.24431.7
+ 10.0.0-alpha.1.24507.22
+ 10.0.0-alpha.1.24507.22
+ 10.0.0-alpha.1.24507.22
+ 10.0.0-alpha.1.24507.22
+ 10.0.0-alpha.1.24507.22
+ 10.0.0-alpha.1.24507.22
+ 10.0.0-alpha.1.24507.22
9.0.0-rc.1.24431.7
- 8.0.0
9.0.0-rc.1.24431.7
- 9.0.0-rc.1.24431.7
- 9.0.0-rc.1.24431.7
- 9.0.0-rc.1.24431.7
+ 10.0.0-alpha.1.24507.22
+ 10.0.0-alpha.1.24507.22
+ 10.0.0-alpha.1.24507.22
9.0.0-rc.1.24431.7
- 9.0.0-rc.1.24431.7
- 9.0.0-rc.1.24431.7
-
- 8.0.4
+ 10.0.0-alpha.1.24507.22
+ 10.0.0-alpha.1.24507.22
9.0.0-rc.1.24431.7
- 9.0.0-rc.1.24431.7
+ 10.0.0-alpha.1.24507.22
+ 10.0.0-alpha.1.24507.22
+
+ 8.0.0
+ 8.0.0
+ 8.0.0
+ 8.0.0
+ 8.0.4
+ 8.0.0
- 9.0.0-rc.1.24452.1
- 9.0.0-rc.1.24452.1
- 9.0.0-rc.1.24452.1
- 9.0.0-rc.1.24452.1
+ 10.0.0-alpha.1.24515.4
+ 10.0.0-alpha.1.24515.4
+ 10.0.0-alpha.1.24515.4
@@ -176,8 +183,8 @@
- 9.0.0-preview.24508.2
- 3.11.0-beta1.24508.2
+ 10.0.0-preview.24508.1
+ 3.12.0-beta1.24508.1
@@ -194,19 +201,19 @@
then use that in Directory.Packages.props.
At usage sites, either we use MicrosoftBuildMinimumVersion, or MicrosoftBuildVersion in source-only modes. -->
- 17.13.0-preview-24514-17
- 17.13.0-preview-24514-17
+ 17.13.0-preview-24504-04
+ 17.13.0-preview-24504-04
$([System.IO.File]::ReadAllText('$(RepoRoot)src\Layout\redist\minimumMSBuildVersion').Trim())
- 9.0.100-rc.2.24466.6
+ 10.0.100-alpha.2.24459.2
$(MicrosoftTemplateEngineAbstractionsPackageVersion)
$(MicrosoftTemplateEngineAbstractionsPackageVersion)
$(MicrosoftTemplateEngineAbstractionsPackageVersion)
$(MicrosoftTemplateEngineAbstractionsPackageVersion)
- 9.0.100-rc.2.24466.6
+ 10.0.100-alpha.2.24459.2
$(MicrosoftTemplateEngineMocksPackageVersion)
$(MicrosoftTemplateEngineAbstractionsPackageVersion)
$(MicrosoftTemplateEngineMocksPackageVersion)
@@ -217,41 +224,41 @@
- 4.13.0-1.24511.9
- 4.13.0-1.24511.9
- 4.13.0-1.24511.9
- 4.13.0-1.24511.9
- 4.13.0-1.24511.9
- 4.13.0-1.24511.9
- 4.13.0-1.24511.9
- 4.13.0-1.24511.9
+ 4.12.0-3.24510.2
+ 4.12.0-3.24510.2
+ 4.12.0-3.24510.2
+ 4.12.0-3.24510.2
+ 4.12.0-3.24510.2
+ 4.12.0-3.24510.2
+ 4.12.0-3.24510.2
+ 4.12.0-3.24510.2
- 9.0.0-rc.1.24452.1
+ 10.0.0-alpha.2.24515.30
9.0.0-rc.1.24452.1
- 9.0.0-rc.1.24452.1
- 9.0.0-rc.1.24452.1
- 9.0.0-rc.1.24452.1
- 9.0.0-rc.1.24452.1
+ 10.0.0-alpha.2.24515.30
+ 10.0.0-alpha.2.24515.30
+ 10.0.0-alpha.2.24515.30
+ 10.0.0-alpha.2.24515.30
9.0.0-rc.1.24452.1
- 9.0.0-rc.1.24452.1
- 9.0.0-rc.1.24452.1
- 9.0.0-rc.1.24452.1
- 9.0.0-rc.1.24452.1
- 9.0.0-rc.1.24452.1
- 9.0.0-rc.1.24452.1
+ 10.0.0-alpha.2.24515.30
+ 10.0.0-alpha.2.24515.30
+ 10.0.0-alpha.2.24515.30
+ 10.0.0-alpha.2.24515.30
+ 10.0.0-alpha.2.24515.30
+ 10.0.0-alpha.2.24515.30
- 9.0.0-preview.24515.12
- 9.0.0-preview.24515.12
- 9.0.0-preview.24515.12
+ 9.0.0-preview.24515.11
+ 9.0.0-preview.24515.11
+ 9.0.0-preview.24515.11
- 9.0.0-rc.1.24451.10
- 9.0.0-rc.1.24451.10
+ 10.0.0-alpha.1.24515.1
+ 10.0.0-alpha.1.24515.1
@@ -265,16 +272,20 @@
$(MicrosoftNETCoreAppRuntimePackageVersion)
+
+ $(MicrosoftAspNetCoreAppRuntimePackageVersion)
+ $(MicrosoftDotnetWinFormsProjectTemplatesPackageVersion)
+ $(MicrosoftDotNetWpfProjectTemplatesPackageVersion)
- $(MicrosoftAspNetCoreAppRuntimePackageVersion)
- $(MicrosoftDotnetWinFormsProjectTemplatesPackageVersion)
- $(MicrosoftDotNetWpfProjectTemplatesPackageVersion)
+ 9.0.0-rc.1.24452.1
+ $(MicrosoftWinFormsProjectTemplates90PackageVersion)
+ $(MicrosoftWPFProjectTemplates90PackageVersion)
$(NUnit3DotNetNewTemplatePackageVersion)
2.2.0-beta.19072.10
2.0.0
- 9.0.0-preview.24507.1
+ 10.0.0-preview.24515.1
@@ -283,19 +294,19 @@
- 9.0.0-beta.24509.3
- 9.0.0-beta.24509.3
- 9.0.0-beta.24509.3
- 9.0.0-beta.24509.3
+ 10.0.0-beta.24514.3
+ 10.0.0-beta.24514.3
+ 10.0.0-beta.24514.3
+ 10.0.0-beta.24514.3
- 9.0.0-beta.24515.3
- 9.0.0-beta.24515.3
- 9.0.0-beta.24515.3
- 9.0.0-beta.24515.3
- 9.0.0-beta.24515.3
- 9.0.0-beta.24515.3
+ 9.0.0-beta.24512.1
+ 9.0.0-beta.24512.1
+ 9.0.0-beta.24512.1
+ 9.0.0-beta.24512.1
+ 9.0.0-beta.24512.1
+ 9.0.0-beta.24512.1
@@ -321,28 +332,23 @@
8.0.100
- 8.2.1
- 9.0.100-rc.2
- 9.0.0-rc.2.24503.2
- 35.0.0-rc.2.152
- 18.0.9600-net9-rc2
- 18.0.9600-net9-rc2
- 15.0.9600-net9-rc2
- 18.0.9600-net9-rc2
+ 8.2.2
+ 9.0.100-preview.6
+ 9.0.0-preview.6.24327.7
+ 34.99.0-preview.6.340
+ 17.2.9714-net9-p6
+ 17.2.9714-net9-p6
+ 14.2.9714-net9-p6
+ 17.2.9714-net9-p6
- 9.0.0-rc.1.24430.3
- $(MicrosoftNETWorkloadEmscriptenCurrentManifest90100TransportPackageVersion)
+ 10.0.0-alpha.1.24474.1
+ $(MicrosoftNETWorkloadEmscriptenCurrentManifest100100TransportPackageVersion)
- 9.0.100$([System.Text.RegularExpressions.Regex]::Match($(EmscriptenWorkloadManifestVersion), `-(?!rtm)[A-z]*[\.]*\d*`))
+ 10.0.100$([System.Text.RegularExpressions.Regex]::Match($(EmscriptenWorkloadManifestVersion), `-[A-z]*[\.]*\d*`))
$(MicrosoftNETCoreAppRefPackageVersion)
- 9.0.100$([System.Text.RegularExpressions.Regex]::Match($(MonoWorkloadManifestVersion), `-(?!rtm)[A-z]*[\.]*\d*`))
-
-
-
- 15.7.179
- 15.7.179
+ 10.0.100$([System.Text.RegularExpressions.Regex]::Match($(MonoWorkloadManifestVersion), `-[A-z]*[\.]*\d*`))
diff --git a/eng/common/build.sh b/eng/common/build.sh
index ac1ee8620cd2..483647daf182 100755
--- a/eng/common/build.sh
+++ b/eng/common/build.sh
@@ -231,7 +231,6 @@ function Build {
/p:Restore=$restore \
/p:Build=$build \
/p:DotNetBuildRepo=$product_build \
- /p:ArcadeBuildFromSource=$source_build \
/p:DotNetBuildSourceOnly=$source_build \
/p:Rebuild=$rebuild \
/p:Test=$test \
diff --git a/eng/common/core-templates/job/job.yml b/eng/common/core-templates/job/job.yml
index ba53ebfbd513..295c9a2317c4 100644
--- a/eng/common/core-templates/job/job.yml
+++ b/eng/common/core-templates/job/job.yml
@@ -19,6 +19,7 @@ parameters:
# publishing defaults
artifacts: ''
enableMicrobuild: false
+ enableMicrobuildForMacAndLinux: false
enablePublishBuildArtifacts: false
enablePublishBuildAssets: false
enablePublishTestResults: false
@@ -127,18 +128,11 @@ jobs:
- ${{ preStep }}
- ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
- - ${{ if eq(parameters.enableMicrobuild, 'true') }}:
- - task: MicroBuildSigningPlugin@4
- displayName: Install MicroBuild plugin
- inputs:
- signType: $(_SignType)
- zipSources: false
- feedSource: https://dnceng.pkgs.visualstudio.com/_packaging/MicroBuildToolset/nuget/v3/index.json
- env:
- TeamName: $(_TeamName)
- MicroBuildOutputFolderOverride: '$(Agent.TempDirectory)'
+ - template: /eng/common/core-templates/steps/install-microbuild.yml
+ parameters:
+ enableMicrobuild: ${{ parameters.enableMicrobuild }}
+ enableMicrobuildForMacAndLinux: ${{ parameters.enableMicrobuildForMacAndLinux }}
continueOnError: ${{ parameters.continueOnError }}
- condition: and(succeeded(), in(variables['_SignType'], 'real', 'test'), eq(variables['Agent.Os'], 'Windows_NT'))
- ${{ if and(eq(parameters.runAsPublic, 'false'), eq(variables['System.TeamProject'], 'internal')) }}:
- task: NuGetAuthenticate@1
@@ -167,14 +161,12 @@ jobs:
- ${{ each step in parameters.componentGovernanceSteps }}:
- ${{ step }}
- - ${{ if eq(parameters.enableMicrobuild, 'true') }}:
- - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
- - task: MicroBuildCleanup@1
- displayName: Execute Microbuild cleanup tasks
- condition: and(always(), in(variables['_SignType'], 'real', 'test'), eq(variables['Agent.Os'], 'Windows_NT'))
+ - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
+ - template: /eng/common/core-templates/steps/cleanup-microbuild.yml
+ parameters:
+ enableMicrobuild: ${{ parameters.enableMicrobuild }}
+ enableMicrobuildForMacAndLinux: ${{ parameters.enableMicrobuildForMacAndLinux }}
continueOnError: ${{ parameters.continueOnError }}
- env:
- TeamName: $(_TeamName)
# Publish test results
- ${{ if or(and(eq(parameters.enablePublishTestResults, 'true'), eq(parameters.testResultsFormat, '')), eq(parameters.testResultsFormat, 'xunit')) }}:
diff --git a/eng/common/core-templates/job/source-index-stage1.yml b/eng/common/core-templates/job/source-index-stage1.yml
index 205fb5b3a395..30530359a5d6 100644
--- a/eng/common/core-templates/job/source-index-stage1.yml
+++ b/eng/common/core-templates/job/source-index-stage1.yml
@@ -1,8 +1,5 @@
parameters:
runAsPublic: false
- sourceIndexUploadPackageVersion: 2.0.0-20240522.1
- sourceIndexProcessBinlogPackageVersion: 1.0.1-20240522.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: []
binlogPath: artifacts/log/Debug/Build.binlog
@@ -16,12 +13,6 @@ jobs:
dependsOn: ${{ parameters.dependsOn }}
condition: ${{ parameters.condition }}
variables:
- - name: SourceIndexUploadPackageVersion
- value: ${{ parameters.sourceIndexUploadPackageVersion }}
- - name: SourceIndexProcessBinlogPackageVersion
- value: ${{ parameters.sourceIndexProcessBinlogPackageVersion }}
- - name: SourceIndexPackageSource
- value: ${{ parameters.sourceIndexPackageSource }}
- name: BinlogPath
value: ${{ parameters.binlogPath }}
- template: /eng/common/core-templates/variables/pool-providers.yml
@@ -34,12 +25,10 @@ jobs:
pool:
${{ if eq(variables['System.TeamProject'], 'public') }}:
name: $(DncEngPublicBuildPool)
- image: 1es-windows-2022-open
- os: windows
+ image: windows.vs2022.amd64.open
${{ if eq(variables['System.TeamProject'], 'internal') }}:
name: $(DncEngInternalBuildPool)
- image: 1es-windows-2022
- os: windows
+ image: windows.vs2022.amd64
steps:
- ${{ if eq(parameters.is1ESPipeline, '') }}:
@@ -47,35 +36,9 @@ jobs:
- ${{ each preStep in parameters.preSteps }}:
- ${{ preStep }}
-
- - task: UseDotNet@2
- displayName: Use .NET 8 SDK
- inputs:
- packageType: sdk
- version: 8.0.x
- installationPath: $(Agent.TempDirectory)/dotnet
- workingDirectory: $(Agent.TempDirectory)
-
- - script: |
- $(Agent.TempDirectory)/dotnet/dotnet tool install BinLogToSln --version $(sourceIndexProcessBinlogPackageVersion) --add-source $(SourceIndexPackageSource) --tool-path $(Agent.TempDirectory)/.source-index/tools
- $(Agent.TempDirectory)/dotnet/dotnet tool install UploadIndexStage1 --version $(sourceIndexUploadPackageVersion) --add-source $(SourceIndexPackageSource) --tool-path $(Agent.TempDirectory)/.source-index/tools
- displayName: Download Tools
- # Set working directory to temp directory so 'dotnet' doesn't try to use global.json and use the repo's sdk.
- workingDirectory: $(Agent.TempDirectory)
-
- script: ${{ parameters.sourceIndexBuildCommand }}
displayName: Build Repository
- - script: $(Agent.TempDirectory)/.source-index/tools/BinLogToSln -i $(BinlogPath) -r $(Build.SourcesDirectory) -n $(Build.Repository.Name) -o .source-index/stage1output
- displayName: Process Binlog into indexable sln
-
- - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
- - task: AzureCLI@2
- displayName: Log in to Azure and upload stage1 artifacts to source index
- inputs:
- azureSubscription: 'SourceDotNet Stage1 Publish'
- addSpnToEnvironment: true
- scriptType: 'ps'
- scriptLocation: 'inlineScript'
- inlineScript: |
- $(Agent.TempDirectory)/.source-index/tools/UploadIndexStage1 -i .source-index/stage1output -n $(Build.Repository.Name) -s netsourceindexstage1 -b stage1
+ - template: /eng/common/core-templates/steps/source-index-stage1-publish.yml
+ parameters:
+ binLogPath: ${{ parameters.binLogPath }}
\ No newline at end of file
diff --git a/eng/common/core-templates/steps/cleanup-microbuild.yml b/eng/common/core-templates/steps/cleanup-microbuild.yml
new file mode 100644
index 000000000000..c0fdcd3379d7
--- /dev/null
+++ b/eng/common/core-templates/steps/cleanup-microbuild.yml
@@ -0,0 +1,28 @@
+parameters:
+ # Enable cleanup tasks for MicroBuild
+ enableMicrobuild: false
+ # Enable cleanup tasks for MicroBuild on Mac and Linux
+ # Will be ignored if 'enableMicrobuild' is false or 'Agent.Os' is 'Windows_NT'
+ enableMicrobuildForMacAndLinux: false
+ continueOnError: false
+
+steps:
+ - ${{ if eq(parameters.enableMicrobuild, 'true') }}:
+ - task: MicroBuildCleanup@1
+ displayName: Execute Microbuild cleanup tasks
+ condition: and(
+ always(),
+ or(
+ and(
+ eq(variables['Agent.Os'], 'Windows_NT'),
+ in(variables['_SignType'], 'real', 'test')
+ ),
+ and(
+ ${{ eq(parameters.enableMicrobuildForMacAndLinux, true) }},
+ ne(variables['Agent.Os'], 'Windows_NT'),
+ eq(variables['_SignType'], 'real')
+ )
+ ))
+ continueOnError: ${{ parameters.continueOnError }}
+ env:
+ TeamName: $(_TeamName)
diff --git a/eng/common/core-templates/steps/install-microbuild.yml b/eng/common/core-templates/steps/install-microbuild.yml
new file mode 100644
index 000000000000..9abe726e54bf
--- /dev/null
+++ b/eng/common/core-templates/steps/install-microbuild.yml
@@ -0,0 +1,43 @@
+parameters:
+ # Enable cleanup tasks for MicroBuild
+ enableMicrobuild: false
+ # Enable cleanup tasks for MicroBuild on Mac and Linux
+ # Will be ignored if 'enableMicrobuild' is false or 'Agent.Os' is 'Windows_NT'
+ enableMicrobuildForMacAndLinux: false
+ continueOnError: false
+
+steps:
+ - ${{ if eq(parameters.enableMicrobuild, 'true') }}:
+ # Remove Python downgrade with https://github.com/dotnet/arcade/issues/15151
+ - ${{ if and(eq(parameters.enableMicrobuildForMacAndLinux, 'true'), ne(variables['Agent.Os'], 'Windows_NT')) }}:
+ - task: UsePythonVersion@0
+ displayName: 'Use Python 3.11.x'
+ inputs:
+ versionSpec: '3.11.x'
+
+ - task: MicroBuildSigningPlugin@4
+ displayName: Install MicroBuild plugin
+ inputs:
+ signType: $(_SignType)
+ zipSources: false
+ feedSource: https://dnceng.pkgs.visualstudio.com/_packaging/MicroBuildToolset/nuget/v3/index.json
+ ${{ if and(eq(parameters.enableMicrobuildForMacAndLinux, 'true'), ne(variables['Agent.Os'], 'Windows_NT')) }}:
+ azureSubscription: 'MicroBuild Signing Task (DevDiv)'
+ env:
+ TeamName: $(_TeamName)
+ MicroBuildOutputFolderOverride: '$(Agent.TempDirectory)'
+ SYSTEM_ACCESSTOKEN: $(System.AccessToken)
+ continueOnError: ${{ parameters.continueOnError }}
+ condition: and(
+ succeeded(),
+ or(
+ and(
+ eq(variables['Agent.Os'], 'Windows_NT'),
+ in(variables['_SignType'], 'real', 'test')
+ ),
+ and(
+ ${{ eq(parameters.enableMicrobuildForMacAndLinux, true) }},
+ ne(variables['Agent.Os'], 'Windows_NT'),
+ eq(variables['_SignType'], 'real')
+ )
+ ))
diff --git a/eng/common/core-templates/steps/publish-logs.yml b/eng/common/core-templates/steps/publish-logs.yml
index 80788c523191..de24d0087c58 100644
--- a/eng/common/core-templates/steps/publish-logs.yml
+++ b/eng/common/core-templates/steps/publish-logs.yml
@@ -34,7 +34,9 @@ steps:
'$(akams-client-id)'
'$(microsoft-symbol-server-pat)'
'$(symweb-symbol-server-pat)'
+ '$(dnceng-symbol-server-pat)'
'$(dn-bot-all-orgs-build-rw-code-rw)'
+ '$(System.AccessToken)'
${{parameters.CustomSensitiveDataList}}
continueOnError: true
condition: always()
@@ -45,6 +47,7 @@ steps:
SourceFolder: '$(Build.SourcesDirectory)/PostBuildLogs'
Contents: '**'
TargetFolder: '$(Build.ArtifactStagingDirectory)/PostBuildLogs'
+ condition: always()
- template: /eng/common/core-templates/steps/publish-build-artifacts.yml
parameters:
diff --git a/eng/common/core-templates/steps/source-build.yml b/eng/common/core-templates/steps/source-build.yml
index 2915d29bb7f6..c9271c011585 100644
--- a/eng/common/core-templates/steps/source-build.yml
+++ b/eng/common/core-templates/steps/source-build.yml
@@ -86,7 +86,6 @@ steps:
$runtimeOsArgs \
$baseOsArgs \
/p:SourceBuildNonPortable=${{ parameters.platform.nonPortable }} \
- /p:ArcadeBuildFromSource=true \
/p:DotNetBuildSourceOnly=true \
/p:DotNetBuildRepo=true \
/p:AssetManifestFileName=$assetManifestFileName
diff --git a/eng/common/core-templates/steps/source-index-stage1-publish.yml b/eng/common/core-templates/steps/source-index-stage1-publish.yml
new file mode 100644
index 000000000000..473a22c4719d
--- /dev/null
+++ b/eng/common/core-templates/steps/source-index-stage1-publish.yml
@@ -0,0 +1,35 @@
+parameters:
+ sourceIndexUploadPackageVersion: 2.0.0-20240522.1
+ sourceIndexProcessBinlogPackageVersion: 1.0.1-20240522.1
+ sourceIndexPackageSource: https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json
+ binlogPath: artifacts/log/Debug/Build.binlog
+
+steps:
+- task: UseDotNet@2
+ displayName: "Source Index: Use .NET 8 SDK"
+ inputs:
+ packageType: sdk
+ version: 8.0.x
+ installationPath: $(Agent.TempDirectory)/dotnet
+ workingDirectory: $(Agent.TempDirectory)
+
+- script: |
+ $(Agent.TempDirectory)/dotnet/dotnet tool install BinLogToSln --version ${{parameters.sourceIndexProcessBinlogPackageVersion}} --add-source ${{parameters.SourceIndexPackageSource}} --tool-path $(Agent.TempDirectory)/.source-index/tools
+ $(Agent.TempDirectory)/dotnet/dotnet tool install UploadIndexStage1 --version ${{parameters.sourceIndexUploadPackageVersion}} --add-source ${{parameters.SourceIndexPackageSource}} --tool-path $(Agent.TempDirectory)/.source-index/tools
+ displayName: "Source Index: Download netsourceindex Tools"
+ # Set working directory to temp directory so 'dotnet' doesn't try to use global.json and use the repo's sdk.
+ workingDirectory: $(Agent.TempDirectory)
+
+- script: $(Agent.TempDirectory)/.source-index/tools/BinLogToSln -i ${{parameters.BinlogPath}} -r $(Build.SourcesDirectory) -n $(Build.Repository.Name) -o .source-index/stage1output
+ displayName: "Source Index: Process Binlog into indexable sln"
+
+- ${{ if and(ne(parameters.runAsPublic, 'true'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
+ - task: AzureCLI@2
+ displayName: "Source Index: Upload Source Index stage1 artifacts to Azure"
+ inputs:
+ azureSubscription: 'SourceDotNet Stage1 Publish'
+ addSpnToEnvironment: true
+ scriptType: 'ps'
+ scriptLocation: 'inlineScript'
+ inlineScript: |
+ $(Agent.TempDirectory)/.source-index/tools/UploadIndexStage1 -i .source-index/stage1output -n $(Build.Repository.Name) -s netsourceindexstage1 -b stage1
diff --git a/eng/common/cross/build-rootfs.sh b/eng/common/cross/build-rootfs.sh
index 4b5e8d7166bd..20ae8c28687b 100755
--- a/eng/common/cross/build-rootfs.sh
+++ b/eng/common/cross/build-rootfs.sh
@@ -66,6 +66,7 @@ __UbuntuPackages+=" libcurl4-openssl-dev"
__UbuntuPackages+=" libkrb5-dev"
__UbuntuPackages+=" libssl-dev"
__UbuntuPackages+=" zlib1g-dev"
+__UbuntuPackages+=" libbrotli-dev"
__AlpinePackages+=" curl-dev"
__AlpinePackages+=" krb5-dev"
@@ -91,18 +92,18 @@ __HaikuPackages="gcc_syslibs"
__HaikuPackages+=" gcc_syslibs_devel"
__HaikuPackages+=" gmp"
__HaikuPackages+=" gmp_devel"
-__HaikuPackages+=" icu66"
-__HaikuPackages+=" icu66_devel"
+__HaikuPackages+=" icu[0-9]+"
+__HaikuPackages+=" icu[0-9]*_devel"
__HaikuPackages+=" krb5"
__HaikuPackages+=" krb5_devel"
__HaikuPackages+=" libiconv"
__HaikuPackages+=" libiconv_devel"
-__HaikuPackages+=" llvm12_libunwind"
-__HaikuPackages+=" llvm12_libunwind_devel"
+__HaikuPackages+=" llvm[0-9]*_libunwind"
+__HaikuPackages+=" llvm[0-9]*_libunwind_devel"
__HaikuPackages+=" mpfr"
__HaikuPackages+=" mpfr_devel"
-__HaikuPackages+=" openssl"
-__HaikuPackages+=" openssl_devel"
+__HaikuPackages+=" openssl3"
+__HaikuPackages+=" openssl3_devel"
__HaikuPackages+=" zlib"
__HaikuPackages+=" zlib_devel"
@@ -496,7 +497,7 @@ if [[ "$__CodeName" == "alpine" ]]; then
arch="$(uname -m)"
ensureDownloadTool
-
+
if [[ "$__hasWget" == 1 ]]; then
wget -P "$__ApkToolsDir" "https://gitlab.alpinelinux.org/api/v4/projects/5/packages/generic/v$__ApkToolsVersion/$arch/apk.static"
else
@@ -681,7 +682,7 @@ elif [[ "$__CodeName" == "haiku" ]]; then
ensureDownloadTool
- echo "Downloading Haiku package tool"
+ echo "Downloading Haiku package tools"
git clone https://github.com/haiku/haiku-toolchains-ubuntu --depth 1 "$__RootfsDir/tmp/script"
if [[ "$__hasWget" == 1 ]]; then
wget -O "$__RootfsDir/tmp/download/hosttools.zip" "$("$__RootfsDir/tmp/script/fetch.sh" --hosttools)"
@@ -691,34 +692,42 @@ elif [[ "$__CodeName" == "haiku" ]]; then
unzip -o "$__RootfsDir/tmp/download/hosttools.zip" -d "$__RootfsDir/tmp/bin"
- DepotBaseUrl="https://depot.haiku-os.org/__api/v2/pkg/get-pkg"
- HpkgBaseUrl="https://eu.hpkg.haiku-os.org/haiku/master/$__HaikuArch/current"
+ HaikuBaseUrl="https://eu.hpkg.haiku-os.org/haiku/master/$__HaikuArch/current"
+ HaikuPortsBaseUrl="https://eu.hpkg.haiku-os.org/haikuports/master/$__HaikuArch/current"
+
+ echo "Downloading HaikuPorts package repository index..."
+ if [[ "$__hasWget" == 1 ]]; then
+ wget -P "$__RootfsDir/tmp/download" "$HaikuPortsBaseUrl/repo"
+ else
+ curl -SLO --create-dirs --output-dir "$__RootfsDir/tmp/download" "$HaikuPortsBaseUrl/repo"
+ fi
- # Download Haiku packages
echo "Downloading Haiku 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
+ hpkgFilename="$(LD_LIBRARY_PATH="$__RootfsDir/tmp/bin" "$__RootfsDir/tmp/bin/package_repo" list -f "$__RootfsDir/tmp/download/repo" |
+ grep -E "${package}-" | sort -V | tail -n 1 | xargs)"
+ if [ -z "$hpkgFilename" ]; then
+ >&2 echo "ERROR: package $package missing."
+ exit 1
+ fi
+ echo "Resolved filename: $hpkgFilename..."
+ hpkgDownloadUrl="$HaikuPortsBaseUrl/packages/$hpkgFilename"
if [[ "$__hasWget" == 1 ]]; then
- hpkgDownloadUrl="$(wget -qO- --post-data '{"name":"'"$package"'","repositorySourceCode":"haikuports_'$__HaikuArch'","versionType":"LATEST","naturalLanguageCode":"en"}' \
- --header 'Content-Type:application/json' "$DepotBaseUrl" | jq -r '.result.versions[].hpkgDownloadURL')"
wget -P "$__RootfsDir/tmp/download" "$hpkgDownloadUrl"
else
- hpkgDownloadUrl="$(curl -sSL -XPOST --data '{"name":"'"$package"'","repositorySourceCode":"haikuports_'$__HaikuArch'","versionType":"LATEST","naturalLanguageCode":"en"}' \
- --header 'Content-Type:application/json' "$DepotBaseUrl" | jq -r '.result.versions[].hpkgDownloadURL')"
curl -SLO --create-dirs --output-dir "$__RootfsDir/tmp/download" "$hpkgDownloadUrl"
fi
done
for package in haiku haiku_devel; do
echo "Downloading $package..."
if [[ "$__hasWget" == 1 ]]; then
- hpkgVersion="$(wget -qO- "$HpkgBaseUrl" | sed -n 's/^.*version: "\([^"]*\)".*$/\1/p')"
- wget -P "$__RootfsDir/tmp/download" "$HpkgBaseUrl/packages/$package-$hpkgVersion-1-$__HaikuArch.hpkg"
+ hpkgVersion="$(wget -qO- "$HaikuBaseUrl" | sed -n 's/^.*version: "\([^"]*\)".*$/\1/p')"
+ wget -P "$__RootfsDir/tmp/download" "$HaikuBaseUrl/packages/$package-$hpkgVersion-1-$__HaikuArch.hpkg"
else
- hpkgVersion="$(curl -sSL "$HpkgBaseUrl" | sed -n 's/^.*version: "\([^"]*\)".*$/\1/p')"
- curl -SLO --create-dirs --output-dir "$__RootfsDir/tmp/download" "$HpkgBaseUrl/packages/$package-$hpkgVersion-1-$__HaikuArch.hpkg"
+ hpkgVersion="$(curl -sSL "$HaikuBaseUrl" | sed -n 's/^.*version: "\([^"]*\)".*$/\1/p')"
+ curl -SLO --create-dirs --output-dir "$__RootfsDir/tmp/download" "$HaikuBaseUrl/packages/$package-$hpkgVersion-1-$__HaikuArch.hpkg"
fi
done
diff --git a/eng/common/template-guidance.md b/eng/common/template-guidance.md
index 5ef6c30ba924..98bbc1ded0ba 100644
--- a/eng/common/template-guidance.md
+++ b/eng/common/template-guidance.md
@@ -57,7 +57,7 @@ extends:
Note: Multiple outputs are ONLY applicable to 1ES PT publishing (only usable when referencing `templates-official`).
-# Development notes
+## Development notes
**Folder / file structure**
diff --git a/eng/common/templates-official/steps/source-index-stage1-publish.yml b/eng/common/templates-official/steps/source-index-stage1-publish.yml
new file mode 100644
index 000000000000..9b8b80942b5c
--- /dev/null
+++ b/eng/common/templates-official/steps/source-index-stage1-publish.yml
@@ -0,0 +1,7 @@
+steps:
+- template: /eng/common/core-templates/steps/source-index-stage1-publish.yml
+ parameters:
+ is1ESPipeline: true
+
+ ${{ each parameter in parameters }}:
+ ${{ parameter.key }}: ${{ parameter.value }}
diff --git a/eng/common/templates/steps/source-index-stage1-publish.yml b/eng/common/templates/steps/source-index-stage1-publish.yml
new file mode 100644
index 000000000000..182cec33a7bb
--- /dev/null
+++ b/eng/common/templates/steps/source-index-stage1-publish.yml
@@ -0,0 +1,7 @@
+steps:
+- template: /eng/common/core-templates/steps/source-index-stage1-publish.yml
+ parameters:
+ is1ESPipeline: false
+
+ ${{ each parameter in parameters }}:
+ ${{ parameter.key }}: ${{ parameter.value }}
diff --git a/eng/dogfood.ps1 b/eng/dogfood.ps1
index 04146d57d4bc..8cde5ba7b0c2 100644
--- a/eng/dogfood.ps1
+++ b/eng/dogfood.ps1
@@ -26,6 +26,8 @@ function Print-Usage() {
Write-Host "if it is set, will be used."
}
+function Global:prompt {"(dogfood) PS $PWD> "}
+
if ($help -or (($command -ne $null) -and ($command.Contains("/help") -or $command.Contains("/?")))) {
Print-Usage
exit 0
diff --git a/eng/dogfood.sh b/eng/dogfood.sh
index bb1932571f65..28c0ae634a15 100755
--- a/eng/dogfood.sh
+++ b/eng/dogfood.sh
@@ -25,3 +25,4 @@ export MicrosoftNETBuildExtensionsTargets="$artifacts_dir/bin/$configuration/Sdk
export PATH=$testDotnetRoot:$PATH
export DOTNET_ROOT=$testDotnetRoot
+export PS1="(dogfood) $PS1"
diff --git a/eng/pipelines/templates/jobs/vmr-build.yml b/eng/pipelines/templates/jobs/vmr-build.yml
index 58a38d4c2168..83bfa0a3754e 100644
--- a/eng/pipelines/templates/jobs/vmr-build.yml
+++ b/eng/pipelines/templates/jobs/vmr-build.yml
@@ -12,6 +12,10 @@ parameters:
- name: buildName
type: string
+- name: buildPass
+ type: string
+ default: ''
+
- name: container
type: string
default: ''
@@ -66,10 +70,10 @@ parameters:
type: boolean
default: false
-# Name of a previous job (from the same template as this) whose output will be used to build this job
+# Name of previous job(s) (from the same template as this) whose output will be used to build this job
# The SDK from its artifacts is copied to $(sourcesPath)/.dotnet
- name: reuseBuildArtifactsFrom
- type: string
+ type: object
default: ''
# Allow downloading artifacts from the internet during the build
@@ -116,7 +120,7 @@ jobs:
# Always attempt to run the bootstrap leg (e.g. even when stage 1 tests fail) in order to get a complete accessment of the build status.
# The build shortcuts when stage 1 build fails and doesn't produce the SDK.
condition: succeededOrFailed()
- dependsOn: ${{ parameters.reuseBuildArtifactsFrom }}_${{ parameters.architecture }}
+ dependsOn: ${{ parameters.reuseBuildArtifactsFrom }}
variables:
- ${{ if eq(variables['System.TeamProject'], 'internal') }}:
- group: AzureDevOps-Artifact-Feeds-Pats
@@ -146,6 +150,13 @@ jobs:
- name: sourcesPath
value: $(vmrPath)
+ - ${{ if ne(parameters.buildPass, '') }}:
+ - name: artifactsSuffix
+ value: '_buildpass${{ parameters.buildPass }}'
+ - ${{ else }}:
+ - name: artifactsSuffix
+ value: ''
+
templateContext:
outputs:
- output: pipelineArtifact
@@ -157,7 +168,7 @@ jobs:
- output: pipelineArtifact
path: $(Build.ArtifactStagingDirectory)/publishing
- artifact: $(Agent.JobName)_Artifacts
+ artifact: $(Agent.JobName)_Artifacts$(artifactsSuffix)
displayName: Publish Artifacts
sbomEnabled: true
@@ -194,20 +205,32 @@ jobs:
displayName: Export VMR sources
workingDirectory: $(Build.StagingDirectory)
- - ${{ if ne(parameters.reuseBuildArtifactsFrom, '') }}:
- - download: current
- artifact: ${{ parameters.reuseBuildArtifactsFrom }}_${{ parameters.architecture }}_Artifacts
- patterns: |
- **/Private.SourceBuilt.Artifacts.*.tar.gz
- **/dotnet-sdk-*.tar.gz
- displayName: Download Previous Build
+ - ${{ if ne(parameters.reuseBuildArtifactsFrom,'') }}:
+ - ${{ each reuseBuildArtifacts in parameters.reuseBuildArtifactsFrom }}:
+ - download: current
+ artifact: ${{ reuseBuildArtifacts }}_Artifacts
+ patterns: |
+ **/Private.SourceBuilt.Artifacts.*.tar.gz
+ **/dotnet-sdk-*.tar.gz
+ **/*.nupkg
+ displayName: Download Previous Build (${{ reuseBuildArtifacts }})
+
+ - ${{ if eq(parameters.buildSourceOnly, true) }}:
+ - task: CopyFiles@2
+ displayName: Copy Previous Build (${{ reuseBuildArtifacts }} - Source Build artifacts)
+ inputs:
+ SourceFolder: $(Pipeline.Workspace)/${{ reuseBuildArtifacts }}_Artifacts/assets/Release
+ Contents: '*.tar.gz'
+ TargetFolder: $(sourcesPath)/prereqs/packages/archive/
- - task: CopyFiles@2
- displayName: Copy Previous Build
- inputs:
- SourceFolder: $(Pipeline.Workspace)/${{ parameters.reuseBuildArtifactsFrom }}_${{ parameters.architecture }}_Artifacts/assets/Release
- Contents: '*.tar.gz'
- TargetFolder: $(sourcesPath)/prereqs/packages/archive/
+ - ${{ else }}:
+ - task: CopyFiles@2
+ displayName: Copy Previous Build (${{ reuseBuildArtifacts }} - NuGet Packages)
+ inputs:
+ SourceFolder: $(Pipeline.Workspace)/${{ reuseBuildArtifacts }}_Artifacts/packages
+ Contents: '**/*.nupkg'
+ OverWrite: false
+ TargetFolder: $(sourcesPath)/artifacts/packages/
- ${{ if eq(parameters.withPreviousSDK, 'true') }}:
- script: |
@@ -247,7 +270,9 @@ jobs:
versionSpec: 20.x
- script: |
- call build.cmd -ci -cleanWhileBuilding -prepareMachine %devArgument% /p:TargetOS=${{ parameters.targetOS }} /p:TargetArchitecture=${{ parameters.targetArchitecture }} ${{ parameters.extraProperties }}
+ set extraBuildProperties=
+ if not [${{ parameters.buildPass }}]==[] set extraBuildProperties=%extraBuildProperties% /p:DotNetBuildPass=${{ parameters.buildPass }}
+ call build.cmd -ci -cleanWhileBuilding -prepareMachine %devArgument% /p:TargetOS=${{ parameters.targetOS }} /p:TargetArchitecture=${{ parameters.targetArchitecture }} %extraBuildProperties% ${{ parameters.extraProperties }}
displayName: Build
workingDirectory: ${{ variables.sourcesPath }}
env:
@@ -280,7 +305,7 @@ jobs:
# downloading portable versions from the internet.
customPrepArgs="${customPrepArgs} --no-sdk --no-bootstrap"
prepSdk=false
- elif [[ -n '${{ parameters.reuseBuildArtifactsFrom }}' ]]; then
+ elif [[ '${{ length(parameters.reuseBuildArtifactsFrom) }}' -gt '0' ]]; then
customPrepArgs="${customPrepArgs} --no-sdk --no-artifacts"
prepSdk=false
fi
@@ -348,6 +373,10 @@ jobs:
extraBuildProperties="$extraBuildProperties /p:TargetArchitecture=${{ parameters.targetArchitecture }}"
fi
+ if [[ -n "${{ parameters.buildPass }}" ]]; then
+ extraBuildProperties="$extraBuildProperties /p:DotNetBuildPass=${{ parameters.buildPass }}"
+ fi
+
if [[ -n "${{ parameters.extraProperties }}" ]]; then
extraBuildProperties="$extraBuildProperties ${{ parameters.extraProperties }}"
fi
@@ -461,8 +490,6 @@ jobs:
cd "$(sourcesPath)"
CopyWithRelativeFolders "artifacts/log/" $targetFolder "*"
- CopyWithRelativeFolders "src/" $targetFolder "*.binlog"
- CopyWithRelativeFolders "src/" $targetFolder "*.log"
if (Test-Path "artifacts/scenario-tests/") {
CopyWithRelativeFolders "artifacts/scenario-tests/" $targetFolder "*.binlog"
@@ -488,7 +515,7 @@ jobs:
# Don't use CopyFiles@2 as it encounters permissions issues because it indexes all files in the source directory graph.
- script: |
- set -x
+ set -ex
targetFolder=$(Build.StagingDirectory)/BuildLogs/
mkdir -p ${targetFolder}
@@ -500,23 +527,25 @@ jobs:
fi
cd "$(sourcesPath)"
+
find artifacts/log/ -exec rsync -R {} -t ${targetFolder} \;
+
if [ -d "artifacts/scenario-tests/" ]; then
find artifacts/scenario-tests/ -type f -name "*.binlog" -exec rsync -R {} -t ${targetFolder} \;
echo "##vso[task.setvariable variable=hasScenarioTestResults]true"
fi
- find artifacts/TestResults/ -type f -name "*.binlog" -exec rsync -R {} -t ${targetFolder} \;
- find artifacts/TestResults/ -type f -name "*.diff" -exec rsync -R {} -t ${targetFolder} \;
- find artifacts/TestResults/ -type f -name "Updated*.txt" -exec rsync -R {} -t ${targetFolder} \;
- find artifacts/TestResults/ -type f -name "*.trx" -exec rsync -R {} -t ${targetFolder} \;
+
+ if [ -d "artifacts/TestResults/" ]; then
+ find artifacts/TestResults/ -type f -name "*.binlog" -exec rsync -R {} -t ${targetFolder} \;
+ find artifacts/TestResults/ -type f -name "*.diff" -exec rsync -R {} -t ${targetFolder} \;
+ find artifacts/TestResults/ -type f -name "Updated*.txt" -exec rsync -R {} -t ${targetFolder} \;
+ find artifacts/TestResults/ -type f -name "*.trx" -exec rsync -R {} -t ${targetFolder} \;
+ fi
if [[ "${{ parameters.buildSourceOnly }}" == "True" ]]; then
find artifacts/prebuilt-report/ -exec rsync -R {} -t ${targetFolder} \;
- find artifacts/log/binary-report/ -exec rsync -R {} -t ${targetFolder} \;
fi
- find src/ -type f -name "*.binlog" -exec rsync -R {} -t ${targetFolder} \;
- find src/ -type f -name "*.log" -exec rsync -R {} -t ${targetFolder} \;
# check if we have assets to publish
if [ -n "$(ls -A 'artifacts/assets/Release/')" ]; then
@@ -578,6 +607,6 @@ jobs:
- ${{ if or(ne(variables['System.TeamProject'], 'internal'), eq(variables['Build.Reason'], 'PullRequest')) }}:
- publish: $(Build.ArtifactStagingDirectory)/publishing
- artifact: $(Agent.JobName)_Artifacts
+ artifact: $(Agent.JobName)_Artifacts$(artifactsSuffix)
displayName: Publish Artifacts
continueOnError: true
diff --git a/eng/pipelines/templates/stages/vmr-build.yml b/eng/pipelines/templates/stages/vmr-build.yml
index 005e00d21145..08f36fe8faef 100644
--- a/eng/pipelines/templates/stages/vmr-build.yml
+++ b/eng/pipelines/templates/stages/vmr-build.yml
@@ -104,42 +104,45 @@ stages:
### Additional jobs for lite/full builds ###
- ${{ if in(parameters.scope, 'lite', 'full') }}:
- - template: ../jobs/vmr-build.yml
- parameters:
- # Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline
- buildName: ${{ format('{0}_Online_CurrentSourceBuiltSdk', variables.centOSStreamName) }}
- isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
- vmrBranch: ${{ variables.VmrBranch }}
- architecture: x64
- pool: ${{ parameters.pool_Linux }}
- container: ${{ variables.centOSStreamContainer }}
- buildFromArchive: false # 🚫
- buildSourceOnly: true # ✅
- enablePoison: false # 🚫
- excludeOmniSharpTests: true # ✅
- runOnline: true # ✅
- useMonoRuntime: false # 🚫
- withPreviousSDK: false # 🚫
- reuseBuildArtifactsFrom: ${{ format('{0}_Online_MsftSdk', variables.centOSStreamName) }}
-
- - template: ../jobs/vmr-build.yml
- parameters:
- # Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline
- buildName: ${{ format('{0}_Offline_PreviousSourceBuiltSdk', variables.alpinePreviousName) }}
- isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
- vmrBranch: ${{ variables.VmrBranch }}
- architecture: x64
- artifactsRid: ${{ variables.alpinePreviousX64Rid }}
- pool: ${{ parameters.pool_Linux }}
- container: ${{ variables.alpinePreviousContainer }}
- targetRid: ${{ variables.alpinePreviousX64Rid }}
- buildFromArchive: false # 🚫
- buildSourceOnly: true # ✅
- enablePoison: true # ✅
- excludeOmniSharpTests: true # ✅
- runOnline: false # 🚫
- useMonoRuntime: false # 🚫
- withPreviousSDK: true # ✅
+ # Disabled until net9.0 -> net10.0 transition is complete - see https://github.com/dotnet/source-build/issues/4605
+ # - template: ../jobs/vmr-build.yml
+ # parameters:
+ # # Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline
+ # buildName: ${{ format('{0}_Online_CurrentSourceBuiltSdk', variables.centOSStreamName) }}
+ # isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
+ # vmrBranch: ${{ variables.VmrBranch }}
+ # architecture: x64
+ # pool: ${{ parameters.pool_Linux }}
+ # container: ${{ variables.centOSStreamContainer }}
+ # buildFromArchive: false # 🚫
+ # buildSourceOnly: true # ✅
+ # enablePoison: false # 🚫
+ # excludeOmniSharpTests: true # ✅
+ # runOnline: true # ✅
+ # useMonoRuntime: false # 🚫
+ # withPreviousSDK: false # 🚫
+ # reuseBuildArtifactsFrom:
+ # - ${{ format('{0}_Online_MsftSdk_x64', variables.centOSStreamName) }}
+
+ # Disabled until net9.0 -> net10.0 transition is complete - see https://github.com/dotnet/source-build/issues/4605
+ # - template: ../jobs/vmr-build.yml
+ # parameters:
+ # # Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline
+ # buildName: ${{ format('{0}_Offline_PreviousSourceBuiltSdk', variables.alpinePreviousName) }}
+ # isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
+ # vmrBranch: ${{ variables.VmrBranch }}
+ # architecture: x64
+ # artifactsRid: ${{ variables.alpinePreviousX64Rid }}
+ # pool: ${{ parameters.pool_Linux }}
+ # container: ${{ variables.alpinePreviousContainer }}
+ # targetRid: ${{ variables.alpinePreviousX64Rid }}
+ # buildFromArchive: false # 🚫
+ # buildSourceOnly: true # ✅
+ # enablePoison: true # ✅
+ # excludeOmniSharpTests: true # ✅
+ # runOnline: false # 🚫
+ # useMonoRuntime: false # 🚫
+ # withPreviousSDK: true # ✅
### Additional jobs for full build ###
- ${{ if in(parameters.scope, 'full') }}:
@@ -198,41 +201,43 @@ stages:
useMonoRuntime: false # 🚫
withPreviousSDK: false # 🚫
- - template: ../jobs/vmr-build.yml
- parameters:
- # Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline
- buildName: ${{ format('{0}_Online_PreviousSourceBuiltSdk', variables.centOSStreamName) }}
- isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
- vmrBranch: ${{ variables.VmrBranch }}
- architecture: x64
- artifactsRid: ${{ variables.centOSStreamX64Rid }}
- pool: ${{ parameters.pool_Linux }}
- container: ${{ variables.centOSStreamContainer }}
- buildFromArchive: false # 🚫
- buildSourceOnly: true # ✅
- enablePoison: false # 🚫
- excludeOmniSharpTests: false # 🚫
- runOnline: true # ✅
- useMonoRuntime: false # 🚫
- withPreviousSDK: true # ✅
-
- - template: ../jobs/vmr-build.yml
- parameters:
- # Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline
- buildName: ${{ format('{0}_Offline_PreviousSourceBuiltSdk', variables.centOSStreamName) }}
- isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
- vmrBranch: ${{ variables.VmrBranch }}
- architecture: x64
- artifactsRid: ${{ variables.centOSStreamX64Rid }}
- pool: ${{ parameters.pool_Linux }}
- container: ${{ variables.centOSStreamContainer }}
- buildFromArchive: false # 🚫
- buildSourceOnly: true # ✅
- enablePoison: false # 🚫
- excludeOmniSharpTests: true # ✅
- runOnline: false # 🚫
- useMonoRuntime: false # 🚫
- withPreviousSDK: true # ✅
+ # Disabled until net9.0 -> net10.0 transition is complete - see https://github.com/dotnet/source-build/issues/4605
+ # - template: ../jobs/vmr-build.yml
+ # parameters:
+ # # Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline
+ # buildName: ${{ format('{0}_Online_PreviousSourceBuiltSdk', variables.centOSStreamName) }}
+ # isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
+ # vmrBranch: ${{ variables.VmrBranch }}
+ # architecture: x64
+ # artifactsRid: ${{ variables.centOSStreamX64Rid }}
+ # pool: ${{ parameters.pool_Linux }}
+ # container: ${{ variables.centOSStreamContainer }}
+ # buildFromArchive: false # 🚫
+ # buildSourceOnly: true # ✅
+ # enablePoison: false # 🚫
+ # excludeOmniSharpTests: false # 🚫
+ # runOnline: true # ✅
+ # useMonoRuntime: false # 🚫
+ # withPreviousSDK: true # ✅
+
+ # Disabled until net9.0 -> net10.0 transition is complete - see https://github.com/dotnet/source-build/issues/4605
+ # - template: ../jobs/vmr-build.yml
+ # parameters:
+ # # Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline
+ # buildName: ${{ format('{0}_Offline_PreviousSourceBuiltSdk', variables.centOSStreamName) }}
+ # isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
+ # vmrBranch: ${{ variables.VmrBranch }}
+ # architecture: x64
+ # artifactsRid: ${{ variables.centOSStreamX64Rid }}
+ # pool: ${{ parameters.pool_Linux }}
+ # container: ${{ variables.centOSStreamContainer }}
+ # buildFromArchive: false # 🚫
+ # buildSourceOnly: true # ✅
+ # enablePoison: false # 🚫
+ # excludeOmniSharpTests: true # ✅
+ # runOnline: false # 🚫
+ # useMonoRuntime: false # 🚫
+ # withPreviousSDK: true # ✅
- template: ../jobs/vmr-build.yml
parameters:
@@ -302,41 +307,45 @@ stages:
useMonoRuntime: false # 🚫
withPreviousSDK: false # 🚫
- - template: ../jobs/vmr-build.yml
- parameters:
- # Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline
- buildName: ${{ format('{0}_Offline_CurrentSourceBuiltSdk', variables.fedoraName) }}
- isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
- vmrBranch: ${{ variables.VmrBranch }}
- architecture: x64
- pool: ${{ parameters.pool_Linux }}
- container: ${{ variables.fedoraContainer }}
- buildFromArchive: false # 🚫
- buildSourceOnly: true # ✅
- enablePoison: false # 🚫
- excludeOmniSharpTests: false # 🚫
- runOnline: false # 🚫
- useMonoRuntime: false # 🚫
- withPreviousSDK: false # 🚫
- reuseBuildArtifactsFrom: ${{ format('{0}_Offline_MsftSdk', variables.fedoraName) }}
-
- - template: ../jobs/vmr-build.yml
- parameters:
- # Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline
- buildName: ${{ format('{0}_Mono_Offline_CurrentSourceBuiltSdk', variables.centOSStreamName) }}
- isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
- vmrBranch: ${{ variables.VmrBranch }}
- architecture: x64
- pool: ${{ parameters.pool_Linux }}
- container: ${{ variables.centOSStreamContainer }}
- buildFromArchive: true # ✅
- buildSourceOnly: true # ✅
- enablePoison: false # 🚫
- excludeOmniSharpTests: true # ✅
- runOnline: false # 🚫
- useMonoRuntime: true # ✅
- withPreviousSDK: false # 🚫
- reuseBuildArtifactsFrom: ${{ format('{0}_Mono_Offline_MsftSdk', variables.centOSStreamName) }}
+ # Disabled until net9.0 -> net10.0 transition is complete - see https://github.com/dotnet/source-build/issues/4605
+ # - template: ../jobs/vmr-build.yml
+ # parameters:
+ # # Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline
+ # buildName: ${{ format('{0}_Offline_CurrentSourceBuiltSdk', variables.fedoraName) }}
+ # isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
+ # vmrBranch: ${{ variables.VmrBranch }}
+ # architecture: x64
+ # pool: ${{ parameters.pool_Linux }}
+ # container: ${{ variables.fedoraContainer }}
+ # buildFromArchive: false # 🚫
+ # buildSourceOnly: true # ✅
+ # enablePoison: false # 🚫
+ # excludeOmniSharpTests: false # 🚫
+ # runOnline: false # 🚫
+ # useMonoRuntime: false # 🚫
+ # withPreviousSDK: false # 🚫
+ # reuseBuildArtifactsFrom:
+ # - ${{ format('{0}_Offline_MsftSdk_x64', variables.fedoraName) }}
+
+ # Disabled until net9.0 -> net10.0 transition is complete - see https://github.com/dotnet/source-build/issues/4605
+ # - template: ../jobs/vmr-build.yml
+ # parameters:
+ # # Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline
+ # buildName: ${{ format('{0}_Mono_Offline_CurrentSourceBuiltSdk', variables.centOSStreamName) }}
+ # isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
+ # vmrBranch: ${{ variables.VmrBranch }}
+ # architecture: x64
+ # pool: ${{ parameters.pool_Linux }}
+ # container: ${{ variables.centOSStreamContainer }}
+ # buildFromArchive: true # ✅
+ # buildSourceOnly: true # ✅
+ # enablePoison: false # 🚫
+ # excludeOmniSharpTests: true # ✅
+ # runOnline: false # 🚫
+ # useMonoRuntime: true # ✅
+ # withPreviousSDK: false # 🚫
+ # reuseBuildArtifactsFrom:
+ # - ${{ format('{0}_Mono_Offline_MsftSdk_x64', variables.centOSStreamName) }}
#### VERTICAL BUILD ####
- ${{ if not(parameters.isSourceOnlyBuild) }}:
@@ -360,6 +369,7 @@ stages:
targetOS: linux
targetArchitecture: x64
useDevVersions: true # Use dev versions for CI validation of the experience. If we decide to ship assets from this leg, then we should remove this option.
+ runTests: false # Temporarily do not run tests. The nuget comparison fails for some non-obvious reason and needs further investigation. Mostly, I'm not sure why it ever passed. https://github.com/dotnet/sdk/issues/42920
- template: ../jobs/vmr-build.yml
parameters:
@@ -381,6 +391,11 @@ stages:
pool: ${{ parameters.pool_Windows }}
targetOS: windows
targetArchitecture: x64
+ ${{ if in(parameters.scope, 'full') }}:
+ buildPass: 2
+ reuseBuildArtifactsFrom:
+ - Windows_x86
+ - Windows_arm64
- template: ../jobs/vmr-build.yml
parameters:
diff --git a/eng/pipelines/templates/variables/vmr-build.yml b/eng/pipelines/templates/variables/vmr-build.yml
index e6287d3f5679..d44bb5eafcfd 100644
--- a/eng/pipelines/templates/variables/vmr-build.yml
+++ b/eng/pipelines/templates/variables/vmr-build.yml
@@ -27,25 +27,25 @@ variables:
- name: ubuntuArmContainer
value: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-24.04-arm64
- name: azurelinuxX64CrossContainer
- value: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-cross-amd64-net9.0
+ value: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net9.0-cross-amd64
- name: azurelinuxArmCrossContainer
- value: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-cross-arm-net9.0
+ value: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net9.0-cross-arm
- name: azurelinuxArm64CrossContainer
- value: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-cross-arm64-net9.0
+ value: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net9.0-cross-arm64
- name: azurelinuxX64AlpineCrossContainer
- value: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-cross-amd64-alpine-net9.0
+ value: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net9.0-cross-amd64-alpine
- name: azurelinuxArmAlpineCrossContainer
- value: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-cross-arm-alpine-net9.0
+ value: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net9.0-cross-arm-alpine
- name: azurelinuxArm64AlpineCrossContainer
- value: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-cross-arm64-alpine-net9.0
+ value: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net9.0-cross-arm64-alpine
- name: androidCrossContainer
- value: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-cross-android-amd64-net9.0
+ value: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net9.0-cross-android-amd64
- name: linuxBionicCrossContainer
- value: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-android-openssl-net9.0
+ value: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net9.0-android-openssl
- name: browserCrossContainer
- value: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-webassembly-amd64-net9.0
+ value: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net9.0-webassembly-amd64
- name: wasiCrossContainer
- value: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-webassembly-amd64-net9.0
+ value: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net9.0-webassembly-amd64
- name: almaLinuxName
value: AlmaLinux8
diff --git a/eng/pipelines/vmr-build-pr.yml b/eng/pipelines/vmr-build-pr.yml
index 6a1ef42f0563..20352fae76fa 100644
--- a/eng/pipelines/vmr-build-pr.yml
+++ b/eng/pipelines/vmr-build-pr.yml
@@ -19,6 +19,11 @@ pr:
- release/*.0.2xx
- release/*.0.3xx
- release/*.0.4xx
+ paths:
+ exclude:
+ - documentation/*
+ - README.md
+ - CODEOWNERS
parameters:
- name: vmrBranch
diff --git a/eng/pipelines/vmr-sync-internal.yml b/eng/pipelines/vmr-sync-internal.yml
index 91161168c7b3..ccb19a196bc7 100644
--- a/eng/pipelines/vmr-sync-internal.yml
+++ b/eng/pipelines/vmr-sync-internal.yml
@@ -9,6 +9,7 @@ trigger:
- internal/release/*.0.2xx
- internal/release/*.0.3xx
- internal/release/*.0.4xx
+ - internal/release/8.0.4*
resources:
repositories:
diff --git a/eng/restore-toolset.ps1 b/eng/restore-toolset.ps1
index 83b1fbea151e..4f31a110404b 100644
--- a/eng/restore-toolset.ps1
+++ b/eng/restore-toolset.ps1
@@ -10,20 +10,11 @@ function InitializeCustomSDKToolset {
# The following frameworks and tools are used only for testing.
# Do not attempt to install them in source build.
- if ($env:DotNetBuildFromSource -eq "true" -or $productBuild -or $properties -like "*DotNetBuildRepo=true*") {
+ if ($productBuild -or $properties -like "*DotNetBuildRepo=true*") {
return
}
$cli = InitializeDotnetCli -install:$true
- if (-not ($env:PROCESSOR_ARCHITECTURE -like "arm64"))
- {
- InstallDotNetSharedFramework "1.0.5"
- InstallDotNetSharedFramework "1.1.2"
- InstallDotNetSharedFramework "2.1.0"
- InstallDotNetSharedFramework "2.2.8"
- }
- InstallDotNetSharedFramework "3.1.0"
- InstallDotNetSharedFramework "5.0.0"
InstallDotNetSharedFramework "6.0.0"
InstallDotNetSharedFramework "7.0.0"
InstallDotNetSharedFramework "8.0.0"
diff --git a/eng/restore-toolset.sh b/eng/restore-toolset.sh
index b3eb3f09e6bc..45a205ef4f9f 100755
--- a/eng/restore-toolset.sh
+++ b/eng/restore-toolset.sh
@@ -21,10 +21,6 @@ function InitializeCustomSDKToolset {
InitializeDotNetCli true
- InstallDotNetSharedFramework "2.1.0"
- InstallDotNetSharedFramework "2.2.8"
- InstallDotNetSharedFramework "3.1.0"
- InstallDotNetSharedFramework "5.0.0"
InstallDotNetSharedFramework "6.0.0"
InstallDotNetSharedFramework "7.0.0"
InstallDotNetSharedFramework "8.0.0"
diff --git a/github-merge-flow.jsonc b/github-merge-flow.jsonc
index 93c862112b6d..064cf7234e25 100644
--- a/github-merge-flow.jsonc
+++ b/github-merge-flow.jsonc
@@ -21,10 +21,20 @@
"MergeToBranch": "release/8.0.4xx",
"ExtraSwitches": "-QuietComments"
},
- // Automate opening PRs to merge sdk repos from release/8.0.4xx to main
+ // Automate opening PRs to merge sdk repos from release/8.0.4xx to 9.0.1xx
"release/8.0.4xx":{
+ "MergeToBranch": "release/9.0.1xx",
+ "ExtraSwitches": "-QuietComments"
+ },
+ // Automate opening PRs to merge sdk repos from release/9.0.1xx to release/9.0.2xx
+ "release/9.0.1xx":{
+ "MergeToBranch": "release/9.0.2xx",
+ "ExtraSwitches": "-QuietComments"
+ },
+ // Automate opening PRs to merge sdk repos from release/9.0.2xx to main
+ "release/9.0.2xx":{
"MergeToBranch": "main",
"ExtraSwitches": "-QuietComments"
}
}
-}
\ No newline at end of file
+}
diff --git a/global.json b/global.json
index 9359392b8a7b..a0d8c3aef4ba 100644
--- a/global.json
+++ b/global.json
@@ -3,7 +3,7 @@
"dotnet": "9.0.100-rc.2.24474.11",
"runtimes": {
"dotnet": [
- "$(VSRedistCommonNetCoreSharedFrameworkx6490PackageVersion)"
+ "$(VSRedistCommonNetCoreSharedFrameworkx64100PackageVersion)"
],
"aspnetcore": [
"$(MicrosoftAspNetCoreComponentsSdkAnalyzersPackageVersion)"
@@ -17,8 +17,8 @@
"cmake": "latest"
},
"msbuild-sdks": {
- "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.24509.3",
- "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.24509.3",
+ "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.24514.3",
+ "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.24514.3",
"Microsoft.Build.NoTargets": "3.7.0",
"Microsoft.DotNet.CMake.Sdk": "9.0.0-beta.24217.1"
}
diff --git a/src/BlazorWasmSdk/Tasks/BrotliCompress.cs b/src/BlazorWasmSdk/Tasks/BrotliCompress.cs
index 674173903fb5..3e79859b072e 100644
--- a/src/BlazorWasmSdk/Tasks/BrotliCompress.cs
+++ b/src/BlazorWasmSdk/Tasks/BrotliCompress.cs
@@ -1,7 +1,7 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
-using System.Security.Cryptography;
+using System.IO.Hashing;
using Microsoft.Build.Framework;
using Microsoft.Build.Utilities;
@@ -118,11 +118,9 @@ protected override string GenerateResponseFileCommands()
internal static string CalculateTargetPath(string relativePath, string extension)
{
// RelativePath can be long and if used as-is to write the output, might result in long path issues on Windows.
- // Instead we'll calculate a fixed length path by hashing the input file name. This uses SHA1 similar to the Hash task in MSBuild
- // since it has no crytographic significance.
- using var hash = SHA1.Create();
+ // Instead we'll calculate a fixed length path by hashing the input file name. This uses xXHash3 since it has no crytographic significance.
var bytes = Encoding.UTF8.GetBytes(relativePath);
- var hashString = Convert.ToBase64String(hash.ComputeHash(bytes));
+ var hashString = Convert.ToBase64String(XxHash3.Hash(bytes));
var builder = new StringBuilder();
diff --git a/src/BlazorWasmSdk/Tasks/Microsoft.NET.Sdk.BlazorWebAssembly.Tasks.csproj b/src/BlazorWasmSdk/Tasks/Microsoft.NET.Sdk.BlazorWebAssembly.Tasks.csproj
index 629f6f8f90a1..e9b38b6c0e1b 100644
--- a/src/BlazorWasmSdk/Tasks/Microsoft.NET.Sdk.BlazorWebAssembly.Tasks.csproj
+++ b/src/BlazorWasmSdk/Tasks/Microsoft.NET.Sdk.BlazorWebAssembly.Tasks.csproj
@@ -63,6 +63,7 @@
+
diff --git a/src/BuiltInTools/dotnet-format/Formatters/EndOfLineFormatter.cs b/src/BuiltInTools/dotnet-format/Formatters/EndOfLineFormatter.cs
index 59816f02f5d6..73d16e4cc294 100644
--- a/src/BuiltInTools/dotnet-format/Formatters/EndOfLineFormatter.cs
+++ b/src/BuiltInTools/dotnet-format/Formatters/EndOfLineFormatter.cs
@@ -32,6 +32,7 @@ internal override Task FormatFileAsync(
}
var newSourceText = sourceText;
+ var changes = new List();
for (var lineIndex = 0; lineIndex < newSourceText.Lines.Count; lineIndex++)
{
var line = newSourceText.Lines[lineIndex];
@@ -50,10 +51,11 @@ internal override Task FormatFileAsync(
continue;
}
- var newLineChange = new TextChange(lineEndingSpan, endOfLine);
- newSourceText = newSourceText.WithChanges(newLineChange);
+ changes.Add(new TextChange(lineEndingSpan, endOfLine));
}
+ newSourceText = newSourceText.WithChanges(changes);
+
return newSourceText;
});
}
diff --git a/src/Cli/Microsoft.DotNet.Cli.Utils/Microsoft.DotNet.Cli.Utils.csproj b/src/Cli/Microsoft.DotNet.Cli.Utils/Microsoft.DotNet.Cli.Utils.csproj
index 71d901b852af..7ec4f221145b 100644
--- a/src/Cli/Microsoft.DotNet.Cli.Utils/Microsoft.DotNet.Cli.Utils.csproj
+++ b/src/Cli/Microsoft.DotNet.Cli.Utils/Microsoft.DotNet.Cli.Utils.csproj
@@ -49,6 +49,7 @@
+
diff --git a/src/Cli/Microsoft.DotNet.Cli.Utils/Uuid.cs b/src/Cli/Microsoft.DotNet.Cli.Utils/Uuid.cs
index aecb352c2c12..928a8255cadb 100644
--- a/src/Cli/Microsoft.DotNet.Cli.Utils/Uuid.cs
+++ b/src/Cli/Microsoft.DotNet.Cli.Utils/Uuid.cs
@@ -1,14 +1,14 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
-using System.Security.Cryptography;
+using System.IO.Hashing;
namespace Microsoft.DotNet.Cli.Utils
{
public class Uuid
{
///
- /// Generate a Version 5 (SHA1 Name Based) Guid from a name.
+ /// Generate a Version 8 (XxHash3 Name Based) Guid from a name.
///
/// The name to use for generating the GUID.
/// A generated .
@@ -17,31 +17,28 @@ public static Guid Create(string name)
// Any fixed GUID will do for a namespace.
Guid namespaceId = new("28F1468D-672B-489A-8E0C-7C5B3030630C");
- using (SHA1 hasher = SHA1.Create())
- {
- var nameBytes = Encoding.UTF8.GetBytes(name ?? string.Empty);
- var namespaceBytes = namespaceId.ToByteArray();
+ var nameBytes = Encoding.UTF8.GetBytes(name ?? string.Empty);
+ var namespaceBytes = namespaceId.ToByteArray();
- SwapGuidByteOrder(namespaceBytes);
+ SwapGuidByteOrder(namespaceBytes);
- var streamToHash = new byte[namespaceBytes.Length + nameBytes.Length];
+ var streamToHash = new byte[namespaceBytes.Length + nameBytes.Length];
- Array.Copy(namespaceBytes, streamToHash, namespaceBytes.Length);
- Array.Copy(nameBytes, 0, streamToHash, namespaceBytes.Length, nameBytes.Length);
+ Array.Copy(namespaceBytes, streamToHash, namespaceBytes.Length);
+ Array.Copy(nameBytes, 0, streamToHash, namespaceBytes.Length, nameBytes.Length);
- var hashResult = hasher.ComputeHash(streamToHash);
+ var hashResult = XxHash3.Hash(streamToHash); // This is just used for generating a named pipe so we don't need a cryptographic hash
- var res = new byte[16];
+ var res = new byte[16];
- Array.Copy(hashResult, res, res.Length);
+ Array.Copy(hashResult, res, res.Length);
- unchecked { res[6] = (byte)(0x50 | (res[6] & 0x0F)); }
- unchecked { res[8] = (byte)(0x40 | (res[8] & 0x3F)); }
+ unchecked { res[6] = (byte)(0x80 | (res[6] & 0x0F)); }
+ unchecked { res[8] = (byte)(0x40 | (res[8] & 0x3F)); }
- SwapGuidByteOrder(res);
+ SwapGuidByteOrder(res);
- return new Guid(res);
- }
+ return new Guid(res);
}
// Do a byte order swap, .NET GUIDs store multi byte components in little
diff --git a/src/Cli/Microsoft.TemplateEngine.Cli/Commands/CliPathInfo.cs b/src/Cli/Microsoft.TemplateEngine.Cli/Commands/CliPathInfo.cs
index 0ccbea364cf2..f5c4cea88861 100644
--- a/src/Cli/Microsoft.TemplateEngine.Cli/Commands/CliPathInfo.cs
+++ b/src/Cli/Microsoft.TemplateEngine.Cli/Commands/CliPathInfo.cs
@@ -42,6 +42,7 @@ private static string GetUserProfileDir(IEnvironment environment) => environment
RuntimeInformation.IsOSPlatform(OSPlatform.Windows)
? "USERPROFILE"
: "HOME")
+ ?? Environment.GetFolderPath(Environment.SpecialFolder.UserProfile)
?? throw new NotSupportedException("HOME or USERPROFILE environment variable is not defined, the environment is not supported");
private static string GetGlobalSettingsDir(string? settingsLocation)
diff --git a/src/Cli/dotnet/CommandFactory/CommandFactoryUsingResolver.cs b/src/Cli/dotnet/CommandFactory/CommandFactoryUsingResolver.cs
index 72132ccf9d17..99c7b7f7f6e1 100644
--- a/src/Cli/dotnet/CommandFactory/CommandFactoryUsingResolver.cs
+++ b/src/Cli/dotnet/CommandFactory/CommandFactoryUsingResolver.cs
@@ -15,12 +15,14 @@ public static Command CreateDotNet(
string commandName,
IEnumerable args,
NuGetFramework framework = null,
- string configuration = Constants.DefaultConfiguration)
+ string configuration = Constants.DefaultConfiguration,
+ string currentWorkingDirectory = null)
{
return Create("dotnet",
new[] { commandName }.Concat(args),
framework,
- configuration: configuration);
+ configuration: configuration,
+ currentWorkingDirectory);
}
///
@@ -35,7 +37,8 @@ public static Command Create(
NuGetFramework framework = null,
string configuration = Constants.DefaultConfiguration,
string outputPath = null,
- string applicationName = null)
+ string applicationName = null,
+ string currentWorkingDirectory = null)
{
return Create(
new DefaultCommandResolverPolicy(),
@@ -44,7 +47,8 @@ public static Command Create(
framework,
configuration,
outputPath,
- applicationName);
+ applicationName,
+ currentWorkingDirectory);
}
public static Command Create(
@@ -54,7 +58,8 @@ public static Command Create(
NuGetFramework framework = null,
string configuration = Constants.DefaultConfiguration,
string outputPath = null,
- string applicationName = null)
+ string applicationName = null,
+ string currentWorkingDirectory = null)
{
var commandSpec = CommandResolver.TryResolveCommandSpec(
commandResolverPolicy,
@@ -63,7 +68,8 @@ public static Command Create(
framework,
configuration: configuration,
outputPath: outputPath,
- applicationName: applicationName);
+ applicationName: applicationName,
+ currentWorkingDirectory: currentWorkingDirectory);
if (commandSpec == null)
{
diff --git a/src/Cli/dotnet/CommandFactory/CommandResolution/DefaultCommandResolverPolicy.cs b/src/Cli/dotnet/CommandFactory/CommandResolution/DefaultCommandResolverPolicy.cs
index a9fd45472161..acdd93509560 100644
--- a/src/Cli/dotnet/CommandFactory/CommandResolution/DefaultCommandResolverPolicy.cs
+++ b/src/Cli/dotnet/CommandFactory/CommandResolution/DefaultCommandResolverPolicy.cs
@@ -7,12 +7,12 @@ namespace Microsoft.DotNet.CommandFactory
{
public class DefaultCommandResolverPolicy : ICommandResolverPolicy
{
- public CompositeCommandResolver CreateCommandResolver()
+ public CompositeCommandResolver CreateCommandResolver(string currentWorkingDirectory = null)
{
- return Create();
+ return Create(currentWorkingDirectory);
}
- public static CompositeCommandResolver Create()
+ public static CompositeCommandResolver Create(string currentWorkingDirectory = null)
{
var environment = new EnvironmentProvider();
var packagedCommandSpecFactory = new PackagedCommandSpecFactoryWithCliRuntime();
@@ -32,20 +32,22 @@ public static CompositeCommandResolver Create()
environment,
packagedCommandSpecFactory,
platformCommandSpecFactory,
- publishedPathCommandSpecFactory);
+ publishedPathCommandSpecFactory,
+ currentWorkingDirectory);
}
public static CompositeCommandResolver CreateDefaultCommandResolver(
IEnvironmentProvider environment,
IPackagedCommandSpecFactory packagedCommandSpecFactory,
IPlatformCommandSpecFactory platformCommandSpecFactory,
- IPublishedPathCommandSpecFactory publishedPathCommandSpecFactory)
+ IPublishedPathCommandSpecFactory publishedPathCommandSpecFactory,
+ string currentWorkingDirectory = null)
{
var compositeCommandResolver = new CompositeCommandResolver();
compositeCommandResolver.AddCommandResolver(new MuxerCommandResolver());
compositeCommandResolver.AddCommandResolver(new DotnetToolsCommandResolver());
- compositeCommandResolver.AddCommandResolver(new LocalToolsCommandResolver());
+ compositeCommandResolver.AddCommandResolver(new LocalToolsCommandResolver(currentWorkingDirectory: currentWorkingDirectory));
compositeCommandResolver.AddCommandResolver(new RootedCommandResolver());
compositeCommandResolver.AddCommandResolver(
new ProjectToolsCommandResolver(packagedCommandSpecFactory, environment));
diff --git a/src/Cli/dotnet/CommandFactory/CommandResolution/ICommandResolverPolicy.cs b/src/Cli/dotnet/CommandFactory/CommandResolution/ICommandResolverPolicy.cs
index 13782cc7ef3e..1e6ac839a837 100644
--- a/src/Cli/dotnet/CommandFactory/CommandResolution/ICommandResolverPolicy.cs
+++ b/src/Cli/dotnet/CommandFactory/CommandResolution/ICommandResolverPolicy.cs
@@ -5,6 +5,6 @@ namespace Microsoft.DotNet.CommandFactory
{
public interface ICommandResolverPolicy
{
- CompositeCommandResolver CreateCommandResolver();
+ CompositeCommandResolver CreateCommandResolver(string currentWorkingDirectory = null);
}
}
diff --git a/src/Cli/dotnet/CommandFactory/CommandResolution/LocalToolsCommandResolver.cs b/src/Cli/dotnet/CommandFactory/CommandResolution/LocalToolsCommandResolver.cs
index 524ea1eb0d04..6b1db04c20de 100644
--- a/src/Cli/dotnet/CommandFactory/CommandResolution/LocalToolsCommandResolver.cs
+++ b/src/Cli/dotnet/CommandFactory/CommandResolution/LocalToolsCommandResolver.cs
@@ -21,9 +21,10 @@ internal class LocalToolsCommandResolver : ICommandResolver
public LocalToolsCommandResolver(
ToolManifestFinder toolManifest = null,
ILocalToolsResolverCache localToolsResolverCache = null,
- IFileSystem fileSystem = null)
+ IFileSystem fileSystem = null,
+ string currentWorkingDirectory = null)
{
- _toolManifest = toolManifest ?? new ToolManifestFinder(new DirectoryPath(Directory.GetCurrentDirectory()));
+ _toolManifest = toolManifest ?? new ToolManifestFinder(new DirectoryPath(currentWorkingDirectory ?? Directory.GetCurrentDirectory()));
_localToolsResolverCache = localToolsResolverCache ?? new LocalToolsResolverCache();
_fileSystem = fileSystem ?? new FileSystemWrapper();
}
diff --git a/src/Cli/dotnet/CommandFactory/CommandResolution/PathCommandResolverPolicy.cs b/src/Cli/dotnet/CommandFactory/CommandResolution/PathCommandResolverPolicy.cs
index f0b6ea222ddc..f21d60cf7f02 100644
--- a/src/Cli/dotnet/CommandFactory/CommandResolution/PathCommandResolverPolicy.cs
+++ b/src/Cli/dotnet/CommandFactory/CommandResolution/PathCommandResolverPolicy.cs
@@ -7,7 +7,7 @@ namespace Microsoft.DotNet.CommandFactory
{
public class PathCommandResolverPolicy : ICommandResolverPolicy
{
- public CompositeCommandResolver CreateCommandResolver()
+ public CompositeCommandResolver CreateCommandResolver(string CurrentWorkingDirectory = null)
{
return Create();
}
diff --git a/src/Cli/dotnet/CommandFactory/CommandResolver.cs b/src/Cli/dotnet/CommandFactory/CommandResolver.cs
index 3649fddfbb53..678600e8227a 100644
--- a/src/Cli/dotnet/CommandFactory/CommandResolver.cs
+++ b/src/Cli/dotnet/CommandFactory/CommandResolver.cs
@@ -33,20 +33,21 @@ public static CommandSpec TryResolveCommandSpec(
NuGetFramework framework = null,
string configuration = Constants.DefaultConfiguration,
string outputPath = null,
- string applicationName = null)
+ string applicationName = null,
+ string currentWorkingDirectory = null)
{
var commandResolverArgs = new CommandResolverArguments
{
CommandName = commandName,
CommandArguments = args,
Framework = framework,
- ProjectDirectory = Directory.GetCurrentDirectory(),
+ ProjectDirectory = currentWorkingDirectory ?? Directory.GetCurrentDirectory(),
Configuration = configuration,
OutputPath = outputPath,
ApplicationName = applicationName
};
- var defaultCommandResolver = commandResolverPolicy.CreateCommandResolver();
+ var defaultCommandResolver = commandResolverPolicy.CreateCommandResolver(currentWorkingDirectory);
return defaultCommandResolver.Resolve(commandResolverArgs);
}
diff --git a/src/Cli/dotnet/DotNetCommandFactory.cs b/src/Cli/dotnet/DotNetCommandFactory.cs
index 22b04fd9df81..190b2385abde 100644
--- a/src/Cli/dotnet/DotNetCommandFactory.cs
+++ b/src/Cli/dotnet/DotNetCommandFactory.cs
@@ -12,10 +12,12 @@ namespace Microsoft.DotNet.Cli
public class DotNetCommandFactory : ICommandFactory
{
private bool _alwaysRunOutOfProc;
+ private readonly string _currentWorkingDirectory;
- public DotNetCommandFactory(bool alwaysRunOutOfProc = false)
+ public DotNetCommandFactory(bool alwaysRunOutOfProc = false, string currentWorkingDirectory = null)
{
_alwaysRunOutOfProc = alwaysRunOutOfProc;
+ _currentWorkingDirectory = currentWorkingDirectory;
}
public ICommand Create(
@@ -32,7 +34,7 @@ public ICommand Create(
return new BuiltInCommand(commandName, args, builtInCommand);
}
- return CommandFactoryUsingResolver.CreateDotNet(commandName, args, framework, configuration);
+ return CommandFactoryUsingResolver.CreateDotNet(commandName, args, framework, configuration, _currentWorkingDirectory);
}
private bool TryGetBuiltInCommand(string commandName, out Func commandFunc)
diff --git a/src/Cli/dotnet/NugetPackageDownloader/FirstPartyNuGetPackageSigningVerifier.cs b/src/Cli/dotnet/NugetPackageDownloader/FirstPartyNuGetPackageSigningVerifier.cs
index 4da9fa2a744e..58fafb5b5ec0 100644
--- a/src/Cli/dotnet/NugetPackageDownloader/FirstPartyNuGetPackageSigningVerifier.cs
+++ b/src/Cli/dotnet/NugetPackageDownloader/FirstPartyNuGetPackageSigningVerifier.cs
@@ -74,10 +74,10 @@ internal bool IsFirstParty(FilePath nupkgToVerify)
}
}
- private static bool NuGetVerify(FilePath nupkgToVerify, out string commandOutput)
+ public static bool NuGetVerify(FilePath nupkgToVerify, out string commandOutput, string currentWorkingDirectory = null)
{
var args = new[] { "verify", "--all", nupkgToVerify.Value };
- var command = new DotNetCommandFactory(alwaysRunOutOfProc: true)
+ var command = new DotNetCommandFactory(alwaysRunOutOfProc: true, currentWorkingDirectory)
.Create("nuget", args);
var commandResult = command.CaptureStdOut().Execute();
diff --git a/src/Cli/dotnet/NugetPackageDownloader/LocalizableStrings.resx b/src/Cli/dotnet/NugetPackageDownloader/LocalizableStrings.resx
index f5e51e2e900d..dc604eb2bc79 100644
--- a/src/Cli/dotnet/NugetPackageDownloader/LocalizableStrings.resx
+++ b/src/Cli/dotnet/NugetPackageDownloader/LocalizableStrings.resx
@@ -132,11 +132,15 @@
Skipping NuGet package signature verification.
-
- Skip NuGet package signing validation. NuGet signing validation is not available on Linux or macOS https://aka.ms/workloadskippackagevalidation .
+
+ Verified that the NuGet package "{0}" has a valid signature.
+
+
+ Skipping signature verification for NuGet package "{0}" because it comes from a source that does not require signature validation.
- Failed to validate package signing.
+ Failed to validate package signing.
+{0}
Package Source Mapping is enabled, but no source found under the specified package ID: {0}. See the documentation for Package Source Mapping at https://aka.ms/nuget-package-source-mapping for more details.
diff --git a/src/Cli/dotnet/NugetPackageDownloader/NuGetPackageDownloader.cs b/src/Cli/dotnet/NugetPackageDownloader/NuGetPackageDownloader.cs
index ede94d7056b2..262d6cd2fc29 100644
--- a/src/Cli/dotnet/NugetPackageDownloader/NuGetPackageDownloader.cs
+++ b/src/Cli/dotnet/NugetPackageDownloader/NuGetPackageDownloader.cs
@@ -40,6 +40,7 @@ internal class NuGetPackageDownloader : INuGetPackageDownloader
private readonly bool _verifySignatures;
private readonly VerbosityOptions _verbosityOptions;
+ private readonly string _currentWorkingDirectory;
public NuGetPackageDownloader(
DirectoryPath packageInstallDir,
@@ -51,8 +52,10 @@ public NuGetPackageDownloader(
Func> timer = null,
bool verifySignatures = false,
bool shouldUsePackageSourceMapping = false,
- VerbosityOptions verbosityOptions = VerbosityOptions.normal)
+ VerbosityOptions verbosityOptions = VerbosityOptions.normal,
+ string currentWorkingDirectory = null)
{
+ _currentWorkingDirectory = currentWorkingDirectory;
_packageInstallDir = packageInstallDir;
_reporter = reporter ?? Reporter.Output;
_verboseLogger = verboseLogger ?? new NuGetConsoleLogger();
@@ -127,22 +130,22 @@ public async Task DownloadPackageAsync(PackageId packageId,
packageVersion.ToNormalizedString()));
}
- VerifySigning(nupkgPath);
-
+ await VerifySigning(nupkgPath, repository);
+
return nupkgPath;
}
- private bool verbosityGreaterThanMinimal()
- {
- return _verbosityOptions != VerbosityOptions.quiet && _verbosityOptions != VerbosityOptions.q
- && _verbosityOptions != VerbosityOptions.minimal && _verbosityOptions != VerbosityOptions.m;
- }
+ private bool VerbosityGreaterThanMinimal() =>
+ _verbosityOptions != VerbosityOptions.quiet && _verbosityOptions != VerbosityOptions.q &&
+ _verbosityOptions != VerbosityOptions.minimal && _verbosityOptions != VerbosityOptions.m;
- private void VerifySigning(string nupkgPath)
+ private bool DiagnosticVerbosity() => _verbosityOptions == VerbosityOptions.diag || _verbosityOptions == VerbosityOptions.diagnostic;
+
+ private async Task VerifySigning(string nupkgPath, SourceRepository repository)
{
if (!_verifySignatures && !_validationMessagesDisplayed)
{
- if (verbosityGreaterThanMinimal())
+ if (VerbosityGreaterThanMinimal())
{
_reporter.WriteLine(LocalizableStrings.NuGetPackageSignatureVerificationSkipped);
}
@@ -154,15 +157,28 @@ private void VerifySigning(string nupkgPath)
return;
}
- if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
+ if (repository is not null &&
+ await repository.GetResourceAsync().ConfigureAwait(false) is RepositorySignatureResource resource &&
+ resource.AllRepositorySigned)
{
- if (!_firstPartyNuGetPackageSigningVerifier.Verify(new FilePath(nupkgPath),
- out string commandOutput))
+ string commandOutput;
+ // The difference between _firstPartyNuGetPackageSigningVerifier.Verify and FirstPartyNuGetPackageSigningVerifier.NuGetVerify is that while NuGetVerify
+ // just ensures that the package is signed properly, Verify additionally requires that the package be from Microsoft. NuGetVerify does not require that
+ // the package be from Microsoft.
+ if ((!_shouldUsePackageSourceMapping && !_firstPartyNuGetPackageSigningVerifier.Verify(new FilePath(nupkgPath), out commandOutput)) ||
+ (_shouldUsePackageSourceMapping && !FirstPartyNuGetPackageSigningVerifier.NuGetVerify(new FilePath(nupkgPath), out commandOutput, _currentWorkingDirectory)))
{
- throw new NuGetPackageInstallerException(LocalizableStrings.FailedToValidatePackageSigning +
- Environment.NewLine +
- commandOutput);
+ throw new NuGetPackageInstallerException(string.Format(LocalizableStrings.FailedToValidatePackageSigning, commandOutput));
}
+
+ if (DiagnosticVerbosity())
+ {
+ _reporter.WriteLine(LocalizableStrings.VerifyingNuGetPackageSignature, Path.GetFileNameWithoutExtension(nupkgPath));
+ }
+ }
+ else if (DiagnosticVerbosity())
+ {
+ _reporter.WriteLine(LocalizableStrings.NuGetPackageShouldNotBeSigned, Path.GetFileNameWithoutExtension(nupkgPath));
}
}
diff --git a/src/Cli/dotnet/NugetPackageDownloader/xlf/LocalizableStrings.cs.xlf b/src/Cli/dotnet/NugetPackageDownloader/xlf/LocalizableStrings.cs.xlf
index 335f7711eb3c..bb255bc8656b 100644
--- a/src/Cli/dotnet/NugetPackageDownloader/xlf/LocalizableStrings.cs.xlf
+++ b/src/Cli/dotnet/NugetPackageDownloader/xlf/LocalizableStrings.cs.xlf
@@ -28,8 +28,10 @@
- Failed to validate package signing.
- Nepodařilo se ověřit podepisování balíčku.
+ Failed to validate package signing.
+{0}
+ Failed to validate package signing.
+{0}
@@ -37,6 +39,11 @@
Balíček {0} se nenašel v informačních kanálech NuGet {1}.
+
+ Skipping signature verification for NuGet package "{0}" because it comes from a source that does not require signature validation.
+ Skipping signature verification for NuGet package "{0}" because it comes from a source that does not require signature validation.
+
+
Skipping NuGet package signature verification.
Přeskakuje se ověření podpisu balíčku NuGet.
@@ -67,9 +74,9 @@
Verze menší než {0} balíčku {1}
-
- Skip NuGet package signing validation. NuGet signing validation is not available on Linux or macOS https://aka.ms/workloadskippackagevalidation .
- Přeskočit ověřování podepisování balíčku NuGet. Ověřování podepisování balíčku NuGet není k dispozici na Linuxu nebo v macOS https://aka.ms/workloadskippackagevalidation.
+
+ Verified that the NuGet package "{0}" has a valid signature.
+ Verified that the NuGet package "{0}" has a valid signature.