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] 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.
[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
[ ] 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.
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
dev
branch is synced to that commit (i.e., there are no pending tracking merges from main to dev)main
branch by creating a newrelease/8.7
branch on 2nd July PSTdev
branch by creating a new9.0-preview6
branch on 2nd July PSTmain
8.8
--> https://github.com/dotnet/extensions/pull/5260dev
9.0-preview7
--> https://github.com/dotnet/extensions/pull/5261manifests/manifest.json
artifact of each of those releases, and then searching for the BARID for the aspnetcore repo.For 9.0 preview 6 release
release/9.0-preview6
branch that has the changes that are generated after locally runningdarc 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/5262For 8.7 release
internal/release/8.7
using the public branch as baserelease/8.7
dotnet update-dependencies --id <BARID_FOR_release/8.0.7>
and send an internal PR with the changes against the internal branchinternal/release/8.7
--> https://dev.azure.com/dnceng/internal/_git/dotnet-extensions/pullrequest/40899On release day (9th July PST)
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.main
branch (no squash).