msbuild icon indicating copy to clipboard operation
msbuild copied to clipboard

Release 17.11

Open AR-May opened this issue 1 year ago • 0 comments

MSBuild Release Checklist 17.11

At any time

  • [x] Create a new issue to track the release checklist, with this checklist copied into the issue.
  • [x] Create vs17.11 branch
  • [x] Create darc channel for VS 17.12 if it doesn't already exist
    darc add-channel --name "VS 17.12"
  • [x] Ping internal "First Responders" Teams channel to get the new channel made available as a promotion target (e.g. dotnet/arcade#12150): https://github.com/dotnet/arcade/pull/14860

At release time

  • [x] If the release is being cut more than a few days before the VS-side snap, do these two steps. Otherwise check them off.
    • [x] Modify the VS insertion so that it flows from MSBuild vs17.11 to VS main in the MSBuild-release-branch release definition. Alternatively, if the release being cut no more than couple of weeks, disable the scheduled releases and create releases from vs17.11 manually until the VS-side snap: Edit -> Schedule set under Artifacts -> disable toggle AND
    • [x] Disable automated run of the MSBuild-main-branch release definition (because our 17.12 builds don't have a place to go in VS yet)
  • [x] Remove the main to old release channel (17.11) default channel
    darc delete-default-channel --repo https://github.com/dotnet/msbuild --branch main --channel "VS 17.11"
  • [x] Associate the main branch with the next release channel
    darc add-default-channel --channel "VS 17.11" --branch main --repo https://github.com/dotnet/msbuild
  • [x] Check subscriptions for the forward-looking channel VS 17.12 and update as necessary (for instance, SDK's main branch should usually be updated, whereas release branches often should not be
    darc get-subscriptions --exact --source-repo https://github.com/dotnet/msbuild --channel "VS 17.11"
  • [x] Update channel VS 17.11 to VS 17.12 for the sdk main subscription and any others from the previous step darc update-subscription --id sdk_main_branch_id
  • [x] Ensure that the current release channel VS 17.11 is associated with the correct release branch
    darc get-default-channels --source-repo https://github.com/dotnet/msbuild --branch vs17.11
    if it is not, darc add-default-channel --channel "VS 17.11" --branch vs17.11 --repo https://github.com/dotnet/msbuild
  • [x] If the branch was created before the fork: fast-forward merge the correct commit (the one that is currently inserted to VS main) to the vs17.11 branch
    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.)
  • [x] Update the branch merge flow in .config/git-merge-flow-config.jsonc file to have the currently-in-servicing branches.
  • [x] Fix OptProf data flow for the new vs17.11 branch
    • [x] Run the official build for vs17.11 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).
    • [x] Check that the OptProf data collection pipeline run is triggered for vs17.11. If not, run manually ('Run pipeline' in upper right)
    • [x] Run the official build for vs17.11 with no extra customization - OptProf should succeed now
  • [x] Create 17.12 branding PR (in main) including public API baseline package version change: https://github.com/dotnet/msbuild/pull/10268. In the file eng/Versions.props Update the VersionPrefix to 17.12 and PackageValidationBaselineVersion set to a latest internally available 17.11 preview version in the internal dnceng dotnet-tools feed. It might be needed to update CompatibilitySuppressions.xml files.
  • [x] Create 17.11 localization ticket: https://aka.ms/ceChangeLocConfig (requesting to switch localization from 17.10 to 17.11): (https://ceapex.visualstudio.com/CEINTL/_workitems/edit/980648/) (DONE)
  • [x] Enable 17.11 localization - by setting EnableReleaseOneLocBuild to true
  • [x] Disable 17.10 localization - by setting EnableReleaseOneLocBuild to false. Update the comment on the same line.
  • [x] Merge 17.12 branding PR
  • [x] Create and merge a PR in main to update a localization version comment in setting EnableReleaseOneLocBuild to set up the merge conflict when this line will be updated in the release branch.
  • [x] When VS main snaps to 17.11 and updates its version to 17.12, turn on / modify the VS insertion so that it flows from MSBuild main to VS main.
  • [x] Update the release-branch insertion release definition to have InsertTargetBranch rel/d17.11.
  • [x] Turn the release pipeline back on.
  • [x] Prepare final branding PR for vs17.11: https://github.com/dotnet/msbuild/pull/10270
  • [x] Merge final branding to vs17.11 branch
  • [ ] Update perfstar MSBuild insertions configuration: example PR: {{URL_OF_PERFSTAR_PR}}
  • [x] Note down the build (will be helpful for requesting nuget packages publishing): https://dev.azure.com/devdiv/DevDiv/_build/results?buildId=9759640&view=results
  • [x] Get M2 or QB approval as necessary per the VS schedule
  • [x] Merge to VS (babysit the automatically generated VS insertion PR https://devdiv.visualstudio.com/DevDiv/_git/VS/pullrequests for the MSBuild commit noted in above step): https://dev.azure.com/devdiv/DevDiv/_git/VS/pullrequest/559454

ASAP On/After GA:

Timing based on the (Microsoft-internal) release schedule.

  • [x] Push packages to nuget.org (not currently automated, contact dnceng - search "Publish MSBuild 17.6 to NuGet.org" email subject for template).
  • [x] Update the PackageValidationBaselineVersion to the latest released version (17.11.0) - this might require temporary addition of the build artifacts feed as the new version is not yet added to the official feeds (this is post release). This can trigger a high severity CG error (https://eng.ms/docs/cloud-ai-platform/devdiv/one-engineering-system-1es/1es-docs/secure-supply-chain/how-to-securely-configure-package-source-files) - however it should be fine to keep this temporary feed untill the release.
  • [ ] Publish docs: submit reference request at https://aka.ms/publishondocs
    • Click on the link labeled Request – Reference Publishing
    • You can use existing ticket as a reference
  • [x] Remove the temporarily added build feed from nuget.config if it was added in the Update the PackageValidationBaselineVersion step
  • [x] Update main subscriptions to the new channel (this can be done before or after release - depending on when the source repos from our previous - VS 17.11 - channle start to publish in the next - VS 17.12 - channel)
    darc get-subscriptions --exact --target-repo https://github.com/dotnet/msbuild --target-branch main
  • [x] Create the 17.11 release
    • [x] Create tag (can be done upfront)
    git checkout <commit noted above>
    git tag v17.11.3
    git push upstream v17.11.3
    
    • [x] Create Release in Github with Create Release from Tag GH option (https://github.com/dotnet/msbuild/releases/new?tag=v17.9.3) - the release notes can be prepopulated (Generate Release Notes)

AR-May avatar Jun 17 '24 08:06 AR-May