diff --git a/crates/uv-requirements/src/source_tree.rs b/crates/uv-requirements/src/source_tree.rs index 33be2c1f3..e50d81be6 100644 --- a/crates/uv-requirements/src/source_tree.rs +++ b/crates/uv-requirements/src/source_tree.rs @@ -98,16 +98,21 @@ impl<'a, Context: BuildContext> SourceTreeResolver<'a, Context> { .cloned() .collect::>(); - // Flatten any transitive extras. - let mut requirements = - FlatRequiresDist::from_requirements(metadata.requires_dist, &metadata.name) - .into_iter() - .map(|requirement| Requirement { - origin: Some(origin.clone()), - marker: requirement.marker.simplify_extras(&extras), - ..requirement - }) - .collect::>(); + let mut requirements = Vec::new(); + + // Flatten any transitive extras and include dependencies + // (unless something like --only-group was passed) + if self.groups.prod() { + requirements.extend( + FlatRequiresDist::from_requirements(metadata.requires_dist, &metadata.name) + .into_iter() + .map(|requirement| Requirement { + origin: Some(origin.clone()), + marker: requirement.marker.simplify_extras(&extras), + ..requirement + }), + ); + } // Apply dependency-groups for (group_name, group) in &metadata.dependency_groups { diff --git a/crates/uv/tests/it/pip_compile.rs b/crates/uv/tests/it/pip_compile.rs index 48bc2658a..d316a69af 100644 --- a/crates/uv/tests/it/pip_compile.rs +++ b/crates/uv/tests/it/pip_compile.rs @@ -14481,11 +14481,9 @@ fn dependency_group() -> Result<()> { # This file was autogenerated by uv via the following command: # uv pip compile --cache-dir [CACHE_DIR] pyproject.toml --only-group bar iniconfig==2.0.0 - typing-extensions==4.10.0 - # via project (pyproject.toml) ----- stderr ----- - Resolved 2 packages in [TIME] + Resolved 1 package in [TIME] "###); context = new_context()?; diff --git a/crates/uv/tests/it/pip_install.rs b/crates/uv/tests/it/pip_install.rs index 9cffa5115..404d87db3 100644 --- a/crates/uv/tests/it/pip_install.rs +++ b/crates/uv/tests/it/pip_install.rs @@ -8425,11 +8425,10 @@ fn dependency_group() -> Result<()> { ----- stdout ----- ----- stderr ----- - Resolved 2 packages in [TIME] - Prepared 2 packages in [TIME] - Installed 2 packages in [TIME] + Resolved 1 package in [TIME] + Prepared 1 package in [TIME] + Installed 1 package in [TIME] + iniconfig==2.0.0 - + typing-extensions==4.10.0 "###); context = new_context()?;