Build and install workspace members that are dependencies by default (#14663)

Regardless of the presence of a build system, as in
https://github.com/astral-sh/uv/pull/14413

---------

Co-authored-by: John Mumm <jtfmumm@gmail.com>
This commit is contained in:
Zanie Blue 2025-07-17 13:38:02 -05:00
parent 0077f2357f
commit cd40a34522
15 changed files with 791 additions and 67 deletions

View file

@ -1255,6 +1255,7 @@ impl Lock {
root: &Path,
packages: &BTreeMap<PackageName, WorkspaceMember>,
members: &[PackageName],
required_members: &BTreeSet<PackageName>,
requirements: &[Requirement],
constraints: &[Requirement],
overrides: &[Requirement],
@ -1282,7 +1283,10 @@ impl Lock {
// Validate that the member sources have not changed (e.g., that they've switched from
// virtual to non-virtual or vice versa).
for (name, member) in packages {
let expected = !member.pyproject_toml().is_package();
// We don't require a build system, if the workspace member is a dependency
let expected = !member
.pyproject_toml()
.is_package(!required_members.contains(name));
let actual = self
.find_by_name(name)
.ok()