Skip to content

Commit 166f81a

Browse files
committed
Rename dev dependencies to dependency groups in lockfile
1 parent c246fbf commit 166f81a

28 files changed

+278
-135
lines changed

crates/uv-distribution/src/metadata/mod.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ pub struct Metadata {
6666
pub requires_dist: Vec<uv_pypi_types::Requirement>,
6767
pub requires_python: Option<VersionSpecifiers>,
6868
pub provides_extras: Vec<ExtraName>,
69-
pub dev_dependencies: BTreeMap<GroupName, Vec<uv_pypi_types::Requirement>>,
69+
pub dependency_groups: BTreeMap<GroupName, Vec<uv_pypi_types::Requirement>>,
7070
}
7171

7272
impl Metadata {
@@ -83,7 +83,7 @@ impl Metadata {
8383
.collect(),
8484
requires_python: metadata.requires_python,
8585
provides_extras: metadata.provides_extras,
86-
dev_dependencies: BTreeMap::default(),
86+
dependency_groups: BTreeMap::default(),
8787
}
8888
}
8989

@@ -101,7 +101,7 @@ impl Metadata {
101101
name,
102102
requires_dist,
103103
provides_extras,
104-
dev_dependencies,
104+
dependency_groups,
105105
} = RequiresDist::from_project_maybe_workspace(
106106
uv_pypi_types::RequiresDist {
107107
name: metadata.name,
@@ -122,7 +122,7 @@ impl Metadata {
122122
requires_dist,
123123
requires_python: metadata.requires_python,
124124
provides_extras,
125-
dev_dependencies,
125+
dependency_groups,
126126
})
127127
}
128128
}

crates/uv-distribution/src/metadata/requires_dist.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ pub struct RequiresDist {
1919
pub name: PackageName,
2020
pub requires_dist: Vec<uv_pypi_types::Requirement>,
2121
pub provides_extras: Vec<ExtraName>,
22-
pub dev_dependencies: BTreeMap<GroupName, Vec<uv_pypi_types::Requirement>>,
22+
pub dependency_groups: BTreeMap<GroupName, Vec<uv_pypi_types::Requirement>>,
2323
}
2424

2525
impl RequiresDist {
@@ -34,7 +34,7 @@ impl RequiresDist {
3434
.map(uv_pypi_types::Requirement::from)
3535
.collect(),
3636
provides_extras: metadata.provides_extras,
37-
dev_dependencies: BTreeMap::default(),
37+
dependency_groups: BTreeMap::default(),
3838
}
3939
}
4040

@@ -101,7 +101,7 @@ impl RequiresDist {
101101
SourceStrategy::Disabled => &empty,
102102
};
103103

104-
let dev_dependencies = {
104+
let dependency_groups = {
105105
// First, collect `tool.uv.dev_dependencies`
106106
let dev_dependencies = project_workspace
107107
.current_project()
@@ -218,7 +218,7 @@ impl RequiresDist {
218218
Ok(Self {
219219
name: metadata.name,
220220
requires_dist,
221-
dev_dependencies,
221+
dependency_groups,
222222
provides_extras: metadata.provides_extras,
223223
})
224224
}
@@ -230,7 +230,7 @@ impl From<Metadata> for RequiresDist {
230230
name: metadata.name,
231231
requires_dist: metadata.requires_dist,
232232
provides_extras: metadata.provides_extras,
233-
dev_dependencies: metadata.dev_dependencies,
233+
dependency_groups: metadata.dependency_groups,
234234
}
235235
}
236236
}

