Skip to content

Commit

Permalink
Merge branch 'main' into merge/vs17.13-to-main
Browse files Browse the repository at this point in the history
  • Loading branch information
SimaTian authored Jan 13, 2025
2 parents 79afe99 + bfa266d commit 1cae64a
Show file tree
Hide file tree
Showing 73 changed files with 621 additions and 255 deletions.
4 changes: 2 additions & 2 deletions .config/tsaoptions.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
"instanceUrl": "https://devdiv.visualstudio.com/",
"template": "TFSDEVDIV",
"projectName": "DEVDIV",
"areaPath": "DevDiv\\NET Tools\\MSBuild",
"areaPath": "DevDiv\\NET Tools Prague\\MSBuild",
"iterationPath": "DevDiv",
"notificationAliases": [ "msbtm@microsoft.com" ],
"repositoryName": "MSBuild",
"codebaseName": "MSBuild"
}
}
23 changes: 20 additions & 3 deletions azure-pipelines/vs-insertion-experimental.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,23 @@ resources:
name: 1ESPipelineTemplates/1ESPipelineTemplates
ref: refs/tags/release

parameters:
- name: TargetBranch
type: string
default: main
displayName: 'Insertion Target Branch (select for manual insertion)'
values:
- main
- rel/d17.14
- rel/d17.13
- rel/d17.12
- rel/d17.11
- rel/d17.10
- rel/d17.8
- rel/d17.6
- rel/d17.3
- rel/d17.0

variables:
- name: TeamName
value: msbuild
Expand All @@ -29,7 +46,7 @@ variables:
- name: ArtifactPackagesPath
value: $(Build.ArtifactStagingDirectory)/PackageArtifacts

- name: MSBuildPackagePattern
- name: MSBuildPackagePattern
value: '$(ArtifactPackagesPath)/Microsoft.Build.*.nupkg'
- name: StringToolsPackagePattern
value: '$(ArtifactPackagesPath)/Microsoft.NET.StringTools*.nupkg'
Expand Down Expand Up @@ -118,12 +135,12 @@ extends:
LinkWorkItemsToPR: true
TeamName: $(TeamName)
TeamEmail: $(TeamEmail)
TargetBranch: main
TargetBranch: ${{ parameters.TargetBranch }}
InsertionPayloadName: $(InsertPayloadName)
PackagePropsValues: VS.ExternalAPIs.MSBuild=$(MSBuild_ExtApisPackageVersion);Microsoft.Build=$(MicrosoftNETStringToolsPackageVersion);Microsoft.Build.Framework=$(MicrosoftNETStringToolsPackageVersion);Microsoft.Build.Tasks.Core=$(MicrosoftNETStringToolsPackageVersion);Microsoft.Build.Utilities.Core=$(MicrosoftNETStringToolsPackageVersion);Microsoft.NET.StringTools=$(MicrosoftNETStringToolsPackageVersion)
InsertionDescription: $(InsertDescription)
ComponentJsonValues: $(InsertJsonValues)
DefaultConfigValues: $(InsertConfigValues)
InsertionReviewers: MSBuild
CustomScriptExecutionCommand: $(InsertCustomScriptExecutionCommand)
InsertionBuildPolicy: Request Perf DDRITs
InsertionBuildPolicy: Request Perf DDRITs
13 changes: 7 additions & 6 deletions documentation/release-checklist.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@

## At release time
Before starting the process:
- [ ] If the release is being cut more than a few days before the VS-side snap, run insertions manually OR redirect MSBuild release branch
- [ ] If the release is being cut more than a few days before the VS-side snap, run insertions manually OR redirect MSBuild release branch
- [ ] Disable scheduled run of [MSBuild VS Insertion pipeline](https://devdiv.visualstudio.com/DevDiv/_build?definitionId=24295) (our {{NEXT_VERSION}} builds don't have a place to go in VS yet) by: Edit -> ... -> Triggers -> add a schedule on a dead branch (this overrides the YAML defined once-per-day schedule for main). Manual pipeline run: select as input resource the to-be-inserted "MSBuild" pipeline run on branch `vs{{THIS_RELEASE_VERSION}}` and VS TargetBranch `main`.
OR
- [ ] If the release is being cut more than couple of weeks modify [YAML](https://github.com/dotnet/msbuild/tree/main/azure-pipelines/vs-insertion.yml) (and merge to affected MSBuild branches) of the [VS insertion pipeline](https://devdiv.visualstudio.com/DevDiv/_build?definitionId=24295) so that it schedules insertions from MSBuild `vs{{THIS_RELEASE_VERSION}}` to VS `main`. Keep scheduled daily insertions to simplify your workflow and exclude `vs{{THIS_RELEASE_VERSION}}` from triggering insertion on each commit.
Expand All @@ -23,11 +23,12 @@ OR
e.g.: `git push upstream 2e6f2ff7ea311214255b6b2ca5cc0554fba1b345:refs/heads/vs17.10` \
_(This is for the case where we create the branch too early and want it to be based actually on a different commit. If you waited until a good point in time with `main` in a clean state, just branch off and you are done. The branch should point to a good, recent spot, so the final-branding PR goes in on top of the right set of commits.)_
- [ ] Update the branch merge flow in `.config/git-merge-flow-config.jsonc` file to have the currently-in-servicing branches.
- [ ] Create {{NEXT_VERSION}} branding PR (in main) including public API baseline package version change: {{URL_OF_NEXT_VERSION_BRANDING_PR}}.
- [ ] Create {{NEXT_VERSION}} branding PR (in main) including public API baseline package version change: {{URL_OF_NEXT_VERSION_BRANDING_PR}}.
- In the file `eng/Versions.props` Update the `VersionPrefix` to `{{NEXT_VERSION}}` and `PackageValidationBaselineVersion` set to a latest internally available {{THIS_RELEASE_VERSION}} preview version in the [internal dnceng dotnet-tools feed](https://dev.azure.com/dnceng/internal/_artifacts/feed/dotnet-tools-internal). It might be needed to update `CompatibilitySuppressions.xml` files. See [this documentation](https://learn.microsoft.com/en-us/dotnet/fundamentals/apicompat/overview) for more details. You can update `CompatibilitySuppressions.xml` files by running
`dotnet pack MSBuild.Dev.slnf /p:ApiCompatGenerateSuppressionFile=true`.
`dotnet pack MSBuild.Dev.slnf /p:ApiCompatGenerateSuppressionFile=true`.
- [ ] When VS main snaps to {{THIS_RELEASE_VERSION}} and updates its version to {{NEXT_VERSION}}, modify the [MSBuild VS Insertion pipeline](https://devdiv.visualstudio.com/DevDiv/_build?definitionId=24295) YAML so that it flows from MSBuild main to VS main.
- [ ] Update AutoTargetBranch selection in the [YAML](https://github.com/dotnet/msbuild/tree/main/azure-pipelines/vs-insertion.yml) (add to parameters and make new AutoTargetBranch rule by copying it from existing ones) of the [MSBuild VS Insertion pipeline](https://devdiv.visualstudio.com/DevDiv/_build?definitionId=24295) to insert MSBuild `vs{{THIS_RELEASE_VERSION}}` to the corresponding VS branch `rel/d{{THIS_RELEASE_VERSION}}`.
- [ ] Update AutoTargetBranch selection in the [YAML](../azure-pipelines/vs-insertion.yml) (add to parameters and make new AutoTargetBranch rule by copying it from existing ones) of the [MSBuild VS Insertion pipeline](https://devdiv.visualstudio.com/DevDiv/_build?definitionId=24295) to insert MSBuild `vs{{THIS_RELEASE_VERSION}}` to the corresponding VS branch `rel/d{{THIS_RELEASE_VERSION}}`.
- [ ] Add `rel/d{{THIS_RELEASE_VERSION}}` case to TargetBranch parameter in [Experimental insertion](../azure-pipelines/vs-insertion-experimental.yml)
- [ ] Set scheduled insertion for main and remove exclusion of `vs{{THIS_RELEASE_VERSION}}` triggering on each commit if added earlier.
- [ ] Merge {{NEXT_VERSION}} branding PR

Expand Down Expand Up @@ -59,7 +60,7 @@ if it is not, `darc add-default-channel --channel "VS {{THIS_RELEASE_VERSION}}"

### Adjust pipelines / releases
- [ ] Fix OptProf data flow for the new vs{{THIS_RELEASE_VERSION}} branch
- [ ] Run the [official build](https://devdiv.visualstudio.com/DevDiv/_build?definitionId=9434) for vs{{THIS_RELEASE_VERSION}} without OptProf (set `SkipApplyOptimizationData` variable in 'Advanced options' section of the 'Run pipeline' menu to `true`) or alternatively with the latest Opt-Prof collected for the main branch (set `Optional OptProfDrop Override` to the drop path of the collected data, which could be found in the logs of the pipeline: Windows_NT -> Build -> search for `OptimizationData`).
- [ ] Run the [official build](https://devdiv.visualstudio.com/DevDiv/_build?definitionId=9434) for vs{{THIS_RELEASE_VERSION}} without OptProf (set `SkipApplyOptimizationData` variable in 'Advanced options' section of the 'Run pipeline' menu to `true`) or alternatively with the latest Opt-Prof collected for the main branch (set `Optional OptProfDrop Override` to the drop path of the collected data, which could be found in the logs of the pipeline: Windows_NT -> Build -> search for `OptimizationData`).
- [ ] Check that the [OptProf data collection](https://devdiv.visualstudio.com/DevDiv/_build?definitionId=17389) pipeline run is triggered for vs{{THIS_RELEASE_VERSION}}. If not, run manually ('Run pipeline' in upper right)
- [ ] Run the [official build](https://devdiv.visualstudio.com/DevDiv/_build?definitionId=9434) for vs{{THIS_RELEASE_VERSION}} with no extra customization - OptProf should succeed now
- [ ] Restore [MSBuild VS Insertion pipeline](https://devdiv.visualstudio.com/DevDiv/_build?definitionId=24295) to the default [YAML](https://github.com/dotnet/msbuild/tree/main/azure-pipelines/vs-insertion.yml) defined schedule, by removing all triggers from Edit -> ... -> Triggers.
Expand Down Expand Up @@ -94,7 +95,7 @@ Timing based on the [(Microsoft-internal) release schedule](https://dev.azure.co
- Microsoft.Build.Tasks.Core.{{THIS_RELEASE_EXACT_VERSION}}.nupkg
- Microsoft.NET.StringTools.{{THIS_RELEASE_EXACT_VERSION}}.nupkg
- Microsoft.Build.Templates.{{THIS_RELEASE_EXACT_VERSION}}.nupkg

**Note:** Microsoft.Build.Conversion.Core and Microsoft.Build.Engine are **not** part of the list. Microsoft.Build.Templates **is** part of the list. Those 3 packages are a difference to the historic publishing list.

- [ ] Publish docs: submit reference request at https://aka.ms/publishondocs
Expand Down
1 change: 1 addition & 0 deletions documentation/wiki/ChangeWaves.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ Opt-out is a better approach for us because we'd likely get limited feedback whe

## How do they work?
The opt-out comes in the form of setting the environment variable `MSBUILDDISABLEFEATURESFROMVERSION` to the Change Wave (or version) that contains the feature you want **disabled**. This version happens to be the version of MSBuild that the features were developed for. See the mapping of change waves to features below.
The opt-out should be just a *temporary* workaround for a problem - as the feature will anyways become permanent eventually. For this reason - **please make sure to create or upvote a bug describing the issue making you opt-out**.

## When do they become permanent?
A wave of features is set to "rotate out" (i.e. become standard functionality) two bands after its release. For example, wave 16.8 stayed opt-out through wave 16.10, becoming standard functionality when wave 17.0 is introduced.
Expand Down
2 changes: 0 additions & 2 deletions eng/BootStrapMsBuild.targets
Original file line number Diff line number Diff line change
Expand Up @@ -239,6 +239,4 @@

</Target>

<Import Project=".\TestAssets.targets" />

</Project>
2 changes: 1 addition & 1 deletion eng/SourceBuildPrebuiltBaseline.xml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
<UsagePattern IdentityGlob="System.Text.Json/*8.0.5*" />
<UsagePattern IdentityGlob="System.Threading.Tasks.Dataflow/*8.0.0*" />
<UsagePattern IdentityGlob="System.Formats.Asn1/*8.0.1*" />
<UsagePattern IdentityGlob="Microsoft.VisualStudio.SolutionPersistence/*1.0.9*" />
<UsagePattern IdentityGlob="Microsoft.VisualStudio.SolutionPersistence/*1.0.*" />
</IgnorePatterns>
<Usages>
</Usages>
Expand Down
37 changes: 0 additions & 37 deletions eng/TestAssets.targets

This file was deleted.

20 changes: 10 additions & 10 deletions eng/Version.Details.xml
Original file line number Diff line number Diff line change
Expand Up @@ -71,23 +71,23 @@
</Dependency>
</ProductDependencies>
<ToolsetDependencies>
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="9.0.0-beta.24572.2">
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="9.0.0-beta.24623.3">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>b41381d5cd633471265e9cd72e933a7048e03062</Sha>
<Sha>e0e05154656254a735ebf19ffa5a37a8b915039b</Sha>
</Dependency>
<!-- Intermediate is necessary for source build. -->
<Dependency Name="Microsoft.SourceBuild.Intermediate.arcade" Version="9.0.0-beta.24572.2">
<Dependency Name="Microsoft.SourceBuild.Intermediate.arcade" Version="9.0.0-beta.24623.3">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>b41381d5cd633471265e9cd72e933a7048e03062</Sha>
<Sha>e0e05154656254a735ebf19ffa5a37a8b915039b</Sha>
<SourceBuild RepoName="arcade" ManagedOnly="true" />
</Dependency>
<Dependency Name="Microsoft.DotNet.XliffTasks" Version="9.0.0-beta.24572.2">
<Dependency Name="Microsoft.DotNet.XliffTasks" Version="9.0.0-beta.24623.3">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>b41381d5cd633471265e9cd72e933a7048e03062</Sha>
<Sha>e0e05154656254a735ebf19ffa5a37a8b915039b</Sha>
</Dependency>
<Dependency Name="NuGet.Build.Tasks" Version="6.13.0-rc.106">
<Dependency Name="NuGet.Build.Tasks" Version="6.13.0-rc.108">
<Uri>https://github.com/nuget/nuget.client</Uri>
<Sha>949031c79ea7f5c15b59f31e26d5355fb23795ca</Sha>
<Sha>89781a27ff255553766e4b9403ea7947072b4335</Sha>
</Dependency>
<Dependency Name="Microsoft.Net.Compilers.Toolset" Version="4.13.0-3.24614.4">
<Uri>https://github.com/dotnet/roslyn</Uri>
Expand All @@ -98,9 +98,9 @@
<Sha>633f34af4fe019eaf0c2e830bdc07c891ecd49f7</Sha>
<SourceBuild RepoName="roslyn" ManagedOnly="true" />
</Dependency>
<Dependency Name="Microsoft.DotNet.XUnitExtensions" Version="9.0.0-beta.24572.2">
<Dependency Name="Microsoft.DotNet.XUnitExtensions" Version="9.0.0-beta.24623.3">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>b41381d5cd633471265e9cd72e933a7048e03062</Sha>
<Sha>e0e05154656254a735ebf19ffa5a37a8b915039b</Sha>
</Dependency>
</ToolsetDependencies>
</Dependencies>
6 changes: 3 additions & 3 deletions eng/Versions.props
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
</PropertyGroup>
<PropertyGroup>
<MicrosoftIORedistVersion>6.0.1</MicrosoftIORedistVersion>
<MicrosoftVisualStudioSolutionPersistenceVersion>1.0.9</MicrosoftVisualStudioSolutionPersistenceVersion>
<MicrosoftVisualStudioSolutionPersistenceVersion>1.0.28</MicrosoftVisualStudioSolutionPersistenceVersion>
<SystemCollectionsImmutableVersion>8.0.0</SystemCollectionsImmutableVersion>
<SystemConfigurationConfigurationManagerVersion>8.0.0</SystemConfigurationConfigurationManagerVersion>
<SystemFormatsAsn1Version>8.0.1</SystemFormatsAsn1Version>
Expand All @@ -61,9 +61,9 @@
Otherwise, this version of dotnet will not be installed and the build will error out. -->
<DotNetCliVersion>$([System.Text.RegularExpressions.Regex]::Match($([System.IO.File]::ReadAllText('$(MSBuildThisFileDirectory)..\global.json')), '"dotnet": "([^"]*)"').Groups.get_Item(1))</DotNetCliVersion>
<MicrosoftCodeAnalysisCollectionsVersion>4.2.0-1.22102.8</MicrosoftCodeAnalysisCollectionsVersion>
<MicrosoftDotNetXUnitExtensionsVersion>9.0.0-beta.24572.2</MicrosoftDotNetXUnitExtensionsVersion>
<MicrosoftDotNetXUnitExtensionsVersion>9.0.0-beta.24623.3</MicrosoftDotNetXUnitExtensionsVersion>
<MicrosoftNetCompilersToolsetVersion>4.13.0-3.24614.4</MicrosoftNetCompilersToolsetVersion>
<NuGetBuildTasksVersion>6.13.0-rc.106</NuGetBuildTasksVersion>
<NuGetBuildTasksVersion>6.13.0-rc.108</NuGetBuildTasksVersion>
</PropertyGroup>
<PropertyGroup Condition="!$(TargetFramework.StartsWith('net4'))">
<BootstrapSdkVersion>9.0.200-preview.0.24603.3</BootstrapSdkVersion>
Expand Down
Loading

0 comments on commit 1cae64a

Please sign in to comment.