Azure / Azure/azure-sdk-tools

[Azure SDK Agent] Readiness precheck (checkReady:true) falsely reports "APIView not approved"

Open
#16,652 1 comment 0 reactions 2 assignees Claimed by @helen229 View on GitHub
needs-triage
Dominant language
C#
Stars
135
Forks
260
Avg merge
3d 1h
Merged PRs (30d)
144

Description

While releasing the first GA of Microsoft Discovery Python SDK, the `azsdk_release_sdk` readiness check (`checkReady: true`) repeatedly failed with "API view is not approved for GA release", even though the referenced APIView revision was fully approved (as confirmed via APIView web UI). This issue was traced to a parser-version mismatch between the approved revision and the release-time `api.md`. The actual release path (`checkReady: false`) does not enforce the same check and triggered the release pipeline successfully against the identical repo/APIView state.

## Environment
- Package: `azure-ai-discovery (Python), first GA release, 1.0.0`
- SDK PR: Azure/azure-sdk-for-python#48265, merged to main (7c2afb34)
- Release plan: 2205 (work item 34103)
- APIView review: 9609f7876a9a41ed81a025866dbf3017
- Revision: f3a16df62cec4971b0e34dc7130a9019

## Observed Behavior
- The `azsdk_release_sdk` tool with `checkReady: true` returned:
```
Package is not ready for release. API view is not approved for GA release of package
'azure-ai-discovery'. API Review required at https://spa.apiview.dev/review/9609f787...
```
- APIView UI showed `Approved` and `First Release Approved` for the same revision listed in the error message.
- The approved revision `f3a16df6` was generated with `apiview-stub-generator 0.3.28, Python 3.10.20` (per the revision's own diagnostic comment)
- The shipped GA api.md was regenerated with the CI-pinned version `0.3.30, Python 3.12.3`
- The api.md markdown is byte-identical between `0.3.28` and `0.3.30`
- The APIView token stream embeds the line
`parsed using apiview-stub-generator(version:0.3.30), Python version: 3.12.3`
- It seems that the issue stems from APIView's content comparison concluding that the `0.3.28` approved revision and the `0.3.30` release-time surface are different documents, causing the readiness check to fail

## Impact
- Invoking the actual release path `azsdk_release_sdk` with `checkReady: false` succeeds/triggers the release pipeline whereas this same repo was rejected with `checkReady: true` set (i.e., readiness precheck and release trigger have different APIView approval logic)

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.