Skip to content

docs: add Python management SDK release rotation runbook - #49680

Merged
Yuchao Yan (msyyc) merged 12 commits into
mainfrom
docs/python-mgmt-release-rotation-49651
Oct 27, 2026
Merged

Yuchao Yan (msyyc) merged 12 commits into
mainfrom
docs/python-mgmt-release-rotation-49651

Conversation

@msyyc

@msyyc Yuchao Yan (msyyc) commented Oct 23, 2026 •

Copy link
Copy Markdown
Member

Description

Fixes #49651.

Add a Python management SDK release runbook for weekly Go/JavaScript/Python rotation reviewers who are unfamiliar with Python SDK releases.

The runbook covers live PR queues, service-team readiness, automated review results, human approval and re-approval, merge handoff, automatic release follow-up, common partner questions, and escalation. It distinguishes labels and green CI from release readiness, avoids duplicate approvals and review runs, and explains that merging an auto-release PR can publish without a separate manual package-publish approval.

Research preceded the outline and implementation. The 2026-10-23 snapshot included 53 open automated management SDK PRs: 13 drafts and 40 non-drafts. Research also included 20 recent merged PRs, eight detailed PR histories, the Go runbook, and the Python review/release automation.

Add the read-only azsdk-python-mgmt-pr-triage skill to address the question about quickly checking whether a review is active. Link the skill from the runbook. Rotators can ask Copilot to use the skill or run its standalone Python command with authenticated gh; no SDK installation is required.

The skill groups open, non-draft management AutoPRs into five queues: automated review needs triggering, automated review active, human review needed, changes after approval, and author follow-up after approval. It uses workflow-run PR associations, CODEOWNERS and team membership, effective review state, approved commit identity, and author comments. Unknown evidence and incomplete scans produce explicit warnings instead of unsafe trigger recommendations or an empty-backlog claim. It never changes labels, comments, approvals, merges, or releases.

An expected HTTP 403 when reading Azure/azure-arm-sdk-reviewers membership is silently skipped and cached. Individually named CODEOWNERS and readable teams still establish approvals; GitHub's review decision supplies the human-review queue fallback. Other access errors still produce warnings. The skill documents that team-only approvals cannot establish changed-head or author-follow-up queues without a separately verified maintainer.

Address the review's two snapshot races: enumerate workflow runs without status filters and filter completed runs locally, and validate the initial listing's updatedAt against the first PR read before using its review decision. Retain the final collection-window consistency check. Add transition, pagination, stale-listing, and fail-closed regression coverage. Clarify that merge and release follow-up belong to the service team after handoff; rotators assist when requested or escalated, rather than performing mandatory post-approval monitoring.

Validation:

The live permission regression also passed: the scanner was reapplied to all 34 PRs with only the reported team-membership HTTP 403 injected into its GitHub CLI wrapper. It issued one denied membership request, cached the failure, exited 0, and produced no verification warnings. Its four human-review entries matched an independent GitHub review-decision query.

The skill's remaining relative Markdown link resolved. The runbook now uses an absolute HTTPS skill link, as required by CI link guidance. Both Python files parsed using Python 3.10 grammar. SDK builds, package tests, and Sphinx were not run: this PR changes contributor tooling and documentation, not SDK packages.

All SDK Contribution checklist:

  • The pull request does not introduce [breaking changes]
  • CHANGELOG is updated for new features, bug fixes or other significant changes.
  • I have read the contribution guidelines.

No package changelog is needed: this PR changes contributor tooling and documentation only.

General Guidelines and Best Practices

  • Title of the pull request is clear and informative.
  • There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

  • Pull request includes test coverage for the included changes.

No SDK runtime behavior changes. Contributor-tool tests and live read-only validation are described above.

Fixes #49651

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: f63e6e2b-238f-4cd4-952e-43d460067877
@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 1 pipeline(s).
9 pipeline(s) were filtered out due to trigger conditions.
There may be pipelines that require an authorized user to comment /azp run to run.

Address review feedback: write for reviewers unfamiliar with Python releases, explain the maintainer-applied review label and bot follow-up, and remove changes to existing documentation.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: f63e6e2b-238f-4cd4-952e-43d460067877
@github-actions

Copy link
Copy Markdown
Contributor
[Pilot] PR Pipeline Failure Analysis

What failed

1. CSpell spelling check — Azure Pipeline python - pullrequest (build 6993013)

  • doc/dev/mgmt/mgmt-release-rotation-runbook.md:19:13 — Unknown word Chenxi.

2. Broken relative links — GitHub Actions Verify Links

  • 7 of 18 checked links in doc/dev/mgmt/mgmt-release-rotation-runbook.md are broken:
    • ../../../.github/CODEOWNERS
    • ../../../.github/workflows/mgmt-sdk-pr-review.md
    • ../../../.github/instructions/reviewer/management.instructions.md
    • sdk-breaking-changes-guide.md
    • ../../../eng/pipelines/templates/stages/archetype-python-release.yml
    • ../release.md#releasing-through-unified-pipelines
    • tests.md
Relevant pipeline output
##[error]doc/dev/mgmt/mgmt-release-rotation-runbook.md:19:13 - Unknown word (Chenxi)
##[error]Spelling errors detected. To correct false positives or learn about spell checking see: https://aka.ms/azsdk/engsys/spellcheck

