Azure / Azure/azure-sdk-for-python

Remove Python management-plane API review pipeline workarounds

Open
#48,888 0 comments 1 reaction 1 assignee Claimed by @tjprescott View on GitHub
EngSys Mgmt-EngSys
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.