Skip to content

[Bug]: download_wheel rejects valid wheels whose dist-info directory omits the local version segment #1239

Description

@pmattsso

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:

  1. 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)
  2. Configure it as a pre-built wheel in fromager settings
  3. 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions