@@ -240,20 +240,19 @@ consistent order. Usage of inline tables SHOULD also be kept consistent.
240240 is, in effect, multi-use even if it only looks to be single-use.
241241
242242
243- ``default-group ``
244- =================
243+ ``default-groups ``
244+ ==================
245245
246- - **Type **: String
247- - **Required? **: no
246+ - **Type **: Array of strings
247+ - **Required? **: no; defaults to `` [] ``
248248- **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
250250 by default (e.g. what ``project.dependencies `` implicitly represents).
251251- Meant to be used in situations where ``packages.marker `` necessitates such a
252252 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.
257256
258257
259258``created-by ``
@@ -802,6 +801,29 @@ operations involving sets:
802801 python_version ~= "surprise"
803802
804803
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+
805827 These changes, along with ``packages.extras ``/ ``packages.dependency-groups ``
806828and marker expressions' Boolean logic support, allow for expressing arbitrary,
807829exhaustive 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
10751097in a single file (which can influence how manageable).
10761098
10771099Lock 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.
10831105
10841106
10851107========================
0 commit comments