Skip to content

Workspace members with conflicts have empty uv export output #18608

@tsudol-plaid

Description

@tsudol-plaid

Summary

Workspace members that are listed in a tools.uv.conflicts entry with another workspace member get an empty file from running uv export --package <member>.

MRE:

  1. Create a new uv project and cd into it: uv init test_proj && cd test_proj
  2. Create 2 new workspace members: uv init chronon and uv init thrifter
  3. Mark the two workspace members as conflicting in pyproject.toml:
[tool.uv]
conflicts = [
    [
        { package = "chronon" },
        { package = "thrifter" },
    ],
]
  1. Add chronon-ai to chronon: uv add --package chronon 'chronon-ai==0.0.109'
    (This is the latest released version of chronon, and this specific example goes away if chronon upgrades their thrift dependency.)
  2. Add thrift to thrifter: uv add --package thrifter 'thrift>0.15'
  3. There is now a dependency conflict between the workspace members: chronon-ai requires thrift<0.14 and thrifter requires thrift>0.15.
  4. Run uv export --package chronon and uv export --package thrifter. Observe the empty output for both.

For additional steps, you could add a new workspace member (uv init safe), add a non-conflicting dep to it (uv add --package safe click, for example), and then export it (uv export --package safe) and see it does have real output.

Platform

Darwin 24.6.0 arm64

Version

uv 0.10.4 (Homebrew 2026-02-17)

Python version

Python 3.13.12

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