Summary
ApiView token generation fails during SDK generation (spec-pull-request / release run modes) on Python 3.13. The failure originates from installing eng/apiview_reqs.txt in eng/tools/azure-sdk-tools/packaging_tools/sdk_generator.py.
Root cause
eng/apiview_reqs.txt pins lazy-object-proxy==1.10.0.
lazy-object-proxy==1.10.0 ships no cp313 wheel (Linux x86_64 wheels exist only for cp38–cp312), so on Python 3.13 pip must build it from source.
- The source build's isolated build environment needs
setuptools_scm>=8, which it tries to fetch from the azure-sdk private feed (--index-url=https://pkgs.dev.azure.com/azure-sdk/public/_packaging/azure-sdk-for-python/pypi/simple/).
- The feed returns 401 Unauthorized for
setuptools_scm, so pip falls back to an interactive credential prompt (User for pkgs.dev.azure.com:). In non-interactive CI this hits EOFError: EOF when reading a line, aborting the build with exit code 1.
Observed error (trimmed)
× installing build dependencies for lazy-object-proxy did not run successfully. Collecting setuptools_scm>=8 User for pkgs.dev.azure.com: ERROR: Exception: ... username = ask_input(f"User for {netloc}: ") if self.prompting else None EOFError: EOF when reading a line ERROR: Failed to build 'lazy-object-proxy' when installing build dependencies for lazy-object-proxy [DEBUG] Fail to generate ApiView token file for azure-mgmt-networkcloud: Command '['python', '-m', 'pip', 'install', '-r', 'eng/apiview_reqs.txt', '--index-url=...']' returned non-zero exit status 1.
Observed for azure-mgmt-networkcloud on Python 3.13.13. Note the failure is currently caught and logged at DEBUG (sdk_generator.py), so SDK generation continues but the ApiView artifact is silently skipped.
Impact
ApiView token/artifact is not generated for affected packages on Python 3.13 runners, so PRs miss the APIView diff comment.
Workaround (short-term, PR #47608)
Without changing eng/apiview_reqs.txt: pre-install build deps (setuptools, setuptools_scm, wheel) from PyPI and install the reqs with --no-build-isolation so the source build uses the already-installed deps instead of reaching the private feed. See #47608.
Suggested permanent fix
Bump lazy-object-proxy in eng/apiview_reqs.txt to a version that ships a cp313 wheel for Linux x86_64 (e.g. 1.12.0; note 1.11.0 lacks a Linux x86_64 cp313 wheel). That removes the source build entirely and the workaround can then be reverted.
Environment
- Python: 3.13.13 (CI hosted tool cache)
- Run mode: spec-pull-request / release
- Index: azure-sdk private feed (PyPI proxy)
Link
error log in pipeline: https://dev.azure.com/azure-sdk/590cfd2a-581c-4dcb-a12e-6568ce786175/_apis/build/builds/6468061/logs/19

Summary
ApiView token generation fails during SDK generation (
spec-pull-request/releaserun modes) on Python 3.13. The failure originates from installingeng/apiview_reqs.txtineng/tools/azure-sdk-tools/packaging_tools/sdk_generator.py.Root cause
eng/apiview_reqs.txtpinslazy-object-proxy==1.10.0.lazy-object-proxy==1.10.0ships no cp313 wheel (Linux x86_64 wheels exist only for cp38–cp312), so on Python 3.13 pip must build it from source.setuptools_scm>=8, which it tries to fetch from the azure-sdk private feed (--index-url=https://pkgs.dev.azure.com/azure-sdk/public/_packaging/azure-sdk-for-python/pypi/simple/).setuptools_scm, so pip falls back to an interactive credential prompt (User for pkgs.dev.azure.com:). In non-interactive CI this hitsEOFError: EOF when reading a line, aborting the build with exit code 1.Observed error (trimmed)
× installing build dependencies for lazy-object-proxy did not run successfully. Collecting setuptools_scm>=8 User for pkgs.dev.azure.com: ERROR: Exception: ... username = ask_input(f"User for {netloc}: ") if self.prompting else None EOFError: EOF when reading a line ERROR: Failed to build 'lazy-object-proxy' when installing build dependencies for lazy-object-proxy [DEBUG] Fail to generate ApiView token file for azure-mgmt-networkcloud: Command '['python', '-m', 'pip', 'install', '-r', 'eng/apiview_reqs.txt', '--index-url=...']' returned non-zero exit status 1.Observed for
azure-mgmt-networkcloudon Python 3.13.13. Note the failure is currently caught and logged at DEBUG (sdk_generator.py), so SDK generation continues but the ApiView artifact is silently skipped.Impact
ApiView token/artifact is not generated for affected packages on Python 3.13 runners, so PRs miss the APIView diff comment.
Workaround (short-term, PR #47608)
Without changing
eng/apiview_reqs.txt: pre-install build deps (setuptools,setuptools_scm,wheel) from PyPI and install the reqs with--no-build-isolationso the source build uses the already-installed deps instead of reaching the private feed. See #47608.Suggested permanent fix
Bump
lazy-object-proxyineng/apiview_reqs.txtto a version that ships a cp313 wheel for Linux x86_64 (e.g.1.12.0; note1.11.0lacks a Linux x86_64 cp313 wheel). That removes the source build entirely and the workaround can then be reverted.Environment
Link
error log in pipeline: https://dev.azure.com/azure-sdk/590cfd2a-581c-4dcb-a12e-6568ce786175/_apis/build/builds/6468061/logs/19