Environment
Fromager version: main (post-0.90.0, commit dbcd337)
Python version: 3.12
OS / architecture: linux / x86_64
Container or local: Container (builder bootstrap)
Bug description
download_wheel() rejects valid wheels whose dist-info directory uses the base version instead of the full filename version including the local segment.
Expected behavior:
A wheel like tensorflow_rocm-2.19.1+rocm7.14.0a20260624-cp312-cp312-linux_x86_64.whl that contains a valid tensorflow_rocm-2.19.1.dist-info/ directory (with RECORD, METADATA, WHEEL) should be accepted, since the local version segment (+rocm7.14.0a20260624) is optional in the dist-info directory name per common packaging practice.
Actual behavior:
wheelfile.WheelFile expects tensorflow_rocm-2.19.1+rocm7.14.0a20260624.dist-info/ to exist inside the zip. When only tensorflow_rocm-2.19.1.dist-info/ is present, it raises:
ERROR Missing tensorflow_rocm-2.19.1+rocm7.14.0a20260624.dist-info/RECORD file
Steps to reproduce / logs:
- Obtain a wheel with a local version in the filename but base-version-only dist-info (e.g., AMD's tensorflow_rocm-2.19.1+rocm7.14.0a20260624-cp312-cp312-linux_x86_64.whl)
- Configure it as a pre-built wheel in fromager settings
- Run fromager bootstrap -- the download succeeds but validation fails:
11:23:39 INFO tensorflow-rocm-2.19.1+rocm7.14.0a20260624: downloading pre-built wheel https://example.com/tensorflow_rocm-2.19.1+rocm7.14.0a20260624-cp312-cp312-linux_x86_64.whl
11:23:54 INFO tensorflow-rocm-2.19.1+rocm7.14.0a20260624: saved /mnt/wheels-repo/prebuilt/tensorflow_rocm-2.19.1+rocm7.14.0a20260624-cp312-cp312-linux_x86_64.whl
11:23:54 ERROR Missing tensorflow_rocm-2.19.1+rocm7.14.0a20260624.dist-info/RECORD file
Inspecting the wheel confirms the dist-info exists under the base version only:
$ unzip -l tensorflow_rocm-2.19.1+rocm7.14.0a20260624-cp312-cp312-linux_x86_64.whl | grep dist-info
tensorflow_rocm-2.19.1.dist-info/METADATA
tensorflow_rocm-2.19.1.dist-info/WHEEL
tensorflow_rocm-2.19.1.dist-info/RECORD
Environment
Fromager version: main (post-0.90.0, commit dbcd337)
Python version: 3.12
OS / architecture: linux / x86_64
Container or local: Container (builder bootstrap)
Bug description
download_wheel() rejects valid wheels whose dist-info directory uses the base version instead of the full filename version including the local segment.
Expected behavior:
A wheel like tensorflow_rocm-2.19.1+rocm7.14.0a20260624-cp312-cp312-linux_x86_64.whl that contains a valid tensorflow_rocm-2.19.1.dist-info/ directory (with RECORD, METADATA, WHEEL) should be accepted, since the local version segment (+rocm7.14.0a20260624) is optional in the dist-info directory name per common packaging practice.
Actual behavior:
wheelfile.WheelFile expects tensorflow_rocm-2.19.1+rocm7.14.0a20260624.dist-info/ to exist inside the zip. When only tensorflow_rocm-2.19.1.dist-info/ is present, it raises:
ERROR Missing tensorflow_rocm-2.19.1+rocm7.14.0a20260624.dist-info/RECORD file
Steps to reproduce / logs:
Inspecting the wheel confirms the dist-info exists under the base version only: