Skip to content

Commit fdab484

Browse files
authored
PEP 751: Make default-group be default-groups (#4308)
Also clarify that using `extras` and `dependency_groups` outside of lock file is an error.
1 parent f663eaa commit fdab484

File tree

1 file changed

+36
-14
lines changed

1 file changed

+36
-14
lines changed

peps/pep-0751.rst

Lines changed: 36 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -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``
806828
and marker expressions' Boolean logic support, allow for expressing arbitrary,
807829
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
10751097
in a single file (which can influence how manageable).
10761098

10771099
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.
10831105

10841106

10851107
========================

0 commit comments

Comments
 (0)