@@ -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" ) ]
22272227struct 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
22342234impl 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 > > ( ) ?,
0 commit comments