extensions icon indicating copy to clipboard operation
extensions copied to clipboard

Checklist For .NET Extensions 8.7 Release (and 9.0 preview 6)

Open joperezr opened this issue 1 year ago • 0 comments

I'll be out on vacation for the 8.7 release, so this time @RussKie has offered to help performing the release activities. This issue will help as a guide of the steps that need to be taken in order to ship a new release of .NET Extensions.

Shared steps for 8.7 and 9.0 preview 6

  • [x] Once the snap has happened, use the same commit in order to make sure that dev branch is synced to that commit (i.e., there are no pending tracking merges from main to dev)
  • [x] Snap contents of main branch by creating a new release/8.7 branch on 2nd July PST
  • [x] Snap contents of dev branch by creating a new 9.0-preview6 branch on 2nd July PST
  • [x] Send branding PR to main 8.8 --> https://github.com/dotnet/extensions/pull/5260
  • [x] Send branding PR to dev 9.0-preview7 --> https://github.com/dotnet/extensions/pull/5261
  • [x] Using https://aka.ms/release-tracker (requires authentication) get the correct BARIDs for both 8.0.7 and 9.0-preview6 releases by downloading the manifests/manifest.json artifact of each of those releases, and then searching for the BARID for the aspnetcore repo. Screenshot 2024-06-28 094805
  • [x] Keep track of the used BARIDs
    • 8.7: 229122
    • 9.0p6: 230440

For 9.0 preview 6 release

  • [x] (Do it on GitHub) Send one more PR against release/9.0-preview6 branch that has the changes that are generated after locally running darc update-dependencies --id <BARID_FOR_release/9.0-preview6> which will ensure that the packages we generate will depend on the packages that will get released for both runtime and aspnetcore. --> https://github.com/dotnet/extensions/pull/5262
  • [x] Once the above PR is merged, the resulting build will be signed and will be the final build to be released with 9.0-preview6

For 8.7 release

  • [x] (Do it in AzDO) Create an internal branch for the 8.7 release: internal/release/8.7 using the public branch as base release/8.7
  • [x] Locally run dotnet update-dependencies --id <BARID_FOR_release/8.0.7> and send an internal PR with the changes against the internal branch internal/release/8.7 --> https://dev.azure.com/dnceng/internal/_git/dotnet-extensions/pullrequest/40899
  • [x] Once that is merged, the resulting build will be signed and will be the final build for 8.7

On release day (9th July PST)

  • [ ] Check https://aka.ms/release-tracker and validate the used BARIDs haven't changed.
  • [ ] #5250
  • [ ] Once he gives the thumbs up that packages from runtime and aspnetcore have shipped, then you'll be cleared to ship the 8.7 and 9.0 preview 6 packages. For this, all you need is to get an apiKey from NuGet.org (I'll share these steps separately) and then from a cmd you can run the following command: for /f %x in ('dir /s /b *.nupkg') do dotnet nuget push %x -k <your_api_key> -s https://api.nuget.org/v3/index.json. This will loop through all of the contents of the sub folders, grab all the nuget packages, and push them to nuget.org.
  • [ ] After packages are released, merge internal changes into main branch (no squash).
  • [ ] Tag both of the releases, and for the 8.7 one create a GH release with the auto-generated notes.

joperezr avatar Jun 27 '24 22:06 joperezr