Skip to content

Commit f3ad214

Browse files
authored
Update release checklists (#4232)
1 parent 2d89c15 commit f3ad214

File tree

5 files changed

+41
-64
lines changed

5 files changed

+41
-64
lines changed

.github/ISSUE_TEMPLATE/releases/dotnet-monitor-release.md

Lines changed: 0 additions & 25 deletions
This file was deleted.

.github/ISSUE_TEMPLATE/releases/dotnet-release.md

Lines changed: 29 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -4,28 +4,33 @@
44

55
_The set of .NET versions that are being released as a unit._
66

7-
* runtime/SDK
7+
* .NET <major/minor version>
8+
* Runtime: <full version>
9+
* ASP.NET Core: <full version>
10+
* SDK: <full version>
11+
* Monitor: <full version>
812

913
## 1. Main Branch Tasks
1014

11-
1. - [ ] Merge appropriate commits from nightly branch. Things to check:
15+
1. - [ ] Merge appropriate commits from nightly branch on local repo. Identify what to merge by checking [commit history](https://github.com/dotnet/dotnet-docker/commits/nightly) since the last release. Things to check:
1216
- [ ] New/EOL distro
1317
- [ ] Infrastructure changes
1418
- [ ] PowerShell version
1519
- [ ] Check for additional changes by diffing the main and nightly branches
1620
- [ ] <add link to PR/commit>
17-
1. - [ ] Check whether a change has been made to a Dockerfile that is shared by multiple .NET versions. If a change has been made and the .NET versions that share that file are not being released at the same time, define a separate Dockerfile to isolate the change to the .NET version that's being released. Conversely, after a shared Dockerfile has diverged in such a way, it should be combined again into a shared Dockerfile when the other other .NET version is released. Shared Dockerfiles to check:
18-
- [ ] 3.1 runtime-deps shared with 6.0, and 7.0
19-
1. - [ ] Wait for .NET archive files (.zip, .tar.gz) to be available at blob storage location
20-
1. - [ ] Run `update-dependencies` tool to update all the necessary files to reflect the specified .NET versions (run this command for each version being released):
21+
2. - [ ] Check whether a change has been made to a Dockerfile that is shared by multiple .NET versions. If a change has been made and the .NET versions that share that file are not being released at the same time, define a separate Dockerfile to isolate the change to the .NET version that's being released. Conversely, after a shared Dockerfile has diverged in such a way, it should be combined again into a shared Dockerfile when the other other .NET version is released. Shared Dockerfiles to check:
22+
- [ ] 6.0 runtime-deps shared with 7.0
23+
3. - [ ] Run `update-dependencies` tool to update all the necessary files to reflect the specified .NET versions (run this command for each version being released):
2124
- [ ] `./eng/Set-DotnetVersions.ps1 -ProductVersion <major/minor version> -SdkVersion <sdk> -RuntimeVersion <runtime> -AspnetVersion <aspnet>`
22-
1. - [ ] Inspect generated changes for correctness
23-
1. - [ ] Commit generated changes
24-
1. - [ ] Create PR
25-
1. - [ ] Get PR signoff
26-
1. - [ ] Merge PR
27-
1. - [ ] Wait for changes to be mirrored to internal [dotnet-docker repo](https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet-docker) (internal MSFT link)
28-
1. - [ ] Build images - Queue build stage of [dotnet-docker pipeline](https://dev.azure.com/dnceng/internal/_build?definitionId=373) (internal MSFT link) with variables:
25+
- [ ] .NET Monitor has its own major/minor versioning scheme, so it is updated separately:
26+
- [ ] `./eng/Set-DotnetVersions.ps1 -ProductVersion <major/minor version> -MonitorVersion <version>`
27+
4. - [ ] Wait for .NET archive files (.zip, .tar.gz) to be available at blob storage location
28+
5. - [ ] Inspect generated changes for correctness
29+
6. - [ ] Create PR
30+
7. - [ ] Get PR approval
31+
8. - [ ] Merge PR
32+
9. - [ ] Wait for changes to be mirrored to internal [dotnet-docker repo](https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet-docker) (internal MSFT link)
33+
10. - [ ] Run [dotnet-docker pipeline](https://dev.azure.com/dnceng/internal/_build?definitionId=373) (internal MSFT link) with variables:
2934

3035
All releases:
3136

@@ -34,29 +39,28 @@ _The set of .NET versions that are being released as a unit._
3439
Servicing release:
3540

3641
noCache: true
37-
1. - [ ] Wait for NuGet packages to be published during release tic-toc
38-
1. - [ ] Test and publish images - Queue build of [dotnet-docker pipeline](https://dev.azure.com/dnceng/internal/_build?definitionId=373) (internal MSFT link) with variables:
42+
11. - [ ] Confirm successful pipeline run
43+
12. - [ ] Wait for NuGet packages to be published during release tic-toc
44+
13. - [ ] Run [dotnet-docker pipeline](https://dev.azure.com/dnceng/internal/_build?definitionId=373) (internal MSFT link) with variables:
3945

4046
All releases:
4147

4248
stages: test;publish
4349
sourceBuildId: <Build ID from the build stage>
44-
1. - [ ] Confirm READMEs have been updated in [Docker Hub](https://hub.docker.com/_/microsoft-dotnet)
50+
14. - [ ] Confirm successful pipeline run
4551

4652
## 2. Sample Images (Not needed for Preview-only release)
4753

48-
1. - [ ] Confirm build for [dotnet-docker-samples](https://dev.azure.com/dnceng/internal/_build?definitionId=376) (internal MSFT link) was queued. This will be queued automatically by [dotnet-docker-tools-check-base-image-updates](https://dev.azure.com/dnceng/internal/_build?definitionId=536) when it detects that the product images have been updated (detection runs on a schedule). Alternatively, you can manually queue the samples build.
49-
1. - [ ] Confirm sample images have been ingested by MCR
50-
1. - [ ] Confirm README has been updated in Docker Hub for [microsoft-dotnet-samples](https://hub.docker.com/_/microsoft-dotnet-samples/)
54+
1. - [ ] Confirm run for [dotnet-docker-samples pipeline](https://dev.azure.com/dnceng/internal/_build?definitionId=376) (internal MSFT link) was queued. This will be queued automatically by [dotnet-docker-tools-check-base-image-updates](https://dev.azure.com/dnceng/internal/_build?definitionId=536) when it detects that the product images have been updated (detection runs on a schedule). Alternatively, you can manually queue the samples build.
55+
1. - [ ] Confirm successful pipeline run
5156

5257
## 3. Nightly Branch Tasks (Not needed for Preview-only release)
5358

54-
1. - [ ] Merge main branch to nightly
55-
1. - [ ] Run the same `update-dependencies` command(s) in nightly that were run for the main branch
59+
1. - [ ] Merge main branch to nightly on local repo
60+
1. - [ ] Run the same `Set-DotnetVersions.ps1` command(s) in nightly that were run for the main branch
5661
1. - [ ] Inspect generated changes for correctness
57-
1. - [ ] Commit generated changes
5862
1. - [ ] Create PR
59-
1. - [ ] Get PR signoff
63+
1. - [ ] Get PR approval
6064
1. - [ ] Merge PR
61-
1. - [ ] Wait for automatically queued CI build to finish on [dotnet-docker-nightly pipeline](https://dev.azure.com/dnceng/internal/_build?definitionId=359) (internal MSFT link)
62-
1. - [ ] Confirm READMEs have been updated in [Docker Hub](https://hub.docker.com/_/microsoft-dotnet)
65+
1. - [ ] Confirm CI build is automatically run for [dotnet-docker-nightly pipeline](https://dev.azure.com/dnceng/internal/_build?definitionId=359) (internal MSFT link)
66+
1. - [ ] Confirm successful pipeline run

.github/ISSUE_TEMPLATE/releases/new-distro-release.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,4 +29,5 @@ Distro: &lt;name/version&gt;
2929
## Main Branch Tasks
3030

3131
1. - [ ] After the product teams have signed off on the new distro, merge these changes to the main branch as part of the [release process](dotnet-release.md) for the next .NET release
32+
- [ ] For Alpine, follow the [policy](https://github.com/dotnet/dotnet-docker/blob/main/documentation/supported-tags.md) to only update the floating `alpine` tag one month after the release of the new Alpine version. Since nightly will already have the floating tag updated, the initial release of the new Alpine version to main will need to account for this and keep it set to the older version for one month.
3233
1. - [ ] Create an announcement (example: [Alpine 3.10](https://github.com/dotnet/dotnet-docker/issues/1418)) unless the new distro is added only for pre-release versions in which the announcement would be incorporated in the pre-release notes.

.github/ISSUE_TEMPLATE/releases/new-windows-release.md

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ Windows version: &lt;version&gt;
66

77
1. - [ ] Ensure a ["New Windows Release" issue](https://github.com/dotnet/docker-tools/blob/main/.github/ISSUE_TEMPLATE/releases/new-windows-release.md) exists for docker-tools repo
88
1. - [ ] Copy the Dockerfiles of the most recent published Windows version for all supported .NET versions and place them in a version-specific folder under their respective variants (runtime, aspnet, sdk)
9-
1. - [ ] Modify the Dockerfiles as appropriate for any specific changes related to the new Windows version
9+
1. - [ ] Modify the Dockerfile templates if there are any specific changes needed that are related to the new Windows version
1010
1. - [ ] Update [manifest.json](https://github.com/dotnet/dotnet-docker/blob/nightly/manifest.json) to reference the new set of Dockerfiles with the appropriate tags
1111
1. - [ ] Update the [test data](https://github.com/dotnet/dotnet-docker/blob/nightly/tests/Microsoft.DotNet.Docker.Tests/TestData.cs) to include the new Windows version
1212
1. - [ ] Update the [tags metadata templates](https://github.com/dotnet/dotnet-docker/tree/main/eng/mcr-tags-metadata-templates) to include the new Windows version
@@ -16,16 +16,14 @@ Windows version: &lt;version&gt;
1616
1. - [ ] Test the images
1717
1. - [ ] Create a local VM of the new Windows version
1818
1. - [ ] Clone this repo with the above changes onto the VM
19-
1. - [ ] Run `.\build-and-test.ps1 -OS nanoserver-<VERSION>` to build and test your changes
20-
1. - [ ] Commit generated changes
19+
1. - [ ] Run `.\build-and-test.ps1 -OS nanoserver-<VERSION>` to build and test your changes for Nano Server
20+
1. - [ ] Run `.\build-and-test.ps1 -OS windowsservercore-<VERSION>` to build and test your changes for Windows Server Core
2121
1. - [ ] Create PR
2222
1. - [ ] Get PR signoff
23-
1. - [ ] Merge PR as part of the main branch [release process](dotnet-release.md) for the next .NET release
24-
1. - [ ] Wait for automatically queued CI build to finish on [dotnet-docker-nightly pipeline](https://dev.azure.com/dnceng/internal/_build?definitionId=359) (internal MSFT link)
25-
1. - [ ] Confirm READMEs have been updated in [Docker Hub](https://hub.docker.com/_/microsoft-dotnet)
23+
1. - [ ] Merge PR and build/publish as part of the main branch [release process](dotnet-release.md) for the next .NET release
2624
1. - [ ] Create an announcement (example: [Nano Server, version 20H2](https://github.com/dotnet/dotnet-docker/issues/2322))
2725
1. - [ ] Update the samples to reference the new Windows version:
28-
- [ ] [Nano Server sample Dockerfiles](https://github.com/dotnet/dotnet-docker/tree/main/samples)
26+
- [ ] [Nano Server and Windows Server Core sample Dockerfiles](https://github.com/dotnet/dotnet-docker/tree/main/samples)
2927
- [ ] [manifest.samples.json](https://github.com/dotnet/dotnet-docker/blob/main/manifest.samples.json)
3028

3129
## Nightly Branch Tasks

.github/ISSUE_TEMPLATE/releases/patch-tuesday-release.md

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,13 @@
55
1. - [ ] Run the [`Get-BaseImageStatus.ps1`](https://github.com/dotnet/dotnet-docker/blob/main/eng/common/Get-BaseImageStatus.ps1) script and wait until the Windows images have been updated as part of the Windows Patch Tuesday release process. This script will display when the dependent Windows images were last updated. Wait until all the images show that they have been recently updated. "Recently updated" amounts to be having been updated within the past week or so; images from a month ago should be considered to be the old version.
66

77
./eng/common/Get-BaseImageStatus.ps1 -Continuous
8-
1. - [ ] Queue build of [dotnet-docker pipeline](https://dev.azure.com/dnceng/internal/_build?definitionId=373) (internal MSFT link) with the following parameters:
8+
1. - [ ] Run [dotnet-docker pipeline](https://dev.azure.com/dnceng/internal/_build?definitionId=373) (internal MSFT link) with the following parameters:
99

1010
imageBuilder.pathArgs: --path '*nanoserver*' --path '*windowsservercore*'
11-
1. - [ ] Queue build of [dotnet-docker-nightly pipeline](https://dev.azure.com/dnceng/internal/_build?definitionId=359) (internal MSFT link) with the following parameters:
11+
1. - [ ] Confirm successful run of dotnet-docker pipeline
12+
1. - [ ] Run [dotnet-docker-nightly pipeline](https://dev.azure.com/dnceng/internal/_build?definitionId=359) (internal MSFT link) with the following parameters:
1213

1314
imageBuilder.pathArgs: --path '*nanoserver*' --path '*windowsservercore*'
14-
1. - [ ] Confirm `Last Modified` field has been updated in Docker Hub for [microsoft-dotnet](https://hub.docker.com/_/microsoft-dotnet)
15-
1. - [ ] Confirm build for [dotnet-docker-samples](https://dev.azure.com/dnceng/internal/_build?definitionId=376) (internal MSFT link) was queued. This will be queued automatically by [dotnet-docker-tools-check-base-image-updates](https://dev.azure.com/dnceng/internal/_build?definitionId=536) when it detects that the product images have been updated (detection runs on a schedule). Alternatively, you can manually queue the samples build.
16-
1. - [ ] Confirm sample images have been ingested by MCR
17-
1. - [ ] Confirm `Last Modified` field has been updated in Docker Hub for [microsoft-dotnet-samples](https://hub.docker.com/_/microsoft-dotnet-samples/)
18-
1. - [ ] Reply to .NET Release team with a status update email
15+
1. - [ ] Confirm successful run of dotnet-docker-nightly pipeline
16+
1. - [ ] Confirm run for [dotnet-docker-samples](https://dev.azure.com/dnceng/internal/_build?definitionId=376) (internal MSFT link) was queued. This will be queued automatically by [dotnet-docker-tools-check-base-image-updates](https://dev.azure.com/dnceng/internal/_build?definitionId=536) when it detects that the product images have been updated (detection runs on a schedule). Alternatively, you can manually queue the samples build.
17+
1. - [ ] Confirm successful run of dotnet-docker-samples pipeline

0 commit comments

Comments
 (0)