'(redacted) has 7 broken link(s):
  ../../../.github/CODEOWNERS
  ../../../.github/workflows/mgmt-sdk-pr-review.md
  ../../../.github/instructions/reviewer/management.instructions.md
  sdk-breaking-changes-guide.md
  ../../../eng/pipelines/templates/stages/archetype-python-release.yml
  ../release.md#releasing-through-unified-pipelines
  tests.md
Checked 18 links with 1 broken link(s) found.

Recommended next steps

  • Add Chenxi to the repo's cspell custom word list (e.g. .vscode/cspell.json), or reword the line to avoid the unrecognized term.
  • Fix each broken relative link in doc/dev/mgmt/mgmt-release-rotation-runbook.md: some targets exist in the repo but at a different relative depth than referenced (.github/CODEOWNERS, eng/pipelines/templates/stages/archetype-python-release.yml); others reference files that don't appear to exist at all under .github/workflows/, .github/instructions/reviewer/, or doc/dev/ (mgmt-sdk-pr-review.md, management.instructions.md, sdk-breaking-changes-guide.md, release.md, tests.md) — locate the correct existing target or remove/replace the reference.
  • See https://aka.ms/ci-fix

Automated fix: Requested

Generated by Pipeline Analysis Next Steps · copilot · sonnet50 · 43.9 AIC · ⌖ 0.564 AIC · ⊞ 8.9K · ◷

Yuchao Yan (msyyc) and others added 2 commits October 23, 2026 17:45
Use one PR queue, focus review on bot findings and CI, clarify re-approval, and fix documentation links.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 1be9a77a-185e-4a49-bb2e-9f1f4d952fcc
Direct release pipeline failures to Engineering System support and remove US-based coverage guidance.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 1be9a77a-185e-4a49-bb2e-9f1f4d952fcc
@msyyc
Yuchao Yan (msyyc) marked this pull request as ready for review October 23, 2026 10:05
Copilot AI balanced review requested due to automatic review settings October 23, 2026 10:05
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 1be9a77a-185e-4a49-bb2e-9f1f4d952fcc

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

The documentation is consistent with the reviewed automation and release guidance, with no blocking issues identified.

No open issues 🎉

What changed in this PR

Adds a standalone Python management SDK release runbook for cross-language rotation reviewers, addressing #49651 without changing existing documentation or SDK behavior.

Changes:

  • Provides a live PR queue and guidance for readiness checks, bot reviews, approval, and re-approval.
  • Explains merge handoff, automatic publication, release verification, and manual-release boundaries.
  • Covers common partner questions, escalation paths, and reviewer responsibilities.
File Description
doc/​dev/​mgmt/​mgmt-release-rotation-runbook.md Adds end-to-end guidance for the Python management SDK release rotation.

Review effort: Balanced

Link release rotators to workflow-aware PR queues with offline tests and standalone usage.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI balanced review requested due to automatic review settings October 26, 2026 09:22
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Verified snapshot and status-transition races can produce duplicate-review recommendations or incorrect no-action reports.

2 open issues

Review effort: Balanced

Copilot AI balanced review requested due to automatic review settings October 26, 2026 09:32
Keep named CODEOWNER approvals and use GitHub review decisions when the optional reviewer team cannot be read. Cache the expected denial and retain warnings for other errors.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

Workflow activity and approval-state snapshot races can produce duplicate-review recommendations or omit PRs needing human attention.

2 open issues

Review effort: Balanced

Copilot AI balanced review requested due to automatic review settings October 26, 2026 09:38

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

Snapshot-consistency races can miss active reviews or omit PRs needing human attention without verification warnings.

2 open issues

Review effort: Balanced

Scan workflow runs without status filters and reject stale initial PR snapshots. Add race regressions and clarify service-team ownership after review handoff.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI balanced review requested due to automatic review settings October 27, 2026 02:01

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

No active review issues are recorded for the release runbook and read-only triage tooling.

No open issues 🎉

2 resolved since last review

Review effort: Balanced

Comply with Verify Links guidance for documentation outside relative-link exemptions.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI balanced review requested due to automatic review settings October 27, 2026 03:04

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

No active review issues are reported for the release-rotation runbook and read-only PR triage tooling.

No open issues 🎉

Review effort: Balanced

Copilot AI balanced review requested due to automatic review settings October 27, 2026 03:45

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

No active review issues were identified for the release-rotation runbook and read-only PR triage tooling.

No open issues 🎉

Review effort: Balanced

Clarify reviewer roles, active workflow checks, approval comparisons, and explicit manual-release intent.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 8560e756-c30b-4ed8-b15e-f1b8ddeec83e
Copilot AI balanced review requested due to automatic review settings October 27, 2026 06:50

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

No active review issues are reported for the release-rotation runbook and read-only PR triage tooling.

No open issues 🎉

Review effort: Balanced

@msyyc
Yuchao Yan (msyyc) merged commit cf17c42 into main Oct 27, 2026
21 checks passed
@msyyc
Yuchao Yan (msyyc) deleted the docs/python-mgmt-release-rotation-49651 branch October 27, 2026 07:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Document Python management SDK release DRI rotation runbook

4 participants