crates/uv-requirements/src/lookahead.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@ impl<'a, Context: BuildContext> LookaheadResolver<'a, Context> {
195195
.into_iter()
196196
.chain(
197197
metadata
198-
.dev_dependencies
198+
.dependency_groups
199199
.into_iter()
200200
.filter_map(|(group, dependencies)| {
201201
if self.dev.contains(&group) {

crates/uv-resolver/src/lock/mod.rs

Lines changed: 42 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ impl Lock {
211211
continue;
212212
};
213213
let marker = edge.weight().clone();
214-
package.add_dev_dependency(
214+
package.add_group_dependency(
215215
&requires_python,
216216
group.clone(),
217217
dependency_dist,
@@ -344,7 +344,7 @@ impl Lock {
344344
}
345345

346346
// Perform the same validation for dev dependencies.
347-
for (group, dependencies) in &mut package.dev_dependencies {
347+
for (group, dependencies) in &mut package.dependency_groups {
348348
dependencies.sort();
349349
for windows in dependencies.windows(2) {
350350
let (dep1, dep2) = (&windows[0], &windows[1]);
@@ -390,7 +390,7 @@ impl Lock {
390390
.dependencies
391391
.iter_mut()
392392
.chain(dist.optional_dependencies.values_mut().flatten())
393-
.chain(dist.dev_dependencies.values_mut().flatten())
393+
.chain(dist.dependency_groups.values_mut().flatten())
394394
{
395395
dep.extra.retain(|extra| {
396396
extras_by_id
@@ -428,7 +428,7 @@ impl Lock {
428428
}
429429

430430
// Perform the same validation for dev dependencies.
431-
for dependencies in dist.dev_dependencies.values() {
431+
for dependencies in dist.dependency_groups.values() {
432432
for dep in dependencies {
433433
if !by_id.contains_key(&dep.package_id) {
434434
return Err(LockErrorKind::UnrecognizedDependency {
@@ -615,7 +615,7 @@ impl Lock {
615615

616616
// Add any dev dependencies.
617617
for group in dev.iter() {
618-
for dep in root.dev_dependencies.get(group).into_iter().flatten() {
618+
for dep in root.dependency_groups.get(group).into_iter().flatten() {
619619
if dep.complexified_marker.evaluate(marker_env, &[]) {
620620
let dep_dist = self.find_by_id(&dep.package_id);
621621
if seen.insert((&dep.package_id, None)) {
@@ -1229,10 +1229,10 @@ impl Lock {
12291229
}
12301230
}
12311231

1232-
// Validate the `dev-dependencies` metadata.
1232+
// Validate the `dependency-groups` metadata.
12331233
{
12341234
let expected: BTreeMap<GroupName, BTreeSet<Requirement>> = metadata
1235-
.dev_dependencies
1235+
.dependency_groups
12361236
.into_iter()
12371237
.map(|(group, requirements)| {
12381238
Ok::<_, LockError>((
@@ -1246,7 +1246,7 @@ impl Lock {
12461246
.collect::<Result<_, _>>()?;
12471247
let actual: BTreeMap<GroupName, BTreeSet<Requirement>> = package
12481248
.metadata
1249-
.requires_dev
1249+
.dependency_groups
12501250
.iter()
12511251
.map(|(group, requirements)| {
12521252
Ok::<_, LockError>((
@@ -1261,7 +1261,7 @@ impl Lock {
12611261
.collect::<Result<_, _>>()?;
12621262

12631263
if expected != actual {
1264-
return Ok(SatisfiesResult::MismatchedDevDependencies(
1264+
return Ok(SatisfiesResult::MismatchedDependencyGroups(
12651265
&package.id.name,
12661266
&package.id.version,
12671267
expected,
@@ -1289,7 +1289,7 @@ impl Lock {
12891289
}
12901290
}
12911291

1292-
for dependencies in package.dev_dependencies.values() {
1292+
for dependencies in package.dependency_groups.values() {
12931293
for dep in dependencies {
12941294
if seen.insert(&dep.package_id) {
12951295
let dep_dist = self.find_by_id(&dep.package_id);
@@ -1353,8 +1353,8 @@ pub enum SatisfiesResult<'lock> {
13531353
BTreeSet<Requirement>,
13541354
BTreeSet<Requirement>,
13551355
),
1356-
/// A package in the lockfile contains different `dev-dependencies` metadata than expected.
1357-
MismatchedDevDependencies(
1356+
/// A package in the lockfile contains different `dependency-group` metadata than expected.
1357+
MismatchedDependencyGroups(
13581358
&'lock PackageName,
13591359
&'lock Version,
13601360
BTreeMap<GroupName, BTreeSet<Requirement>>,
@@ -1524,8 +1524,8 @@ pub struct Package {
15241524
dependencies: Vec<Dependency>,
15251525
/// The resolved optional dependencies of the package.
15261526
optional_dependencies: BTreeMap<ExtraName, Vec<Dependency>>,
1527-
/// The resolved development dependencies of the package.
1528-
dev_dependencies: BTreeMap<GroupName, Vec<Dependency>>,
1527+
/// The resolved PEP 735 dependency groups of the package.
1528+
dependency_groups: BTreeMap<GroupName, Vec<Dependency>>,
15291529
/// The exact requirements from the package metadata.
15301530
metadata: PackageMetadata,
15311531
}
@@ -1553,14 +1553,14 @@ impl Package {
15531553
.collect::<Result<_, _>>()
15541554
.map_err(LockErrorKind::RequirementRelativePath)?
15551555
};
1556-
let requires_dev = if id.source.is_immutable() {
1556+
let dependency_groups = if id.source.is_immutable() {
15571557
BTreeMap::default()
15581558
} else {
15591559
annotated_dist
15601560
.metadata
15611561
.as_ref()
15621562
.expect("metadata is present")
1563-
.dev_dependencies
1563+
.dependency_groups
15641564
.iter()
15651565
.map(|(group, requirements)| {
15661566
let requirements = requirements
@@ -1580,10 +1580,10 @@ impl Package {
15801580
fork_markers,
15811581
dependencies: vec![],
15821582
optional_dependencies: BTreeMap::default(),
1583-
dev_dependencies: BTreeMap::default(),
1583+
dependency_groups: BTreeMap::default(),
15841584
metadata: PackageMetadata {
15851585
requires_dist,
1586-
requires_dev,
1586+
dependency_groups,
15871587
},
15881588
})
15891589
}
@@ -1659,18 +1659,18 @@ impl Package {
16591659
Ok(())
16601660
}
16611661

1662-
/// Add the [`AnnotatedDist`] as a development dependency of the [`Package`].
1663-
fn add_dev_dependency(
1662+
/// Add the [`AnnotatedDist`] to a dependency group of the [`Package`].
1663+
fn add_group_dependency(
16641664
&mut self,
16651665
requires_python: &RequiresPython,
1666-
dev: GroupName,
1666+
group: GroupName,
16671667
annotated_dist: &AnnotatedDist,
16681668
marker: MarkerTree,
16691669
root: &Path,
16701670
) -> Result<(), LockError> {
16711671
let dep = Dependency::from_annotated_dist(requires_python, annotated_dist, marker, root)?;
1672-
let dev_deps = self.dev_dependencies.entry(dev).or_default();
1673-
for existing_dep in &mut *dev_deps {
1672+
let deps = self.dependency_groups.entry(group).or_default();
1673+
for existing_dep in &mut *deps {
16741674
if existing_dep.package_id == dep.package_id
16751675
// See note in add_dependency for why we use
16761676
// simplified markers here.
@@ -1681,7 +1681,7 @@ impl Package {
16811681
}
16821682
}
16831683

1684-
dev_deps.push(dep);
1684+
deps.push(dep);
16851685
Ok(())
16861686
}
16871687

@@ -2031,19 +2031,19 @@ impl Package {
20312031
}
20322032
}
20332033

2034-
if !self.dev_dependencies.is_empty() {
2035-
let mut dev_dependencies = Table::new();
2036-
for (extra, deps) in &self.dev_dependencies {
2034+
if !self.dependency_groups.is_empty() {
2035+
let mut dependency_groups = Table::new();
2036+
for (extra, deps) in &self.dependency_groups {
20372037
let deps = each_element_on_its_line_array(deps.iter().map(|dep| {
20382038
dep.to_toml(requires_python, dist_count_by_name)
20392039
.into_inline_table()
20402040
}));
20412041
if !deps.is_empty() {
2042-
dev_dependencies.insert(extra.as_ref(), value(deps));
2042+
dependency_groups.insert(extra.as_ref(), value(deps));
20432043
}
20442044
}
2045-
if !dev_dependencies.is_empty() {
2046-
table.insert("dev-dependencies", Item::Table(dev_dependencies));
2045+
if !dependency_groups.is_empty() {
2046+
table.insert("dependency-groups", Item::Table(dependency_groups));
20472047
}
20482048
}
20492049

@@ -2086,9 +2086,9 @@ impl Package {
20862086
metadata_table.insert("requires-dist", value(requires_dist));
20872087
}
20882088

2089-
if !self.metadata.requires_dev.is_empty() {
2090-
let mut requires_dev = Table::new();
2091-
for (extra, deps) in &self.metadata.requires_dev {
2089+
if !self.metadata.dependency_groups.is_empty() {
2090+
let mut dependency_groups = Table::new();
2091+
for (extra, deps) in &self.metadata.dependency_groups {
20922092
let deps = deps
20932093
.iter()
20942094
.map(|requirement| {
@@ -2104,11 +2104,11 @@ impl Package {
21042104
deps => each_element_on_its_line_array(deps.iter()),
21052105
};
21062106
if !deps.is_empty() {
2107-
requires_dev.insert(extra.as_ref(), value(deps));
2107+
dependency_groups.insert(extra.as_ref(), value(deps));
21082108
}
21092109
}
2110-
if !requires_dev.is_empty() {
2111-
metadata_table.insert("requires-dev", Item::Table(requires_dev));
2110+
if !dependency_groups.is_empty() {
2111+
metadata_table.insert("dependency-groups", Item::Table(dependency_groups));
21122112
}
21132113
}
21142114

@@ -2218,17 +2218,17 @@ struct PackageWire {
22182218
dependencies: Vec<DependencyWire>,
22192219
#[serde(default)]
22202220
optional_dependencies: BTreeMap<ExtraName, Vec<DependencyWire>>,
2221-
#[serde(default)]
2222-
dev_dependencies: BTreeMap<GroupName, Vec<DependencyWire>>,
2221+
#[serde(default, alias = "dev-dependencies")]
2222+
dependency_groups: BTreeMap<GroupName, Vec<DependencyWire>>,
22232223
}
22242224

22252225
#[derive(Clone, Default, Debug, Eq, PartialEq, serde::Deserialize)]
22262226
#[serde(rename_all = "kebab-case")]
22272227
struct PackageMetadata {
22282228
#[serde(default)]
22292229
requires_dist: BTreeSet<Requirement>,
2230-
#[serde(default)]
2231-
requires_dev: BTreeMap<GroupName, BTreeSet<Requirement>>,
2230+
#[serde(default, alias = "requires-dev")]
2231+
dependency_groups: BTreeMap<GroupName, BTreeSet<Requirement>>,
22322232
}
22332233

22342234
impl PackageWire {
@@ -2258,8 +2258,8 @@ impl PackageWire {
22582258
.into_iter()
22592259
.map(|(extra, deps)| Ok((extra, unwire_deps(deps)?)))
22602260
.collect::<Result<_, LockError>>()?,
2261-
dev_dependencies: self
2262-
.dev_dependencies
2261+
dependency_groups: self
2262+
.dependency_groups
22632263
.into_iter()
22642264
.map(|(group, deps)| Ok((group, unwire_deps(deps)?)))
22652265
.collect::<Result<_, LockError>>()?,

crates/uv-resolver/src/lock/requirements_txt.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ impl<'lock> RequirementsTxtExport<'lock> {
8686

8787
// Add any dev dependencies.
8888
for group in dev.iter() {
89-
for dep in root.dev_dependencies.get(group).into_iter().flatten() {
89+
for dep in root.dependency_groups.get(group).into_iter().flatten() {
9090
let dep_dist = lock.find_by_id(&dep.package_id);
9191

9292
// Add the dependency to the graph.

crates/uv-resolver/src/lock/snapshots/uv_resolver__lock__tests__hash_optional_missing.snap

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
source: crates/uv-resolver/src/lock/mod.rs
2+
source: crates/uv-resolver/src/lock/tests.rs
33
expression: result
44
---
55
Ok(
@@ -78,10 +78,10 @@ Ok(
7878
fork_markers: [],
7979
dependencies: [],
8080
optional_dependencies: {},
81-
dev_dependencies: {},
81+
dependency_groups: {},
8282
metadata: PackageMetadata {
8383
requires_dist: {},
84-
requires_dev: {},
84+
dependency_groups: {},
8585
},
8686
},
8787
],

crates/uv-resolver/src/lock/snapshots/uv_resolver__lock__tests__hash_optional_present.snap

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
source: crates/uv-resolver/src/lock/mod.rs
2+
source: crates/uv-resolver/src/lock/tests.rs
33
expression: result
44
---
55
Ok(
@@ -85,10 +85,10 @@ Ok(
8585
fork_markers: [],
8686
dependencies: [],
8787
optional_dependencies: {},
88-
dev_dependencies: {},
88+
dependency_groups: {},
8989
metadata: PackageMetadata {
9090
requires_dist: {},
91-
requires_dev: {},
91+
dependency_groups: {},
9292
},
9393
},
9494
],

0 commit comments

Comments
 (0)