Skip to content

feature: uv Workspace Support #5575

@nickthegroot

Description

@nickthegroot

Feature request

https://docs.astral.sh/uv/concepts/projects/workspaces/

uv allows projects to define a workspace and reference local packages in the workspace as dependencies.
For example:

[project]
# ...snip
dependencies = ["bird-feeder", "tqdm>=4,<5"]

[tool.uv.sources]
bird-feeder = { workspace = true }

Using such workspace dependencies in a bentoml project thus excludes it from using pyproject.toml based configurations.

╰─ bentoml build .
...snip
INFO: Locking PyPI package versions.
INFO: Locking packages for x86_64-manylinux_2_36. Pass `--platform` option to specify the platform.
  × No solution found when resolving dependencies:
  ╰─▶ Because bird-feeder was not found in the package registry and you require bird-feeder, we can conclude that your requirements are unsatisfiable.

Ideally, bentoml build could capture the uv workspaces and correctly add them as dependencies. The docs seem to suggest uv is already used under the hood for locking.

Motivation

Currently the only workaround is to use alternative build systems (e.g. building into wheels, then using a bentofile.yaml). Adding this would massively simplify the build process for those who utilize uv workspaces.

Other

Happy to contribute if help is desired, although can't make any promises about schedule.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions