|
4 | 4 | To start the checklist for a new release:
|
5 | 5 | - If it's an internal release, open a new issue in dotnet/core-eng (private repo).
|
6 | 6 | - Otherwise, open a new issue in dotnet/source-build.
|
| 7 | + - Open one issue per release (i.e. one for 2.1, one for 3.1, one for 5.0) |
7 | 8 | - Paste one copy of the below checklist per release. (Once for 2.1, again for 3.1, if both are being serviced)
|
8 | 9 | - Delete lines that only apply to other releases. (E.g. delete [2.1] if doing a 3.1 release.)
|
9 | 10 | - Delete lines starting with [Internal] if running a non-internal release.
|
|
21 | 22 | - [Non-Internal] File GitHub issues as you encounter problems, and link to them from the notes. Provide info in the issue rather than in the notes.
|
22 | 23 | 1. - [ ] [Internal] Ensure internal/release/X.Y branch is up to date with mirrored release/X.Y branch.
|
23 | 24 | 1. - [ ] Update to new version.
|
24 |
| - - [2.1] [/Documentation/servicing/update-2.1.md](https://github.com/dotnet/source-build/tree/release/3.1/Documentation/servicing/update-2.1.md) |
25 |
| - - [3.1] [/Documentation/servicing/update-3.1.md](https://github.com/dotnet/source-build/tree/release/3.1/Documentation/servicing/update-3.1.md) |
| 25 | + - [2.1] [/Documentation/servicing/update-2.1.md](https://github.com/dotnet/source-build/tree/master/Documentation/servicing/update-2.1.md) |
| 26 | + - [3.1 / 5.0] [/Documentation/servicing/update-3.1-5.0.md](https://github.com/dotnet/source-build/tree/master/Documentation/servicing/update-3.1-5.0.md) |
26 | 27 | - Start a new working branch and PR for WIP so others can easily look if needed and CI starts running.
|
27 | 28 | - [Internal] For internal builds, use <https://dev.azure.com/dnceng/internal/_git/dotnet-source-build>, branch name `internal/release/<SDK-version>-<month name><YYYY>`.
|
28 | 29 | 1. - [ ] Version update cleanup and confirmations
|
|
33 | 34 | - [ ] Verify/update the ASP.NET versions (`MicrosoftAspNetCoreAllPackageVersion` and `MicrosoftAspNetCoreAppPackageVersion`) in dependencies.props.
|
34 | 35 | - [ ] Verify/update the `OfficialBuildId`s in updated repos (usually coreclr, corefx, core-setup).
|
35 | 36 | - [ ] Update the `DotnetCLIVersion.txt` SDK version to N-1: the latest released "2.1.XYY" SDK version, where "2.1.X" matches the SDK we're building.
|
36 |
| - - [3.1] |
| 37 | + - [3.1 / 5.0] |
37 | 38 | - [ ] Verify that the `PrivateSourceBuiltArtifactsPackageVersion` in `eng/Versions.props` matches N-1 release artifacts.
|
38 | 39 | - [ ] Update the `global.json` SDK version to N-1: the latest released "3.1.XYY" SDK version, where "3.1.X" matches the SDK we're building.
|
39 | 40 | 1. - [ ] [2.1] Fetch internal git data for submodules.
|
40 | 41 | 1. Run `git submodule update --init --recursive` and see errors due to missing commits.
|
41 | 42 | 1. Run `fetch-vsts-commits.sh` with a PAT to automatically fetch internal refs.
|
42 | 43 | 1. Run `git submodule update --init --recursive` again to update failed submodules.
|
43 |
| - * If some refs are still missing on unusual repos, those repos may need to be set up in `fetch-vsts-commits.sh`. Note: Repos in `fetch-vsts-commits.sh` don't need to be cleaned up. |
| 44 | + * If some refs are still missing on unusual repos, those repos may need to be set up in `fetch-vsts-commits.sh`. Note: Repos in `fetch-vsts-commits.sh` don't need to be cleaned up. |
44 | 45 | 1. - [ ] Regenerate patches as necessary.
|
45 | 46 | - Run `./build.sh` to begin clone and patch application and see what, if anything, needs to be regenerated. Issue to track re-patching workflow: [#1468](https://github.com/dotnet/source-build/issues/1468)
|
46 |
| - - [3.1] ASP.NET will always need to be regenerated because it contains a version number that needs to be updated. The version should be updated to the SDK version being built. See https://github.com/dotnet/source-build/blob/release/3.1/patches/aspnetcore/0007-Fix-version-number.patch |
47 |
| -1. - [ ] [Internal] [3.1] Update internal feed list in `.\build.sh` |
| 47 | + - [3.1 / 5.0] ASP.NET will always need to be regenerated because it contains a version number that needs to be updated. The version should be updated to the SDK version being built. |
| 48 | + - [3.1] See https://github.com/dotnet/source-build/blob/release/3.1/patches/aspnetcore/0007-Fix-version-number.patch |
| 49 | + - [5.0] See https://github.com/dotnet/source-build/blob/master/patches/aspnetcore/0016-Fix-version-number.patch |
| 50 | +1. - [ ] [Internal] [3.1 / 5.0] Update internal feed list in `.\build.sh` |
48 | 51 | - Internal feeds are listed under `VSS_NUGET_EXTERNAL_FEED_ENDPOINTS`
|
49 |
| - - Make sure to keep `dotnet3.1-internal-transport` in the list |
| 52 | + - [3.1] Make sure to keep `dotnet3.1-internal-transport` in the list |
| 53 | + - [5.0] Make sure to keep `dotnet5-internal-transport` in the list |
50 | 54 | - Issue tracking this: [#1674](https://github.com/dotnet/source-build/issues/1674)
|
51 | 55 | 1. - [ ] Start building locally (for quick diagnosis) and in CI (for super clean build) and iterate towards a green build.
|
52 |
| - - [Internal] [3.1] Set environment variable `internalPackageFeedPat` to dnceng internal PAT with package read and code read access. |
| 56 | + - [Internal] [3.1 / 5.0] Set environment variable `internalPackageFeedPat` to dnceng internal PAT with package read and code read access. |
53 | 57 | - E.g. run `export internalPackageFeedPat;read internalPackageFeedPat` and paste the PAT. This sets up your running shell for an authenticated build. Passing `/p:` isn't sufficient.
|
54 |
| - - [Internal] [3.1] Also pass arg `/p:AzDoPat=$internalPackageFeedPat` for darc clone in particular. |
| 58 | + - [Internal] [3.1 / 5.0] Also pass arg `/p:AzDoPat=$internalPackageFeedPat` for darc clone in particular. |
55 | 59 | - [Internal] [2.1] Pass auth arg `/p:ProdConBlobFeedUrlPrefix=<url up to and not including 'orchestrated-release-2-1/' from feed.txt>`
|
56 | 60 | - [Internal] [2.1] When running smoke-test locally, also pass `/p:ProdConBlobFeedUrlPrefix=<...>`
|
57 | 61 | - The smoke-test command looks like `./build.sh /t:RunSmokeTest /p:Configuration=Release /p:ProdConBlobFeedUrlPrefix=***`.
|
|
70 | 74 | 1. - [ ] Complete manual validation steps
|
71 | 75 | - [ ] Ask for confirmation on poison report.
|
72 | 76 | - Confirm with team how to check this for a specific build/release.
|
73 |
| - - [ ] [3.1] Verify the packs included in the SDK are from source-build-reference-packages, not source-build. |
| 77 | + - [ ] [3.1 / 5.0] Verify the packs included in the SDK are from source-build-reference-packages, not source-build. |
74 | 78 | - E.g. in `testing-smoke/builtCli`, run `find . -iname System.IO.Pipelines.dll -exec sha256sum {} \; | sort` and look at file origin based on checksum of the file in the SDK.
|
75 |
| - - [ ] [3.1] Verify the packs included in the SDK have XML documentation comments. Presence of XML files in the SDK dir is adequate. Issue tracking automation of this: [#1579](https://github.com/dotnet/source-build/issues/1579) |
| 79 | + - [ ] [3.1 / 5.0] Verify the packs included in the SDK have XML documentation comments. Presence of XML files in the SDK dir is adequate. Issue tracking automation of this: [#1579](https://github.com/dotnet/source-build/issues/1579) |
76 | 80 | - [ ] Re-validate the SHA1s in Versions file with the manifest in VSU share dir.
|
77 |
| - - [ ] [3.1] Review the file list diff between Microsoft-built SDK and source-built SDK in smoke-test output. |
78 |
| - - [Internal] [3.1] For internal builds, smoke-test fails to acquire the Microsoft-built SDK. Manually acquire the Microsoft-built SDK from the build email you should have received, then run `scripts/compare-builds.sh` yourself to get the output to review. |
| 81 | + - [ ] [3.1 / 5.0] Review the file list diff between Microsoft-built SDK and source-built SDK in smoke-test output. |
| 82 | + - [Internal] [3.1 / 5.0] For internal builds, smoke-test fails to acquire the Microsoft-built SDK. Manually acquire the Microsoft-built SDK from the build email you should have received, then run `scripts/compare-builds.sh` yourself to get the output to review. |
79 | 83 | - [#1631](https://github.com/dotnet/source-build/issues/1631) tracks a fix.
|
80 | 84 | - Use <https://gist.github.com/omajid/9111a9310d452b3594b770d4ca8a3d87> as a loose baseline.
|
81 | 85 | - [#1630](https://github.com/dotnet/source-build/issues/1630) tracks a checked-in baseline.
|
|
90 | 94 | - [ ] Fedora30 - dseefeld
|
91 | 95 | - [ ] Fedora31 - dagood
|
92 | 96 | - [ ] Debian9 - crummel
|
93 |
| - - [3.1] |
| 97 | + - [3.1 / 5.0] |
94 | 98 | - [ ] RHEL 7 & 8 VM - crummel
|
95 | 99 | - [ ] RHEL Docker - dleeapho
|
96 | 100 | - [ ] Fedora30 - dseefeld
|
97 | 101 | - [ ] CentOS 7 - dagood
|
98 | 102 | - [ ] CentOS 8 - dseefeld
|
99 | 103 | - [ ] Debian - dagood
|
100 | 104 | 1. - [ ] [Internal] Download the artifacts from the green PR validation build onto a machine with Bash.
|
101 |
| - - We may require only a subset of the artifacts for certain releases: refer to the previous release email thread corresponding to 2.1 vs. 3.1 build. |
| 105 | + - We may require only a subset of the artifacts for certain releases: refer to the previous release email thread corresponding to 2.1 vs. 3.1 vs. 5.0 build. |
102 | 106 | - Can use <https://github.com/dotnet/source-build/blob/release/3.1/scripts/fetch-azdo-artifact-tarball.sh> as a library.
|
103 | 107 | - E.g. download the tarballs with `download_tarball`, and fix them up with `fix_azdo_tarball` if necessary.
|
104 | 108 | 1. - [ ] [Internal] Rename tarball and smoke-test prereqs to human-friendly names. (Can use `rename_tarball_inner_dir`.)
|
|
109 | 113 | 1. - [ ] SYNC POINT: Wait for Microsoft build release.
|
110 | 114 | - Wait for dotnet/announcements post. <kbd>Watch</kbd> the repo to get emails so you don't have to poll.
|
111 | 115 | - Example: <https://github.com/dotnet/announcements/issues/160>.
|
112 |
| -1. - [ ] [Internal] [3.1] In a dev branch on your GitHub fork of source-build, clean up. |
113 |
| - - [ ] [Internal] [3.1] Convert internal URIs to public in `eng/Version.Details.xml`. |
114 |
| - - `https://dev.azure.com/dnceng/internal/_git/<org>-<repo>` => `https://github.com/<org>/<repo>` |
115 |
| - - [ ] [Internal] [3.1] Remove internal package feeds from source-build. |
| 116 | +1. - [ ] [Internal] [3.1 / 5.0] In a dev branch on your GitHub fork of source-build, clean up. |
| 117 | + - [ ] [Internal] [3.1 / 5.0] Convert internal URIs to public |
| 118 | + - In `eng/Version.Details.xml` - Update `https://dev.azure.com/dnceng/internal/_git/<org>-<repo>` => `https://github.com/<org>/<repo>` |
| 119 | + - In repo projects - Update `<SourceDirectory>dotnet-XXXXX</SourceDirectory>` => `<SourceDirectory>XXXXX</SourceDirectory>`. If the `SourceDirectory` is the same as the RepositoryName, the element can be removed. Issue to track consistent repo names: [#1608](https://github.com/dotnet/source-build/issues/1608) |
| 120 | + - [ ] [Internal] [3.1 / 5.0] Remove internal package feeds from source-build. |
116 | 121 | - `/NuGet.Config`
|
117 | 122 | - `/smoke-testNuGet.Config`
|
118 | 123 | - Do not remove from subrepos. The build infra removes these sources automatically while modifying each subrepo nuget.config file.
|
119 | 124 | 1. - [ ] [Internal] Push the servicing branch to your GitHub fork and submit a source-build PR.
|
120 |
| -1. - [ ] [Internal] If a build hits `fatal: reference is not a tree: cb5f173b`, [make the commit available on a fork and switch to it temporarily](https://github.com/dotnet/source-build/tree/release/3.1/Documentation/servicing/make-commit-available.md). |
| 125 | +1. - [ ] [Internal] If a build hits `fatal: reference is not a tree: cb5f173b`, [make the commit available on a fork and switch to it temporarily](https://github.com/dotnet/source-build/tree/master/Documentation/servicing/make-commit-available.md). |
121 | 126 | 1. - [ ] [Internal] Add source-build team as reviewers.
|
122 | 127 | 1. - [ ] [Internal] When CI is green and two reviewers approve, merge.
|
123 | 128 | - Avoid squash/rebase: nice to preserve commit hashes. However, there are no known dependencies on *source-build* commits being preserved.
|
124 |
| -1. - [ ] Create and push tags on the post-merge commit. [/Documentation/servicing/tagging.md](https://github.com/dotnet/source-build/tree/release/3.1/Documentation/servicing/tagging.md) |
| 129 | +1. - [ ] After all contributing repos have fixed any missing merges (from the `fatal: reference is not a tree` item above), Make a new PR to move any repos changed back to their official source. |
| 130 | +1. - [ ] Create and push tags on the post-merge commit. [/Documentation/servicing/tagging.md](https://github.com/dotnet/source-build/tree/master/Documentation/servicing/tagging.md) |
125 | 131 | 1. - [ ] Create a GitHub release on the tag with SDK versioning.
|
126 | 132 | - Go to <https://github.com/dotnet/source-build/tags>
|
127 | 133 | - Expand the SDK-versioned tag's message and copy it
|
128 | 134 | - Click <kbd>...</kbd> on the right on the SDK-versioned tag and press "Create release"
|
129 | 135 | - Paste into the release title
|
130 | 136 | - Click submit.
|
131 | 137 | 1. - [ ] Notify distro maintainers and partners about the release tags
|
132 |
| -1. - [ ] [3.1] Download merged Private.SourceBuilt.Artifacts.XX.tar.gz files from the prepare-artifacts leg in source-build-rolling-CI. |
133 |
| -1. - [ ] [3.1] Upload merged Private.SourceBuilt.Artifacts.XX.tar.gz file to dotnetcli account source-built-artifacts blob container. |
134 |
| - - Never overwrite a tarball. Use a sub-patch version if one already exists, e.g. `0.1.0-3.1.105.1`. |
| 138 | +1. - [ ] [3.1 / 5.0] Download merged Private.SourceBuilt.Artifacts.XX.tar.gz files from the prepare-artifacts leg in source-build-rolling-CI. |
| 139 | +1. - [ ] [3.1 / 5.0] Upload merged Private.SourceBuilt.Artifacts.XX.tar.gz file to dotnetcli account source-built-artifacts blob container. |
| 140 | + - [3.1] Never overwrite a tarball. Use a sub-patch version if one already exists, e.g. `0.1.0-3.1.105.1`. |
| 141 | + - [5.0] Version for tarball is "0.1.0-\<release\>-\<AzDo BuildId\>-\<Azdo BuildNumber\>", e.g. `0.1.0-5.0.100-903685-20201130.1` |
135 | 142 | 1. - [ ] If there's a respin (for any reason: source-build infra fixes or upstream repo problems):
|
136 | 143 | - Go back in this process checklist as far as necessary.
|
137 | 144 | - When tagging, make sure to create a new tag. A sub-patch version tag for SDK and runtime must be generated. E.g - v2.1.300.1-SDK
|
|
0 commit comments