Skip to content

wave-sdk@2.0.0 on PyPI is unimportable (top-level wave shadows the stdlib) — fixed in wave-av/sdk-python source, needs a publish #86

Description

@yakimoto

wave-sdk@2.0.0 on PyPI fails both of its registry clean-room checks. The published wheel is unimportable through its own documented entry point. The fix exists in wave-av/sdk-python source and is blocked only on a publish.

Grounded

Measured 2026-09-05 against the LIVE PyPI artifact, from a clean detached worktree at this repo's origin/main (6fe7c01), wheel downloaded and installed into a fresh venv with no checkout on sys.path:

node scripts/ga/registry-cleanroom.mjs --python python3.12 --only pypi-wave-sdk,pypi-wave-av-sdk

-- pypi-wave-sdk (pypi: wave-sdk)
   PASS  download: downloaded wave_sdk-2.0.0-py3-none-any.whl from PyPI,
         sha256 2e844943042207b1d53bff7c870501293d0cc4c2d854f6da9270c3e3d3732fc0
         matches the declared digest
   PASS  install: pip installed the downloaded wheel into a fresh venv
   PASS  cleanroom-isolation: no repo checkout on sys.path
   FAIL  py-import-module: `import wave_sdk` raised ModuleNotFoundError: No module named 'wave_sdk'
   FAIL  py-no-stdlib-shadow: distribution `wave-sdk` claims top-level name(s) that collide with
         the CPython stdlib: `wave` (import resolves to stdlib: .../python3.12/wave.py)

The stdlib directory precedes site-packages on sys.path, so import wave always resolves to CPython's Lib/wave.py (WAV audio I/O) and the SDK is unreachable. The artifact is 100% unusable via its documented import on every Python version.

Why a PR in this repository cannot fix it

wave-sdk is published from wave-av/sdk-python, a different repository. That repo's main already carries the rename: the package directory is wave_sdk/ at the repository root and pyproject.toml declares name = "wave-sdk", version = "2.1.0". PyPI's latest for wave-sdk is still 2.0.0 (uploaded 2026-04-03). PyPI refuses re-upload of a published version, so 2.0.0 can never be repaired in place.

Control that proves the fix works once published

The sibling distribution wave-av-sdk (published from sdk-python/ in THIS repo) had the identical defect at 2.0.0. 3.0.0 was published 2026-09-05T03:17:38Z and both checks now PASS:

-- pypi-wave-av-sdk (pypi: wave-av-sdk)
   PASS  py-import-module: `from wave_sdk import Wave` OK
   PASS  py-no-stdlib-shadow: top-level names ['wave_sdk'] do not collide with the stdlib

So the remediation shape is proven end to end. wave-sdk needs the same operator-gated publish of 2.1.0 from wave-av/sdk-python.

What clears it

Publish wave-sdk 2.1.0 from wave-av/sdk-python main, then re-run registry clean-room acceptance (workflow_dispatch, or the 09:00 UTC nightly). Both checks should flip to PASS with no source change in this repo.

Note on the arming ledger

GA-READINESS.md's "Arming window" section on main still lists 7 outstanding clean-room failures including wave-av-sdk@2.0.0. As of the measurement above the live count is 5: 3 on @wave-av/cli@1.0.8 (#85) and the 2 here. That ledger is the stated gate for making cleanroom a required status check, so it should be refreshed from a live run rather than left stale.

Related: #85, #37.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    category:bugSomething is brokenneeds-triageOn the board but missing Type/Area/Prioritytrust:ownerIssue author is repo owner

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions