Skip to content

Commit d61efa6

Browse files
committed
Merge branch 'main' into CliTestsReorganize
2 parents b55f68b + 11150c0 commit d61efa6

File tree

22 files changed

+420
-442
lines changed

22 files changed

+420
-442
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.25201.1",
6+
"version": "1.1.0-beta.25209.3",
77
"commands": [
88
"darc"
99
]

documentation/project-docs/breaking-change-guidelines.md

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,25 @@
22

33
This document provides guidelines for introducing new diagnostics or breaking changes to the .NET SDK, which configuration knobs are available, what criteria should guide the decision around severity, timeline for introduction, and deprecation of diagnostics, and what steps are required by the .NET release process.
44

5+
## What is a breaking change in the .NET SDK?
6+
7+
A .NET SDK breaking change is when a customer upgrades to a newer .NET SDK, while changing nothing else in their environment, and experiences a disruption to their product build or execution.
8+
59
## General guidance
610

7-
In general, we want to make updating the .NET SDK as smooth as possible for developers. This extends to .NET tooling such as IDEs and code editors which may have a different release schedule and cadence. For example, the .NET 9 SDK (which was a new major version) was released with Visual Studio 17.12 (which was a new minor version). In this example, breaking changes in the .NET 9 SDK could disproportionally impact Visual Studio users who are expecting incremental, non-breaking, changes in the new minor version. Same applies to other IDEs and code editors from the wider .NET community.
11+
In general, we want to make updating the .NET SDK as smooth as possible for developers. This extends to updating .NET tooling such as IDEs and code editors which may have a different release schedule and cadence. For example, the .NET 9 SDK (which was a new major version) was released with Visual Studio 17.12 (which was a new minor version). In this example, breaking changes in the .NET 9 SDK could disproportionally impact Visual Studio users who are expecting incremental, non-breaking, changes in the new minor version. Same applies to other IDEs and code editors from the wider .NET community.
812

913
This means:
1014
* Introducing new changes in a staged/gradual way.
1115
* Tying new analyzers/diagnostics to a mechanism that requires explicit opt-in.
1216
* Providing a way to opt out of a change entirely.
1317

14-
## Kinds of .NET SDK breaking changes
15-
16-
There are many kinds of breaking changes that can ship in the .NET SDK, such as:
18+
## Examples of .NET SDK breaking changes
1719

1820
* New MSBuild warnings and errors (props/targets).
1921
* New NuGet warnings and errors.
2022
* For example, NuGet Audit.
21-
* Roslyn Analyzers and CodeFixes.
22-
* This includes trimming/ILLink analyzers and codefixes.
23+
* Changes to Roslyn Analyzers and CodeFixes that apply to existing TFMs.
2324
* Behavioral/implementation changes.
2425
* MSBuild engine changes like MSBuild Server.
2526
* Implementation changes for MSBuild Tasks.
@@ -77,9 +78,11 @@ This knob exists so that users can safely and consistently say "for whatever rea
7778

7879
### Tie potentially impactful changes to the target TFM
7980

80-
Changes that are expected to cause significant disruption should only be introduced behind the Target Framework knob. This ensures business continuity and allows developers to address changes needed as part of scheduled work to migrate a codebase to a new TFM.
81+
Changes that are expected to cause significant disruption should only be introduced behind the Target Framework knob. This ensures business continuity and allows developers to address changes needed as part of scheduled work to migrate a codebase to a new TFM. In general, new warnings/errors that only apply to a new TFM are not considered breaking changes.
8182

82-
Specific example: NuGet warnings for vulnerable transitive dependencies were introduced in the .NET 10 SDK only for applications targeting .NET 10 and higher.
83+
Examples:
84+
* NuGet warnings for vulnerable transitive dependencies were introduced in the .NET 10 SDK only for projects targeting .NET 10 and higher.
85+
* New Roslyn analyzers tied to a new target TFM.
8386

8487
## Required process for all .NET SDK breaking changes
8588

eng/Version.Details.xml

Lines changed: 194 additions & 194 deletions
Large diffs are not rendered by default.

eng/Versions.props

Lines changed: 72 additions & 72 deletions
Large diffs are not rendered by default.

eng/common/core-templates/job/publish-build-assets.yml

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,9 @@ parameters:
2929

3030
is1ESPipeline: ''
3131

32+
# Optional: 🌤️ or not the build has assets it wants to publish to BAR
33+
isAssetlessBuild: false
34+
3235
jobs:
3336
- job: Asset_Registry_Publish
3437

@@ -72,14 +75,15 @@ jobs:
7275
- checkout: self
7376
fetchDepth: 3
7477
clean: true
75-
76-
- task: DownloadPipelineArtifact@2
77-
displayName: Download Asset Manifests
78-
inputs:
79-
artifactName: AssetManifests
80-
targetPath: '$(Build.StagingDirectory)/AssetManifests'
81-
condition: ${{ parameters.condition }}
82-
continueOnError: ${{ parameters.continueOnError }}
78+
79+
- ${{ if eq(parameters.isAssetlessBuild, 'false') }}:
80+
- task: DownloadPipelineArtifact@2
81+
displayName: Download Asset Manifests
82+
inputs:
83+
artifactName: AssetManifests
84+
targetPath: '$(Build.StagingDirectory)/AssetManifests'
85+
condition: ${{ parameters.condition }}
86+
continueOnError: ${{ parameters.continueOnError }}
8387

8488
- task: NuGetAuthenticate@1
8589

