You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: documentation/release-process.md
+33-2Lines changed: 33 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,7 +5,19 @@
5
5
1. Merge from the `main` branch to the appropriate release branch (e.g. `release/5.0`).
6
6
1. In `/eng/Versions.props`, update `dotnet/diagnostics` dependencies to versions from the corresponding release of the `dotnet/diagnostics` repo.
7
7
1. In `/eng/Version.props`, ensure that `<BlobGroupBuildQuality>` is set appropriately. See the documentation next to this setting for the appropriate values. In release branches, its value should either be `prerelease` or `release`. This setting, in combination with the version settings, determine for which 'channel' the aks.ms links are created.
8
-
4. Complete at least one successful build.
8
+
1. Complete at least one successful build.
9
+
1. Bump the version number in the `main` branch. [Example Pull Request](https://github.com/dotnet/dotnet-monitor/pull/1560).
10
+
11
+
## Additional steps when creating a new release branch
12
+
13
+
1. When creating a new release branch (such as `release/8.x`) there are additional steps that need to be taken.
14
+
1. Follow [these steps](https://github.com/dotnet/arcade/blob/main/Documentation/Darc.md#setting-up-your-darc-client) to install darc.
15
+
1. Be sure to call [darc authenticate](https://github.com/dotnet/arcade/blob/main/Documentation/Darc.md#authenticate). You will need to create the requested tokens.
16
+
1. You will need to add the branch to a channel. E.g.
- It can be helpful to create test release branches (e.g. release/test/8.x). Note these branches will trigger warnings because they are considered unprotected release branches and should be deleted as soon as possible.
20
+
- If you created a build from a newly created release branch without a channel, you will get the message 'target build already exists on all channels'. To use this build you need to add it to a channel: `darc add-build-to-channel --id <Build BAR ID> --channel "General Testing"`.
9
21
10
22
## Build Release Branch
11
23
@@ -29,12 +41,25 @@ The `channel` value is used by the `dotnet-docker` repository to consume the cor
29
41
30
42
The `dotnet-docker` repository runs an update process each day that detects the latest version of a given `dotnet-monitor` channel. During the stabilization/testing/release period for a release of `dotnet-monitor`, the update process should be changed to pick up builds for the release branch.
31
43
32
-
The `monitorChannel` pipeline variable of the [dotnet-docker-update-dependencies](https://dev.azure.com/dnceng/internal/_build?definitionId=470) pipeline instructs the update process of which channel to use in order to update the `nightly` branch. Normally, its value is `6.0/daily` to pull the latest daily build. However, during the stabilization and release of dotnet-monitor, it should be set to the prerelease channel (e.g. `6.0/preview.8`, `6.0/rc.1`) or release channel (e.g. `6.0/release`) value.
44
+
The following variables for [dotnet-docker-update-dependencies](https://dev.azure.com/dnceng/internal/_build?definitionId=470) need to be updated for release:
45
+
*`monitorXMinorVersion`: Make sure these are set to the correct values.
46
+
*`monitorXQuality`: Normally this is daily, but should be set to release.
47
+
*`monitorXStableBranding`: Normally this is false, but should be set to true when the package version is stable e.g. `dotnet-monitor.8.0.0.nupkg` (does not have a prerelease label on it such as `-preview.X` or `-rtm.X`.
48
+
*`update-monitor-enabled`: Make sure this is true.
49
+
*`update-dotnet-enabled`: When doing an ad-hoc run, make sure to **disable** this.
33
50
34
51
### Revert Pipeline Variable After Release
35
52
36
53
After the release has been completed, this pipeline variable should be changed to the appropriate daily channel (e.g. `6.0/daily`).
37
54
55
+
### Updating dependencies
56
+
57
+
If necessary, update dependencies in the release branch. Most commonly this means picking up a new version of diagnostics packages.
58
+
59
+
1. For new branches only, you need to setup a subscription using darc: `darc add-subscription --channel ".NET Core Tooling Release" --source-repo https://github.com/dotnet/diagnostics --target-repo https://github.com/dotnet/dotnet-monitor --target-branch release/8.x --update-frequency None --standard-automerge`
60
+
1. Use `darc get-subscriptions --target-repo monitor` to see existing subscriptions.
61
+
1. Use `darc trigger-subscriptions` to trigger an update. This will create a pull request that will update the Versions.details.xml file.
62
+
38
63
### Image Update Process
39
64
40
65
The `dotnet-docker` repository typically updates the `nightly` branch with newer versions each morning by creating a pull request that targets the `nightly` branch with the new version information which needs to be approved by the `dotnet-docker` team. Upon completion, the `nightly` branch build will automatically run and create the new nightly images.
@@ -58,9 +83,15 @@ The nightly image is `mcr.microsoft.com/dotnet/nightly/monitor`. The tag list is
58
83
59
84
The remainder of the release will automatically push NuGet packages to nuget.org, [tag](https://github.com/dotnet/dotnet-monitor/tags) the commit from the build with the release version, and add a new [GitHub release](https://github.com/dotnet/dotnet-monitor/releases).
60
85
86
+
## Release to Storage Accounts
87
+
88
+
1. Approximately 3 days before Docker image release, execute a dry-run of the [dotnet-monitor-release](https://dev.azure.com/dnceng/internal/_build?definitionId=1103) pipeline (`IsDryRun` should be checked; uncheck `IsTestRun`; under `Resources`, select the `dotnet monitor` build from which assets will be published). This will validate that the nupkg files can be published to the `dotnetcli` storage account and checksums can be published to the `dotnetclichecksums` storage account.
89
+
1. The day before Docker image release, execute run of the [dotnet-monitor-release](https://dev.azure.com/dnceng/internal/_build?definitionId=1103) pipeline (uncheck `IsDryRun`; uncheck `IsTestRun`; under `Resources`, select the `dotnet monitor` build from which assets will be published). This will publish the nupkg files to the `dotnetcli` storage account and the checksums to the `dotnetclichecksums` storage account.
90
+
61
91
## Release Docker Images
62
92
63
93
1. Contact `dotnet-docker` team with final version that should be released. This version should be latest version in the `nightly` branch.
94
+
1. Docker image build from main branch requires assets to be published to `dotnetcli` and `dotnetclichecksums` storage accounts. See [Release to Storage Accounts](#Release-to-Storage-Accounts).
64
95
1. The `dotnet-docker` team will merge from `nightly` branch to `main` branch and wait for `dotnet-monitor` team approval. Typically, these changes are completed the day before the release date.
65
96
1. The `dotnet-docker` team will start the build ahead of the release and wait for the all-clear from `dotnet-monitor` team before publishing the images.
Copy file name to clipboardExpand all lines: documentation/schema.json
+18-6Lines changed: 18 additions & 6 deletions
Original file line number
Diff line number
Diff line change
@@ -775,7 +775,9 @@
775
775
],
776
776
"description": "The number of times the action list may be executed before being throttled.",
777
777
"format": "int32",
778
-
"default": 5
778
+
"default": 5,
779
+
"maximum": 2147483647.0,
780
+
"minimum": 1.0
779
781
},
780
782
"ActionCountSlidingWindowDuration": {
781
783
"type": [
@@ -1014,7 +1016,9 @@
1014
1016
"null"
1015
1017
],
1016
1018
"description": "Buffer size used when copying data from an egress callback returning a stream to the egress callback that is provided a stream to which data is written.",
1017
-
"format": "int32"
1019
+
"format": "int32",
1020
+
"maximum": 2147483647.0,
1021
+
"minimum": 1.0
1018
1022
}
1019
1023
}
1020
1024
},
@@ -1044,7 +1048,9 @@
1044
1048
],
1045
1049
"description": "Amount of data points to store per metric.",
1046
1050
"format": "int32",
1047
-
"default": 3
1051
+
"default": 3,
1052
+
"maximum": 2147483647.0,
1053
+
"minimum": 1.0
1048
1054
},
1049
1055
"IncludeDefaultProviders": {
1050
1056
"type": [
@@ -1509,7 +1515,9 @@
1509
1515
"RequestCount": {
1510
1516
"type": "integer",
1511
1517
"description": "The threshold of the number of requests that start within the sliding window of time.",
1512
-
"format": "int32"
1518
+
"format": "int32",
1519
+
"maximum": 2147483647.0,
1520
+
"minimum": 1.0
1513
1521
},
1514
1522
"SlidingWindowDuration": {
1515
1523
"type": [
@@ -1552,7 +1560,9 @@
1552
1560
"RequestCount": {
1553
1561
"type": "integer",
1554
1562
"description": "The threshold of the number of slow requests that start within the sliding window of time.",
1555
-
"format": "int32"
1563
+
"format": "int32",
1564
+
"maximum": 2147483647.0,
1565
+
"minimum": 1.0
1556
1566
},
1557
1567
"RequestDuration": {
1558
1568
"type": [
@@ -1614,7 +1624,9 @@
1614
1624
"ResponseCount": {
1615
1625
"type": "integer",
1616
1626
"description": "The threshold number of responses with matching status codes.",
0 commit comments