@@ -240,20 +240,19 @@ consistent order. Usage of inline tables SHOULD also be kept consistent.
240
240
is, in effect, multi-use even if it only looks to be single-use.
241
241
242
242
243
- ``default-group ``
244
- =================
243
+ ``default-groups ``
244
+ ==================
245
245
246
- - **Type **: String
247
- - **Required? **: no
246
+ - **Type **: Array of strings
247
+ - **Required? **: no; defaults to `` [] ``
248
248
- **Inspiration **: Poetry _, PDM _
249
- - The name of a synthetic dependency group to represent what should be installed
249
+ - The name of synthetic dependency groups to represent what should be installed
250
250
by default (e.g. what ``project.dependencies `` implicitly represents).
251
251
- Meant to be used in situations where ``packages.marker `` necessitates such a
252
252
group to exist.
253
- - The group listed by this key SHOULD NOT be listed in ``dependency-groups `` as
254
- the group is not meant to be directly exposed to users by name but instead via
255
- an installer's UI.
256
- - This group can only be specified when ``dependency-groups `` has values.
253
+ - The groups listed by this key SHOULD NOT be listed in ``dependency-groups `` as
254
+ the groups are not meant to be directly exposed to users by name but instead
255
+ via an installer's UI.
257
256
258
257
259
258
``created-by ``
@@ -802,6 +801,29 @@ operations involving sets:
802
801
python_version ~= "surprise"
803
802
804
803
804
+ Fourth, use of ``extras `` and ``depenendency_groups `` will be considered an
805
+ error outside of lock file (much like ``extra `` outside of
806
+ :ref: `packaging:core-metadata `).
807
+
808
+ .. code-block :: diff
809
+
810
+ diff --git a/source/specifications/dependency-specifiers.rst b/source/specifications/dependency-specifiers.rst
811
+ index 06897da2..2914ef66 100644
812
+ --- a/source/specifications/dependency-specifiers.rst
813
+ +++ b/source/specifications/dependency-specifiers.rst
814
+ @@ -235,6 +235,11 @@ no current specification for this. Regardless, outside of a context where this
815
+ special handling is taking place, the "extra" variable should result in an
816
+ error like all other unknown variables.
817
+
818
+ +The "extras" and "dependency_groups" variables are also special. They are used
819
+ +to specify any requested extras or dependency groups when installing from a lock
820
+ +file. Outside of the context of lock files, these two variables should result in
821
+ +an error like all other unknown variables.
822
+ +
823
+ .. list-table::
824
+ :header-rows: 1
825
+
826
+
805
827
These changes, along with ``packages.extras ``/ ``packages.dependency-groups ``
806
828
and marker expressions' Boolean logic support, allow for expressing arbitrary,
807
829
exhaustive requirements for when a package should be installed based on the
@@ -1075,11 +1097,11 @@ is better or worse than the other, it just changes how much can be written down
1075
1097
in a single file (which can influence how manageable).
1076
1098
1077
1099
Lock files that follow this PEP can be installed by any installer that
1078
- implements the specification. This allows users of a lock file to not not be
1079
- tied to the locker used by the person who produced the lock file. But it is not
1080
- the case that using a different locker will lead to the same result. This could
1081
- be for various reasons, including using different algorithms to determine what
1082
- to lock.
1100
+ implements the specification. This allows users of a lock file to perform an
1101
+ installation to not be tied to the locker used by the person who produced the
1102
+ lock file. But it is not the case that using a different locker will lead to the
1103
+ same result. This could be for various reasons, including using different
1104
+ algorithms to determine what to lock.
1083
1105
1084
1106
1085
1107
========================
0 commit comments