diff --git a/crates/uv-distribution/src/metadata/lowering.rs b/crates/uv-distribution/src/metadata/lowering.rs index 99fe85cde..f787ca45e 100644 --- a/crates/uv-distribution/src/metadata/lowering.rs +++ b/crates/uv-distribution/src/metadata/lowering.rs @@ -198,7 +198,6 @@ pub(crate) fn lower_requirement( }, Source::Workspace { workspace: is_workspace, - editable, } => { if !is_workspace { return Err(LoweringError::WorkspaceFalse); @@ -238,7 +237,7 @@ pub(crate) fn lower_requirement( install_path: member.root().clone(), lock_path: relative_to_main_workspace, url, - editable: editable.unwrap_or(true), + editable: true, } } Source::CatchAll { .. } => { diff --git a/crates/uv-workspace/src/pyproject.rs b/crates/uv-workspace/src/pyproject.rs index b9d57e340..c2f2badd7 100644 --- a/crates/uv-workspace/src/pyproject.rs +++ b/crates/uv-workspace/src/pyproject.rs @@ -224,8 +224,6 @@ pub enum Source { /// When set to `false`, the package will be fetched from the remote index, rather than /// included as a workspace package. workspace: bool, - /// `true` by default. - editable: Option, }, /// A catch-all variant used to emit precise error messages when deserializing. CatchAll { @@ -286,10 +284,7 @@ impl Source { if workspace { return match source { RequirementSource::Registry { .. } | RequirementSource::Directory { .. } => { - Ok(Some(Source::Workspace { - editable, - workspace: true, - })) + Ok(Some(Source::Workspace { workspace: true })) } RequirementSource::Url { .. } => { Err(SourceError::WorkspacePackageUrl(name.to_string())) diff --git a/crates/uv-workspace/src/workspace.rs b/crates/uv-workspace/src/workspace.rs index 9047c6fdc..6dad72e6e 100644 --- a/crates/uv-workspace/src/workspace.rs +++ b/crates/uv-workspace/src/workspace.rs @@ -1555,8 +1555,7 @@ mod tests { }, "sources": { "bird-feeder": { - "workspace": true, - "editable": null + "workspace": true } }, "pyproject_toml": { @@ -1569,8 +1568,7 @@ mod tests { "uv": { "sources": { "bird-feeder": { - "workspace": true, - "editable": null + "workspace": true } }, "workspace": { diff --git a/crates/uv/tests/edit.rs b/crates/uv/tests/edit.rs index 914f5ef99..a11ef0d9e 100644 --- a/crates/uv/tests/edit.rs +++ b/crates/uv/tests/edit.rs @@ -1367,7 +1367,7 @@ fn add_workspace_editable() -> Result<()> { ] [tool.uv.sources] - child2 = { workspace = true, editable = true } + child2 = { workspace = true } "### ); }); diff --git a/docs/concepts/dependencies.md b/docs/concepts/dependencies.md index 0590cfd46..e767645bb 100644 --- a/docs/concepts/dependencies.md +++ b/docs/concepts/dependencies.md @@ -197,10 +197,9 @@ $ uv add ~/projects/bar/ ### Workspace member To declare a dependency on a workspace member, add the member name with `{ workspace = true }`. All -workspace members must be explicitly stated. Workspace members are -[editable](#editable-dependencies) by default; `editable = false` may be included to install them as -regular dependencies. See the [workspace](./workspaces.md) documentation for more details on -workspaces. +workspace members must be explicitly stated. Workspace members are always +[editable](#editable-dependencies) . See the [workspace](./workspaces.md) documentation for more +details on workspaces. ```toml title="pyproject.toml" [project] diff --git a/uv.schema.json b/uv.schema.json index 2cc9bf7cc..0a86e538b 100644 --- a/uv.schema.json +++ b/uv.schema.json @@ -1210,13 +1210,6 @@ "workspace" ], "properties": { - "editable": { - "description": "`true` by default.", - "type": [ - "boolean", - "null" - ] - }, "workspace": { "description": "When set to `false`, the package will be fetched from the remote index, rather than included as a workspace package.", "type": "boolean"