Azure / Azure/azure-sdk-for-python
Remove Python management-plane API review pipeline workarounds
- Dominant language
- Python
- Stars
- 5.6k
- Forks
- 3.4k
- Avg merge
- 1d 22h
- Merged PRs (30d)
- 182
Description
## Problem
Python management-plane SDKs currently do not generate API token files or an `ApiHash`. This requires pipeline workarounds around package approval and release completion.
** Prerequiste **
ARH must update the `get-approval-status` endpoint to support a `packageType` value of `mgmt` or `client`.
https://msft.ghe.com/devdiv/azure-sdk-tools/issues/23
## Required work
- Remove `--filter-type=Omit_management` from `eng/pipelines/templates/steps/run_apistub.yml` to ensure API token files are generated for management-plane SDKs.
- Update `eng/scripts/save_package_api_hash.py` and its tests/comments to expect management-plane token files.
- Generate and store `ApiHash` for management-plane packages so the ARH portion of `mark-released` can succeed.
- Remove the management-plane filter before the get-package-approval-status stage.
- Pass PackageInfo `packageType` through the approval-status workflow.-
- Remove `eng/scripts/Filter-PackageInfoForPackageApproval.ps1` and its pipeline wiring.
- Remove the management-plane workaround around Mark Package Released in `eng/pipelines/templates/stages/archetype-python-release.yml`.
## Acceptance criteria
- Management-plane packages generate token files and `ApiHash`.
- Approval status succeeds with `packageType=mgmt` without requiring an API review, per policy in ARH.
- Data-plane packages use `packageType=client`.
- Management-plane releases are marked complete in ARH.
- Python package approval and release completion pipelines contain no `SdkType == mgmt` workarounds.
## Other management-plane special cases to audit separately
These are other management-plane related workarounds that won't be touched as part of this work:
- `eng/pipelines/templates/steps/run_black.yml` excludes management packages.
- `eng/pipelines/templates/steps/run_pylint.yml` excludes management packages.
- `eng/pipelines/templates/stages/python-analyze-weekly.yml` excludes management packages from next-Pylint.
- `eng/common/scripts/Verify-RestApiSpecLocation.ps1` skips Python management packages during release validation.
Contributor guide
Assessment
This issue has not been assessed yet.