Skip to content

Commit b665a85

Browse files
committed
Merge remote-tracking branch 'upstream/main' into finalizer-csharp
2 parents c0355d9 + c809396 commit b665a85

File tree

921 files changed

+63091
-12671
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

921 files changed

+63091
-12671
lines changed

.config/dotnet-tools.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"isRoot": true,
44
"tools": {
55
"microsoft.dotnet.darc": {
6-
"version": "1.1.0-beta.25064.2",
6+
"version": "1.1.0-beta.25113.5",
77
"commands": [
88
"darc"
99
]

.gitattributes

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,12 @@
1010
###############################################################################
1111
*.xlf linguist-generated=true
1212

13+
###############################################################################
14+
# Set default behavior to:
15+
# don't collapse these files in PRs
16+
###############################################################################
17+
**/build/** linguist-generated=false
18+
1319
###############################################################################
1420
# Set file behavior to:
1521
# treat as text
@@ -61,3 +67,5 @@
6167
*.verified.txt text eol=lf working-tree-encoding=UTF-8
6268
*.verified.xml text eol=lf working-tree-encoding=UTF-8
6369
*.verified.json text eol=lf working-tree-encoding=UTF-8
70+
71+
src/SourceBuild/patches/**/*.patch text eol=lf
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
name: Add Branch Lockdown Label to PRs
2+
3+
on:
4+
pull_request_target:
5+
workflow_dispatch: # Allows manual triggering of the workflow
6+
7+
permissions:
8+
actions: write # For managing the operation state cache
9+
issues: write
10+
11+
jobs:
12+
add-label:
13+
runs-on: ubuntu-latest
14+
15+
permissions:
16+
contents: read
17+
pull-requests: write
18+
19+
steps:
20+
- name: Checkout repository
21+
uses: actions/checkout@v2
22+
23+
- name: Install jq
24+
run: sudo apt-get install -y jq
25+
26+
- name: Add label to PRs
27+
env:
28+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
29+
run: |
30+
# Determine the third Tuesday of the current month
31+
third_tuesday=$(date -d "$(date +%Y-%m-01) +14 days" +%Y-%m-%d)
32+
while [ $(date -d "$third_tuesday" +%u) -ne 2 ]; do
33+
third_tuesday=$(date -d "$third_tuesday + 1 day" +%Y-%m-%d)
34+
done
35+
36+
# Determine the first Tuesday of the current month
37+
first_tuesday=$(date -d "$(date +%Y-%m-01)" +%Y-%m-%d)
38+
while [ $(date -d "$first_tuesday" +%u) -ne 2 ]; do
39+
first_tuesday=$(date -d "$first_tuesday + 1 day" +%Y-%m-%d)
40+
done
41+
42+
# Get current date
43+
current_date=$(date +%Y-%m-%d)
44+
45+
echo "Current Date: $current_date"
46+
echo "Third Tuesday of the month: $third_tuesday"
47+
echo "First Tuesday of the month: $first_tuesday"
48+
49+
# Check if the current date is after the third Tuesday of this month or before the first Tuesday of this month
50+
if [[ "$current_date" > "$third_tuesday" || "$current_date" < "$first_tuesday" ]]; then
51+
echo "Within the label period. Checking if the branch matches..."
52+
53+
# Get all open PRs targeting branches release/8* and release/9* excluding release/9.0.3xx
54+
echo "Running gh pr list query..."
55+
prs=$(gh pr list --state open --limit 200 --json number,baseRefName,author,labels)
56+
echo "Total PRs Count: $(echo "$prs" | jq length)"
57+
echo "PRs JSON: $prs"
58+
59+
echo "Filtering PRs targeting release/8* and release/9* excluding release/9.0.3xx..."
60+
prs_targeting_branches=$(echo "$prs" | jq '[.[] | select(.baseRefName | test("^release/[89].*")) | select(.baseRefName | test("^release/9.0.3xx") | not)]')
61+
echo "Count of PRs targeting specific branches: $(echo "$prs_targeting_branches" | jq length)"
62+
63+
echo "Filtering PRs without Branch Lockdown label..."
64+
filtered_prs=$(echo "$prs_targeting_branches" | jq '[.[] | select(.labels | map(.name) | index("Branch Lockdown") | not) | .number]')
65+
echo "Filtered PRs without Branch Lockdown label JSON: $filtered_prs"
66+
echo "Count of Filtered PRs without Branch Lockdown label: $(echo "$filtered_prs" | jq length)"
67+
68+
# Loop through filtered PRs and add label
69+
for pr in $(echo "$filtered_prs" | jq -r '.[]'); do
70+
echo "Adding label to PR #$pr"
71+
gh pr edit $pr --add-label "Branch Lockdown"
72+
done
73+
else
74+
echo "Outside the label period. No labels added."
75+
fi

.github/workflows/pr-analysis.yml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
name: PR Analysis
2+
on:
3+
pull_request:
4+
types: [opened, synchronize, labeled, unlabeled]
5+
permissions:
6+
contents: read
7+
pull-requests: read
8+
jobs:
9+
allowed-labels:
10+
runs-on: ubuntu-latest
11+
steps:
12+
- name: Return error if branch is in lockdown or 'do not merge' label is present
13+
run: echo "Labels on this PR prevent it from being merged. Please contact the repo owners for more information." && exit 1
14+
if: ${{ contains(github.event.pull_request.labels.*.name, 'Branch Lockdown') || contains(github.event.pull_request.labels.*.name, 'DO NOT MERGE') }}

.vsts-ci.yml

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ trigger:
55
branches:
66
include:
77
- main
8-
- release/9.0.2xx
8+
- release/9.0.3xx
99
- internal/release/*
1010
- exp/*
1111

@@ -22,6 +22,10 @@ parameters:
2222
displayName: Run A Test Build
2323
type: boolean
2424
default: false
25+
- name: enableArm64Job
26+
displayName: Enables the ARM64 job
27+
type: boolean
28+
default: false
2529

2630
variables:
2731
- template: /eng/pipelines/templates/variables/sdk-defaults.yml
@@ -57,10 +61,7 @@ resources:
5761
ref: refs/tags/release
5862

5963
extends:
60-
${{ if ne(variables['Build.Reason'], 'PullRequest') }}:
61-
template: v1/1ES.Official.PipelineTemplate.yml@1esPipelines
62-
${{ else }}:
63-
template: v1/1ES.Unofficial.PipelineTemplate.yml@1esPipelines
64+
template: v1/1ES.Official.PipelineTemplate.yml@1esPipelines
6465
parameters:
6566
containers:
6667
alpine319WithNode:
@@ -106,7 +107,7 @@ extends:
106107
templateFolderName: templates-official
107108
publishTaskPrefix: 1ES.
108109
runtimeSourceProperties: /p:DotNetRuntimeSourceFeed=https://dotnetbuilds.blob.core.windows.net/internal /p:DotNetRuntimeSourceFeedKey=$(dotnetbuilds-internal-container-read-token-base64)
109-
locBranch: release/9.0.2xx
110+
locBranch: release/9.0.3xx
110111
# WORKAROUND: BinSkim requires the folder exist prior to scanning.
111112
preSteps:
112113
- powershell: New-Item -ItemType Directory -Path $(Build.SourcesDirectory)/artifacts/bin -Force
@@ -297,7 +298,7 @@ extends:
297298
officialBuildProperties: $(_officialBuildProperties)
298299
runTests: false
299300
### ARM64 TESTBUILD ###
300-
- ${{ if or(eq(parameters.runTestBuild, true), eq(variables['Build.Reason'], 'PullRequest')) }}:
301+
- ${{ if and(or(eq(parameters.runTestBuild, true), eq(variables['Build.Reason'], 'PullRequest')), eq(parameters.enableArm64Job, true)) }}:
301302
- template: /eng/pipelines/templates/jobs/sdk-job-matrix.yml@self
302303
parameters:
303304
pool:

.vsts-pr.yml

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,12 @@ pr:
1414
- README.md
1515
- CODEOWNERS
1616

17+
parameters:
18+
- name: enableArm64Job
19+
displayName: Enables the ARM64 job
20+
type: boolean
21+
default: false
22+
1723
variables:
1824
- template: /eng/pipelines/templates/variables/sdk-defaults.yml
1925
# Variables used: DncEngPublicBuildPool
@@ -44,7 +50,7 @@ stages:
4450
name: $(DncEngPublicBuildPool)
4551
demands: ImageOverride -equals windows.vs2022.amd64.open
4652
os: windows
47-
helixTargetQueue: windows.amd64.vs2022.pre.scout.open
53+
helixTargetQueue: windows.amd64.vs2022.pre.open
4854

4955
############### LINUX ###############
5056
- template: /eng/pipelines/templates/jobs/sdk-job-matrix.yml
@@ -64,17 +70,18 @@ stages:
6470
os: macOS
6571
helixTargetQueue: osx.13.amd64.open
6672
### ARM64 ###
67-
- template: /eng/pipelines/templates/jobs/sdk-job-matrix.yml
68-
parameters:
69-
pool:
70-
name: Azure Pipelines
71-
vmImage: macOS-latest
72-
os: macOS
73-
helixTargetQueue: osx.13.arm64.open
74-
macOSJobParameterSets:
75-
- categoryName: TestBuild
76-
buildArchitecture: arm64
77-
runtimeIdentifier: osx-arm64
73+
- ${{ if eq(parameters.enableArm64Job, true) }}:
74+
- template: /eng/pipelines/templates/jobs/sdk-job-matrix.yml
75+
parameters:
76+
pool:
77+
name: Azure Pipelines
78+
vmImage: macOS-latest
79+
os: macOS
80+
helixTargetQueue: osx.13.arm64.open
81+
macOSJobParameterSets:
82+
- categoryName: TestBuild
83+
buildArchitecture: arm64
84+
runtimeIdentifier: osx-arm64
7885

7986
############### DOTNET-FORMAT ###############
8087
- template: /eng/dotnet-format/dotnet-format-integration.yml

CODEOWNERS

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@
3030
/src/WasmSdk @lewing @akoeplinger @pavelsavara @maraf
3131

3232
# Area-Format
33-
/src/Cli/dotnet/commands/dotnet-format @sharwell @arkalyanms
34-
/test/dotnet-format.Tests @sharwell @arkalyanms
33+
/src/Cli/dotnet/commands/dotnet-format @sharwell @arunchndr
34+
/test/dotnet-format.Tests @sharwell @arunchndr
3535

3636
# Area-NuGet
3737
/src/Cli/dotnet/commands/dotnet-add/dotnet-add-package @dotnet/nuget-team
@@ -76,12 +76,12 @@
7676
/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.ClickOnce.targets @sujitnayak
7777

7878
# Area-Watch
79-
/test/TestAssets/TestProjects/Watch*/ @tmat @arkalyanms @dotnet/roslyn-ide
80-
/test/dotnet-watch.Tests/ @tmat @arkalyanms @dotnet/roslyn-ide
79+
/test/TestAssets/TestProjects/Watch*/ @tmat @arunchndr @dotnet/roslyn-ide
80+
/test/dotnet-watch.Tests/ @tmat @arunchndr @dotnet/roslyn-ide
8181
/test/Microsoft.AspNetCore.Watch.BrowserRefresh.Tests/ @dotnet/aspnet-blazor-eng
82-
/src/BuiltInTools/* @tmat @arkalyanms @dotnet/roslyn-ide
82+
/src/BuiltInTools/* @tmat @arunchndr @dotnet/roslyn-ide
8383
/src/BuiltInTools/BrowserRefresh @dotnet/aspnet-blazor-eng
84-
/src/BuiltInTools/AspireService @BillHiebert @dotnet/aspnet-blazor-eng
84+
/src/BuiltInTools/AspireService @dotnet/aspnet-blazor-eng
8585

8686
# Compatibility tools owned by runtime team
8787
/src/Compatibility/ @dotnet/area-infrastructure-libraries

Directory.Build.props

Lines changed: 34 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,40 @@
1515
<Import Project="Sdk.props" Sdk="Microsoft.DotNet.Arcade.Sdk" />
1616
<Import Project="$(RepositoryEngineeringDir)Analyzers.props" />
1717

18-
<PropertyGroup Condition="'$(PgoInstrument)' == 'true'">
19-
<SkipBuildingInstallers>true</SkipBuildingInstallers>
20-
<PgoTerm>-pgo</PgoTerm>
18+
<PropertyGroup>
19+
<!-- Use current machine distro RID if set. Otherwise, fall back to RuntimeInformation.RuntimeIdentifier -->
20+
<HostRid Condition="'$(HostRid)' == '' and '$(MSBuildRuntimeType)' == 'core'">$(__DistroRid)</HostRid>
21+
<HostRid Condition="'$(HostRid)' == '' and '$(MSBuildRuntimeType)' == 'core'">$([System.Runtime.InteropServices.RuntimeInformation]::RuntimeIdentifier)</HostRid>
22+
<HostRid Condition="'$(HostRid)' == '' and '$(MSBuildRuntimeType)' != 'core'">win-$([System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture.ToString().ToLowerInvariant)</HostRid>
23+
24+
<IsLinux Condition="$([MSBuild]::IsOSPlatform('LINUX'))">true</IsLinux>
25+
<HostOSName Condition="'$(HostOSName)' == '' AND $([MSBuild]::IsOSPlatform('WINDOWS'))">win</HostOSName>
26+
<HostOSName Condition="'$(HostOSName)' == '' AND $([MSBuild]::IsOSPlatform('OSX'))">osx</HostOSName>
27+
<HostOSName Condition="'$(HostOSName)' == '' AND $([MSBuild]::IsOSPlatform('FREEBSD'))">freebsd</HostOSName>
28+
<HostOSName Condition="'$(HostOSName)' == '' AND $([MSBuild]::IsOSPlatform('ILLUMOS'))">illumos</HostOSName>
29+
<HostOSName Condition="'$(HostOSName)' == '' AND '$(IsLinux)' == 'true'">linux</HostOSName>
30+
31+
<IsDebianBaseDistro Condition="$(HostRid.StartsWith('ubuntu')) OR $(HostRid.StartsWith('debian'))">true</IsDebianBaseDistro>
32+
<IsRPMBasedDistro Condition="$(HostRid.StartsWith('rhel'))">true</IsRPMBasedDistro>
33+
<IsRPMBasedDistro Condition="$(HostRid.StartsWith('centos'))">true</IsRPMBasedDistro>
34+
</PropertyGroup>
35+
36+
<PropertyGroup>
37+
<ArchiveExtension>.tar.gz</ArchiveExtension>
38+
<ArchiveExtension Condition="$([MSBuild]::IsOSPlatform('WINDOWS'))">.zip</ArchiveExtension>
39+
40+
<InstallerExtension Condition="$([MSBuild]::IsOSPlatform('WINDOWS'))">.msi</InstallerExtension>
41+
<InstallerExtension Condition="$([MSBuild]::IsOSPlatform('OSX'))">.pkg</InstallerExtension>
42+
<InstallerExtension Condition="'$(IsDebianBaseDistro)' == 'true'">.deb</InstallerExtension>
43+
<InstallerExtension Condition="'$(IsRPMBasedDistro)' == 'true'">.rpm</InstallerExtension>
44+
45+
<BundleExtension Condition="$([MSBuild]::IsOSPlatform('WINDOWS'))">.exe</BundleExtension>
46+
<BundleExtension Condition="$([MSBuild]::IsOSPlatform('OSX'))">$(InstallerExtension)</BundleExtension>
47+
<BundleExtension Condition="'$(IsDebianBaseDistro)' == 'true'">$(InstallerExtension)</BundleExtension>
48+
<BundleExtension Condition="'$(IsRPMBasedDistro)' == 'true'">$(InstallerExtension)</BundleExtension>
49+
50+
<ExeExtension>.exe</ExeExtension>
51+
<ExeExtension Condition="!$([MSBuild]::IsOSPlatform('WINDOWS'))"></ExeExtension>
2152
</PropertyGroup>
2253

2354
<PropertyGroup>

Directory.Packages.props

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
<PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="$(MicrosoftExtensionsLoggingAbstractionsVersion)" />
4545
<PackageVersion Include="Microsoft.Extensions.Logging.Console" Version="$(MicrosoftExtensionsLoggingConsoleVersion)" />
4646
<PackageVersion Include="Microsoft.Extensions.ObjectPool" Version="$(MicrosoftExtensionsObjectPoolPackageVersion)" />
47+
<PackageVersion Include="Microsoft.Extensions.Configuration.Ini" Version="$(MicrosoftExtensionsConfigurationIniVersion)" />
4748
<PackageVersion Include="Microsoft.FSharp.Compiler" Version="$(MicrosoftFSharpCompilerPackageVersion)" />
4849
<PackageVersion Include="Microsoft.IO.Redist" Version="$(MicrosoftIORedistPackageVersion)" />
4950
<PackageVersion Include="Microsoft.Net.Compilers.Toolset.Framework" Version="$(MicrosoftNetCompilersToolsetFrameworkPackageVersion)" />
@@ -94,8 +95,6 @@
9495
<PackageVersion Include="StyleCop.Analyzers" Version="$(StyleCopAnalyzersPackageVersion)" />
9596
<PackageVersion Include="System.CodeDom" Version="$(SystemCodeDomPackageVersion)" />
9697
<PackageVersion Include="System.CommandLine" Version="$(SystemCommandLineVersion)" />
97-
<PackageVersion Include="System.CommandLine.Rendering" Version="$(SystemCommandLineRenderingVersion)" />
98-
<PackageVersion Include="System.ComponentModel.TypeConverter" Version="4.3.0" />
9998
<PackageVersion Include="System.Composition.AttributedModel" Version="$(SystemCompositionAttributedModelPackageVersion)" />
10099
<PackageVersion Include="System.Composition.Convention" Version="$(SystemCompositionConventionPackageVersion)" />
101100
<PackageVersion Include="System.Composition.Hosting" Version="$(SystemCompositionHostingPackageVersion)" />
@@ -104,14 +103,11 @@
104103
<PackageVersion Include="System.Configuration.ConfigurationManager" Version="$(SystemConfigurationConfigurationManagerPackageVersion)" />
105104
<PackageVersion Include="System.Formats.Asn1" Version="$(SystemFormatsAsn1Version)" />
106105
<PackageVersion Include="System.IO.Hashing" Version="$(SystemIOHashingPackageVersion)" />
107-
<PackageVersion Include="System.Net.Http" Version="4.3.4" />
108106
<!-- System.Reflection.Metadata and System.Collections.Immutable cannot be pinned here because of hard dependencies within Roslyn on specific versions that have to work both here and in VS -->
109107
<PackageVersion Include="System.Reflection.MetadataLoadContext" Version="$(SystemReflectionMetadataLoadContextVersion)" />
110108
<PackageVersion Include="System.Resources.Extensions" Version="$(SystemResourcesExtensionsPackageVersion)" />
111-
<PackageVersion Include="System.Runtime.Serialization.Primitives" Version="4.3.0" />
112109
<PackageVersion Include="System.Security.Cryptography.Pkcs" Version="$(SystemSecurityCryptographyPkcsPackageVersion)" />
113110
<PackageVersion Include="System.Security.Cryptography.ProtectedData" Version="$(SystemSecurityCryptographyProtectedDataPackageVersion)" />
114-
<PackageVersion Include="System.Security.Cryptography.X509Certificates" Version="4.3.2" />
115111
<PackageVersion Include="System.Security.Cryptography.Xml" Version="$(SystemSecurityCryptographyXmlPackageVersion)" />
116112
<PackageVersion Include="System.Security.Permissions" Version="$(SystemSecurityPermissionsPackageVersion)" />
117113
<PackageVersion Include="System.ServiceProcess.ServiceController" Version="$(SystemServiceProcessServiceControllerVersion)" />

README.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,15 @@ You can download the .NET SDK as either an installer (MSI, PKG) or a zip (zip, t
2525
> [!NOTE]
2626
> When acquiring installers from the latest builds table, be aware that the installers are the **latest bits**. With development builds, internal NuGet feeds are necessary for some scenarios (for example, to acquire the runtime pack for self-contained apps). You can use the following NuGet.config to configure these feeds. See the following document [Configuring NuGet behavior](https://docs.microsoft.com/nuget/consume-packages/configuring-nuget-behavior) for more information on where to modify your NuGet.config to apply the changes.
2727
28+
### For .NET 10 builds
29+
```xml
30+
<configuration>
31+
<packageSources>
32+
<add key="dotnet10" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet10/nuget/v3/index.json" />
33+
</packageSources>
34+
</configuration>
35+
```
36+
2837
### For .NET 9 builds
2938
```xml
3039
<configuration>
@@ -95,4 +104,4 @@ For PRs, we assign a reviewer once a week on Wednesday, looking only at PRs that
95104

96105
The .NET SDK project uses the [MIT license](LICENSE.TXT).
97106

98-
The *LICENSE.txt* and *ThirdPartyNotices.txt* in any downloaded archives are authoritative.
107+
The *LICENSE.txt* and *ThirdPartyNotices.txt* in any downloaded archives are authoritative.

0 commit comments

Comments
 (0)