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

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions