Skip to content

Make py_wheel provide depset of files #3068

@rickeylev

Description

@rickeylev

The basic goal is to allow depending on a build-time generated wheel (i.e. py_wheel without having to go through the zip/unzip process of creating a wheel archive. Wheels may be large in size, so the process of staging, archiving, and extracting them is unnecessary overhead.

So the idea is py_wheel provides (prefix, files) information, which can then be used by consumers. This then allows e.g.

py_wheel(name="foo_whl", ...)
py_wheel_as_py_library(
  name = "foo_whl_as_pylib",
  srcs = [":foo_whl"]
)
py_test(
  name="foo",
  deps = ["foo_whl_as_pylib"],
)

Where py_wheel_as_py_library returns PyInfo() et al pointing to what the whl would extract to (i.e. a directory with the contents of the wheel).

Looking at py_wheel, this looks quite doable, since Starlark is already generating most (if not all?) of what goes into the wheel, and the wheelmaker.py program is mostly just zip's the files up.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions