From 27bbe7460246efb132f62ad8a0f01755fd08da9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20S=C3=A1nchez=20L=C3=B3pez?= <1175054+carlossanlop@users.noreply.github.com> Date: Fri, 5 May 2023 17:53:51 -0700 Subject: [PATCH] Servicing docs improvements (#85729) Adding more details to our servicing documentation, particularly around the check-servicing-labels CI leg. Co-authored-by: Juan Hoyos <19413848+hoyosjs@users.noreply.github.com> --- .../servicing_pull_request_template.md | 4 ++++ .github/workflows/check-service-labels.yml | 4 +++- docs/project/library-servicing.md | 16 +++++++++++++--- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/.github/PULL_REQUEST_TEMPLATE/servicing_pull_request_template.md b/.github/PULL_REQUEST_TEMPLATE/servicing_pull_request_template.md index 6fd461e6fc369..9a748a085a20f 100644 --- a/.github/PULL_REQUEST_TEMPLATE/servicing_pull_request_template.md +++ b/.github/PULL_REQUEST_TEMPLATE/servicing_pull_request_template.md @@ -21,3 +21,7 @@ main PR # Risk + +# Package authoring signed off? + +IMPORTANT: If this change touches code that ships in a NuGet package, please make certain that you have added any necessary [package authoring](../../docs/project/library-servicing.md) and gotten it explicitly reviewed. diff --git a/.github/workflows/check-service-labels.yml b/.github/workflows/check-service-labels.yml index efbbcdf9925fd..5261cc165ee12 100644 --- a/.github/workflows/check-service-labels.yml +++ b/.github/workflows/check-service-labels.yml @@ -13,10 +13,12 @@ jobs: check-labels: runs-on: ubuntu-latest steps: - - name: Check servicing labels + - name: Check 'Servicing-approved' label run: | + echo "Merging permission is enabled for servicing PRs when the `Servicing-approved` label is applied." if [ "${{ contains(github.event.pull_request.labels.*.name, 'Servicing-approved') }}" = "true" ]; then exit 0 else + echo "::error:: 'Servicing-approved' label not applied to the PR yet. More information: https://github.com/dotnet/runtime/blob/main/docs/project/library-servicing.md#approval-process" exit 1 fi diff --git a/docs/project/library-servicing.md b/docs/project/library-servicing.md index b3563190c87da..a9431903fc702 100644 --- a/docs/project/library-servicing.md +++ b/docs/project/library-servicing.md @@ -1,6 +1,6 @@ # How to service a library -This document provides the steps necessary after modifying a library in a servicing branch. +This document provides the steps that need to be followed after modifying a library in a servicing branch. Servicing branches represent shipped versions of .NET, and their name is in the format `release/X.0-staging`. Examples: @@ -41,5 +41,15 @@ All the servicing change must go through an approval process. You have two ways For both cases, you must: - Fill out the template of the PR description. -- Add the `servicing-consider` label. -- Bring it to the attention of the engineering lead responsible for the area, so they consider the fix for servicing. \ No newline at end of file +- Bring it to the attention of the [engineering lead responsible for the area](~/docs/area-owners.md). +- If the fix is a product change, the area owner will: + - Add the `Servicing-consider` label. + - Ask the area owner to champion your PR in the .NET Tactics meeting to request merge approval. + - If the change is approved, they will replace the `Servicing-consider` label by `Servicing-approved` and sign-off the PR. +- If the fix is a test-only or infra-only change, the area owner will: + - Review the PR and sign-off if they approve it. + - Add the `Servicing-approved` label. + +The area owner can then merge the PR once the CI looks good (it's either green or the failures are investigated and determined to be unrelated to the PR). + +**Note**: Applying the `Servicing-approved` label ensures the `check-service-labels` CI job passes, which is a mandatory requirement for merging a PR in a servicing branch.