Skip to content

Commit b5f77d1

Browse files
committed
PEP 808: how to teach update
Signed-off-by: Henry Schreiner <henryfs@princeton.edu>
1 parent 93f3c30 commit b5f77d1

File tree

1 file changed

+17
-10
lines changed

1 file changed

+17
-10
lines changed

peps/pep-0808.rst

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@ Abstract
1717
========
1818

1919
This PEP relaxes the constraint on dynamic metadata listed in the ``[project]``
20-
section in ``pyproject.toml`` to allow the static portion of mixed metadata to
21-
be defined in the normal location if the field is a table or array by having
22-
the dynamic fields extend the static ones.
20+
section in ``pyproject.toml`` to allow a static portion of mixed metadata to be
21+
defined in the normal location if the field is a table or array by having the
22+
dynamic fields extend the static ones.
2323

2424
This allows users to opt into allowing a backend to extend metadata while still
2525
keeping the static portions of the metadata defined in the standard location in
@@ -317,19 +317,26 @@ a static component to existing dynamic metadata support.
317317
How to Teach This
318318
=================
319319

320+
If you currently have dynamic metadata, but some list or table entries are
321+
known statically, you can now make that explicit by adding them to the
322+
corresponding static entry in the project table, while keeping the entry in the
323+
``project.dynamic`` list to allow the dynamic portion to be added by your build
324+
backend.
325+
320326
The current guides that state metadata must not be listed in both ``[project]``
321-
and ``project.dynamic`` can be updated to say that some fields can be extended
322-
by ``project.dynamic``. Since dynamic metadata is already an advanced concept,
323-
this will likely not affect most existing tutorial material aimed at
324-
introductory packaging.
327+
and ``project.dynamic`` can be updated to say that lists and tables marked with
328+
``project.dynamic`` can still have static entries. Since dynamic metadata is
329+
already an advanced concept, this will likely not affect most existing tutorial
330+
material aimed at introductory packaging.
325331

326332
The ``pyproject.toml`` `specification <pyprojectspec>`__ will be updated to
327333
include the behavior of fields when specified and also listed in the dynamic
328334
field.
329335

330-
It should also be noted that specifying something in dynamic will require any
331-
tool that requires the full metadata to invoke the backend even if it is
332-
partially statically specified, so it should not be used unless necessary.
336+
It should also be noted that specifying something in ``dynamic`` will require
337+
any tool that requires the full metadata to invoke the backend even if it is
338+
partially statically specified, so it should not be used unless necessary, just
339+
like any other dynamic metadata.
333340

334341

335342
Rejected Ideas

0 commit comments

Comments
 (0)