Repository navigation
docs: add Python management SDK release rotation runbook - #49680
Merged
Yuchao Yan (msyyc) merged 12 commits intoOct 27, 2026
Merged
Conversation
Fixes #49651 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: f63e6e2b-238f-4cd4-952e-43d460067877
|
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
Contributor
[Pilot] PR Pipeline Failure AnalysisWhat failed1. CSpell spelling check — Azure Pipeline
2. Broken relative links — GitHub Actions
Relevant pipeline outputRecommended next steps
Automated fix: Requested
|
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
Yuchao Yan (msyyc)
marked this pull request as ready for review
October 23, 2026 10:05
Yuchao Yan (msyyc)
requested review from
a team,
jenny (JennyPng),
Daniel Jurek (danieljurek) and
Libba Lawrence (l0lawrence)
as code owners
October 23, 2026 10:05
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 1be9a77a-185e-4a49-bb2e-9f1f4d952fcc
Contributor
There was a problem hiding this comment.
🟢 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>
Yuchao Yan (msyyc)
requested review from
a team and
Laia Patiño (laiapat)
as code owners
October 26, 2026 09:22
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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>
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>
Comply with Verify Links guidance for documentation outside relative-link exemptions. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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
Chenxi Jiang (ChenxiJiang333)
approved these changes
Oct 27, 2026
Yuchao Yan (msyyc)
deleted the
docs/python-mgmt-release-rotation-49651
branch
October 27, 2026 07:27
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

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-releasePR 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-triageskill 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 authenticatedgh; 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-reviewersmembership 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
updatedAtagainst 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:
python -m unittest discover -s .github\skills\azsdk-python-mgmt-pr-triage\tests -v— passed, 51 offline tests covering workflow activity, freshness, ownership, approval invalidation, changed heads, author follow-ups, pagination, filtering, incomplete scans, the team-membership 403 fallback, active-status transitions, and stale listing decisions.python -m black --check --line-length 120 .github\skills\azsdk-python-mgmt-pr-triage\scripts\triage_prs.py .github\skills\azsdk-python-mgmt-pr-triage\tests\test_triage_prs.py— passed.python .github\skills\azsdk-python-mgmt-pr-triage\scripts\triage_prs.py --package azure-mgmt-iothub— passed; package version and missing human approval verified against the PR's version diff and reviews.python .github\skills\azsdk-python-mgmt-pr-triage\scripts\triage_prs.py— passed; scanned 36 open non-draft management AutoPRs on 2026-10-27 without verification warnings. The six human-review entries ([AutoPR azure-mgmt-hybridcompute]-generated-from-SDK Generation - Python-7001062 #49709, [AutoPR azure-mgmt-sovereign]-generated-from-SDK Generation - Python-7030648 #49705, [AutoPR azure-mgmt-migrate]-generated-from-SDK Generation - Python-6746547 #48758, [AutoPR azure-mgmt-monitor]-generated-from-SDK Generation - Python-6996283 #49699, [AutoPR azure-mgmt-iothub]-generated-from-SDK Generation - Python-6994850 #49684, [AutoPR azure-mgmt-managednetworkfabric]-generated-from-SDK Generation - Python-7018490 #49662), unchanged approved heads, and recent author-comment results agreed with independently collected GraphQL evidence. Direct comment inspection confirmed missing automated reviews on [AutoPR azure-mgmt-hybridcompute]-generated-from-SDK Generation - Python-7001062 #49709 and [AutoPR azure-mgmt-sovereign]-generated-from-SDK Generation - Python-7030648 #49705. A separate paginated workflow-run query confirmed no active reviews.git diff --check— passed.gh run watch 40442150568 --repo Azure/azure-sdk-for-python --exit-status --interval 10— passed; Verify Links succeeded on commitf6ec720e20after replacing the runbook's relative skill link with an absolute GitHub URL.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:
No package changelog is needed: this PR changes contributor tooling and documentation only.
General Guidelines and Best Practices
Testing Guidelines
No SDK runtime behavior changes. Contributor-tool tests and live read-only validation are described above.