@@ -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 {
@@ -620,7 +620,7 @@ impl Lock {
620620
621621 // Add any dev dependencies.
622622 for group in dev. iter ( ) {
623- for dep in root. dev_dependencies . get ( group) . into_iter ( ) . flatten ( ) {
623+ for dep in root. dependency_groups . get ( group) . into_iter ( ) . flatten ( ) {
624624 if dep. complexified_marker . evaluate ( marker_env, & [ ] ) {
625625 let dep_dist = self . find_by_id ( & dep. package_id ) ;
626626 if seen. insert ( ( & dep. package_id , None ) ) {
@@ -1234,10 +1234,10 @@ impl Lock {
12341234 }
12351235 }
12361236
1237- // Validate the `dev-dependencies ` metadata.
1237+ // Validate the `dependency-groups ` metadata.
12381238 {
12391239 let expected: BTreeMap < GroupName , BTreeSet < Requirement > > = metadata
1240- . dev_dependencies
1240+ . dependency_groups
12411241 . into_iter ( )
12421242 . map ( |( group, requirements) | {
12431243 Ok :: < _ , LockError > ( (
@@ -1251,7 +1251,7 @@ impl Lock {
12511251 . collect :: < Result < _ , _ > > ( ) ?;
12521252 let actual: BTreeMap < GroupName , BTreeSet < Requirement > > = package
12531253 . metadata
1254- . requires_dev
1254+ . dependency_groups
12551255 . iter ( )
12561256 . map ( |( group, requirements) | {
12571257 Ok :: < _ , LockError > ( (
@@ -1266,7 +1266,7 @@ impl Lock {
12661266 . collect :: < Result < _ , _ > > ( ) ?;
12671267
12681268 if expected != actual {
1269- return Ok ( SatisfiesResult :: MismatchedDevDependencies (
1269+ return Ok ( SatisfiesResult :: MismatchedDependencyGroups (
12701270 & package. id . name ,
12711271 & package. id . version ,
12721272 expected,
@@ -1294,7 +1294,7 @@ impl Lock {
12941294 }
12951295 }
12961296
1297- for dependencies in package. dev_dependencies . values ( ) {
1297+ for dependencies in package. dependency_groups . values ( ) {
12981298 for dep in dependencies {
12991299 if seen. insert ( & dep. package_id ) {
13001300 let dep_dist = self . find_by_id ( & dep. package_id ) ;
@@ -1358,8 +1358,8 @@ pub enum SatisfiesResult<'lock> {
13581358 BTreeSet < Requirement > ,
13591359 BTreeSet < Requirement > ,
13601360 ) ,
1361- /// A package in the lockfile contains different `dev-dependencies ` metadata than expected.
1362- MismatchedDevDependencies (
1361+ /// A package in the lockfile contains different `dependency-group ` metadata than expected.
1362+ MismatchedDependencyGroups (
13631363 & ' lock PackageName ,
13641364 & ' lock Version ,
13651365 BTreeMap < GroupName , BTreeSet < Requirement > > ,
@@ -1544,8 +1544,8 @@ pub struct Package {
15441544 dependencies : Vec < Dependency > ,
15451545 /// The resolved optional dependencies of the package.
15461546 optional_dependencies : BTreeMap < ExtraName , Vec < Dependency > > ,
1547- /// The resolved development dependencies of the package.
1548- dev_dependencies : BTreeMap < GroupName , Vec < Dependency > > ,
1547+ /// The resolved PEP 735 dependency groups of the package.
1548+ dependency_groups : BTreeMap < GroupName , Vec < Dependency > > ,
15491549 /// The exact requirements from the package metadata.
15501550 metadata : PackageMetadata ,
15511551}
@@ -1573,14 +1573,14 @@ impl Package {
15731573 . collect :: < Result < _ , _ > > ( )
15741574 . map_err ( LockErrorKind :: RequirementRelativePath ) ?
15751575 } ;
1576- let requires_dev = if id. source . is_immutable ( ) {
1576+ let dependency_groups = if id. source . is_immutable ( ) {
15771577 BTreeMap :: default ( )
15781578 } else {
15791579 annotated_dist
15801580 . metadata
15811581 . as_ref ( )
15821582 . expect ( "metadata is present" )
1583- . dev_dependencies
1583+ . dependency_groups
15841584 . iter ( )
15851585 . map ( |( group, requirements) | {
15861586 let requirements = requirements
@@ -1600,10 +1600,10 @@ impl Package {
16001600 fork_markers,
16011601 dependencies : vec ! [ ] ,
16021602 optional_dependencies : BTreeMap :: default ( ) ,
1603- dev_dependencies : BTreeMap :: default ( ) ,
1603+ dependency_groups : BTreeMap :: default ( ) ,
16041604 metadata : PackageMetadata {
16051605 requires_dist,
1606- requires_dev ,
1606+ dependency_groups ,
16071607 } ,
16081608 } )
16091609 }
@@ -1679,18 +1679,18 @@ impl Package {
16791679 Ok ( ( ) )
16801680 }
16811681
1682- /// Add the [`AnnotatedDist`] as a development dependency of the [`Package`].
1683- fn add_dev_dependency (
1682+ /// Add the [`AnnotatedDist`] to a dependency group of the [`Package`].
1683+ fn add_group_dependency (
16841684 & mut self ,
16851685 requires_python : & RequiresPython ,
1686- dev : GroupName ,
1686+ group : GroupName ,
16871687 annotated_dist : & AnnotatedDist ,
16881688 marker : MarkerTree ,
16891689 root : & Path ,
16901690 ) -> Result < ( ) , LockError > {
16911691 let dep = Dependency :: from_annotated_dist ( requires_python, annotated_dist, marker, root) ?;
1692- let dev_deps = self . dev_dependencies . entry ( dev ) . or_default ( ) ;
1693- for existing_dep in & mut * dev_deps {
1692+ let deps = self . dependency_groups . entry ( group ) . or_default ( ) ;
1693+ for existing_dep in & mut * deps {
16941694 if existing_dep. package_id == dep. package_id
16951695 // See note in add_dependency for why we use
16961696 // simplified markers here.
@@ -1701,7 +1701,7 @@ impl Package {
17011701 }
17021702 }
17031703
1704- dev_deps . push ( dep) ;
1704+ deps . push ( dep) ;
17051705 Ok ( ( ) )
17061706 }
17071707
@@ -2051,19 +2051,19 @@ impl Package {
20512051 }
20522052 }
20532053
2054- if !self . dev_dependencies . is_empty ( ) {
2055- let mut dev_dependencies = Table :: new ( ) ;
2056- for ( extra, deps) in & self . dev_dependencies {
2054+ if !self . dependency_groups . is_empty ( ) {
2055+ let mut dependency_groups = Table :: new ( ) ;
2056+ for ( extra, deps) in & self . dependency_groups {
20572057 let deps = each_element_on_its_line_array ( deps. iter ( ) . map ( |dep| {
20582058 dep. to_toml ( requires_python, dist_count_by_name)
20592059 . into_inline_table ( )
20602060 } ) ) ;
20612061 if !deps. is_empty ( ) {
2062- dev_dependencies . insert ( extra. as_ref ( ) , value ( deps) ) ;
2062+ dependency_groups . insert ( extra. as_ref ( ) , value ( deps) ) ;
20632063 }
20642064 }
2065- if !dev_dependencies . is_empty ( ) {
2066- table. insert ( "dev-dependencies " , Item :: Table ( dev_dependencies ) ) ;
2065+ if !dependency_groups . is_empty ( ) {
2066+ table. insert ( "dependency-groups " , Item :: Table ( dependency_groups ) ) ;
20672067 }
20682068 }
20692069
@@ -2106,9 +2106,9 @@ impl Package {
21062106 metadata_table. insert ( "requires-dist" , value ( requires_dist) ) ;
21072107 }
21082108
2109- if !self . metadata . requires_dev . is_empty ( ) {
2110- let mut requires_dev = Table :: new ( ) ;
2111- for ( extra, deps) in & self . metadata . requires_dev {
2109+ if !self . metadata . dependency_groups . is_empty ( ) {
2110+ let mut dependency_groups = Table :: new ( ) ;
2111+ for ( extra, deps) in & self . metadata . dependency_groups {
21122112 let deps = deps
21132113 . iter ( )
21142114 . map ( |requirement| {
@@ -2124,11 +2124,11 @@ impl Package {
21242124 deps => each_element_on_its_line_array ( deps. iter ( ) ) ,
21252125 } ;
21262126 if !deps. is_empty ( ) {
2127- requires_dev . insert ( extra. as_ref ( ) , value ( deps) ) ;
2127+ dependency_groups . insert ( extra. as_ref ( ) , value ( deps) ) ;
21282128 }
21292129 }
2130- if !requires_dev . is_empty ( ) {
2131- metadata_table. insert ( "requires-dev " , Item :: Table ( requires_dev ) ) ;
2130+ if !dependency_groups . is_empty ( ) {
2131+ metadata_table. insert ( "dependency-groups " , Item :: Table ( dependency_groups ) ) ;
21322132 }
21332133 }
21342134
@@ -2238,17 +2238,17 @@ struct PackageWire {
22382238 dependencies : Vec < DependencyWire > ,
22392239 #[ serde( default ) ]
22402240 optional_dependencies : BTreeMap < ExtraName , Vec < DependencyWire > > ,
2241- #[ serde( default ) ]
2242- dev_dependencies : BTreeMap < GroupName , Vec < DependencyWire > > ,
2241+ #[ serde( default , alias = "dev-dependencies" ) ]
2242+ dependency_groups : BTreeMap < GroupName , Vec < DependencyWire > > ,
22432243}
22442244
22452245#[ derive( Clone , Default , Debug , Eq , PartialEq , serde:: Deserialize ) ]
22462246#[ serde( rename_all = "kebab-case" ) ]
22472247struct PackageMetadata {
22482248 #[ serde( default ) ]
22492249 requires_dist : BTreeSet < Requirement > ,
2250- #[ serde( default ) ]
2251- requires_dev : BTreeMap < GroupName , BTreeSet < Requirement > > ,
2250+ #[ serde( default , alias = "requires-dev" ) ]
2251+ dependency_groups : BTreeMap < GroupName , BTreeSet < Requirement > > ,
22522252}
22532253
22542254impl PackageWire {
@@ -2278,8 +2278,8 @@ impl PackageWire {
22782278 . into_iter ( )
22792279 . map ( |( extra, deps) | Ok ( ( extra, unwire_deps ( deps) ?) ) )
22802280 . collect :: < Result < _ , LockError > > ( ) ?,
2281- dev_dependencies : self
2282- . dev_dependencies
2281+ dependency_groups : self
2282+ . dependency_groups
22832283 . into_iter ( )
22842284 . map ( |( group, deps) | Ok ( ( group, unwire_deps ( deps) ?) ) )
22852285 . collect :: < Result < _ , LockError > > ( ) ?,
0 commit comments