@@ -92,6 +96,7 @@ jobs:
9296
scriptPath: $(Build.SourcesDirectory)/eng/common/sdk-task.ps1
9397
arguments: -task PublishBuildAssets -restore -msbuildEngine dotnet
9498
/p:ManifestsPath='$(Build.StagingDirectory)/AssetManifests'
99+
/p:IsAssetlessBuild=${{ parameters.isAssetlessBuild }}
95100
/p:MaestroApiEndpoint=https://maestro.dot.net
96101
/p:OfficialBuildId=$(Build.BuildNumber)
97102
condition: ${{ parameters.condition }}
@@ -124,7 +129,7 @@ jobs:
124129
publishLocation: Container
125130
artifactName: ReleaseConfigs
126131

127-
- ${{ if eq(parameters.publishAssetsImmediately, 'true') }}:
132+
- ${{ if or(eq(parameters.publishAssetsImmediately, 'true'), eq(parameters.isAssetlessBuild, 'true')) }}:
128133
- template: /eng/common/core-templates/post-build/setup-maestro-vars.yml
129134
parameters:
130135
BARBuildId: ${{ parameters.BARBuildId }}
@@ -145,6 +150,7 @@ jobs:
145150
-WaitPublishingFinish true
146151
-ArtifactsPublishingAdditionalParameters '${{ parameters.artifactsPublishingAdditionalParameters }}'
147152
-SymbolPublishingAdditionalParameters '${{ parameters.symbolPublishingAdditionalParameters }}'
153+
-SkipAssetsPublishing '${{ parameters.isAssetlessBuild }}'
148154
149155
- ${{ if eq(parameters.enablePublishBuildArtifacts, 'true') }}:
150156
- template: /eng/common/core-templates/steps/publish-logs.yml

eng/common/core-templates/post-build/post-build.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,11 @@ parameters:
6060
artifactNames: ''
6161
downloadArtifacts: true
6262

63+
- name: isAssetlessBuild
64+
type: boolean
65+
displayName: Is Assetless Build
66+
default: false
67+
6368
# These parameters let the user customize the call to sdk-task.ps1 for publishing
6469
# symbols & general artifacts as well as for signing validation
6570
- name: symbolPublishingAdditionalParameters
@@ -320,3 +325,4 @@ stages:
320325
-RequireDefaultChannels ${{ parameters.requireDefaultChannels }}
321326
-ArtifactsPublishingAdditionalParameters '${{ parameters.artifactsPublishingAdditionalParameters }}'
322327
-SymbolPublishingAdditionalParameters '${{ parameters.symbolPublishingAdditionalParameters }}'
328+
-SkipAssetsPublishing '${{ parameters.isAssetlessBuild }}'

eng/common/post-build/publish-using-darc.ps1

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ param(
66
[Parameter(Mandatory=$true)][string] $WaitPublishingFinish,
77
[Parameter(Mandatory=$false)][string] $ArtifactsPublishingAdditionalParameters,
88
[Parameter(Mandatory=$false)][string] $SymbolPublishingAdditionalParameters,
9-
[Parameter(Mandatory=$false)][string] $RequireDefaultChannels
9+
[Parameter(Mandatory=$false)][string] $RequireDefaultChannels,
10+
[Parameter(Mandatory=$false)][string] $SkipAssetsPublishing
1011
)
1112

1213
try {
@@ -39,6 +40,10 @@ try {
3940
$optionalParams.Add("--default-channels-required") | Out-Null
4041
}
4142

43+
if ("true" -eq $SkipAssetsPublishing) {
44+
$optionalParams.Add("--skip-assets-publishing") | Out-Null
45+
}
46+
4247
& $darc add-build-to-channel `
4348
--id $buildId `
4449
--publishing-infra-version $PublishingInfraVersion `

eng/pipelines/templates/stages/vmr-validation.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ stages:
8181
- job: ValidateInstallers_Linux_arm64
8282
displayName: Validate Installers - Linux arm64
8383
pool: ${{ parameters.pool_LinuxArm64 }}
84-
timeoutInMinutes: 30
84+
timeoutInMinutes: 60
8585
steps:
8686
- template: ../steps/vmr-validate-installers.yml
8787
parameters:

eng/pipelines/templates/steps/vmr-validate-installers.yml

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -31,17 +31,12 @@ steps:
3131

3232
- ${{ if eq(parameters.OS, 'Linux') }}:
3333
- script: |
34-
extraBuildProperties="/p:TestRpmPackages=true"
35-
if [[ '${{ parameters.targetArchitecture }}' == 'x64' ]]; then
36-
# At the moment Deb packages are only available for x64
37-
extraBuildProperties="$extraBuildProperties /p:TestDebPackages=true"
38-
fi
39-
4034
./build.sh \
4135
--ci \
4236
-t \
4337
--projects test/Microsoft.DotNet.Installer.Tests/Microsoft.DotNet.Installer.Tests.csproj \
44-
$extraBuildProperties
38+
/p:TestRpmPackages=true \
39+
/p:TestDebPackages=true
4540
displayName: Validate installer packages
4641
workingDirectory: $(Build.SourcesDirectory)
4742

global.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414
}
1515
},
1616
"msbuild-sdks": {
17-
"Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.25208.5",
18-
"Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.25208.5",
17+
"Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.25209.3",
18+
"Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.25209.3",
1919
"Microsoft.Build.NoTargets": "3.7.0",
2020
"Microsoft.Build.Traversal": "3.4.0"
2121
}

0 commit comments

Comments
 (0)