Skip to content

Commit bdee98f

Browse files
committed
docs: clarify PEP 639 license field semantics
1 parent ded8541 commit bdee98f

1 file changed

Lines changed: 10 additions & 4 deletions

File tree

‎source/guides/writing-pyproject-toml.rst‎

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -323,11 +323,13 @@ You can also specify the format explicitly, like this:
323323
``license`` and ``license-files``
324324
---------------------------------
325325

326-
As per :pep:`639`, licenses should be declared with two fields:
326+
:pep:`639` defines two fields for modern license metadata. They serve
327+
different purposes and can be used independently:
327328

328-
- ``license`` is an :term:`SPDX license expression <License Expression>`
329+
- ``license`` declares an :term:`SPDX license expression <License Expression>`
329330
consisting of one or more :term:`license identifiers <License Identifier>`.
330-
- ``license-files`` is a list of license file glob patterns.
331+
- ``license-files`` declares the license and other legal files that should be
332+
included in distribution metadata, using a list of glob patterns.
331333

332334
A previous PEP had specified ``license`` to be a table with a ``file`` or a
333335
``text`` key, this format is now deprecated. Most :term:`build backends<build
@@ -343,12 +345,16 @@ backend>` now support the new format as shown in the following table.
343345
- poetry-core
344346
- uv-build
345347
* - 1.27.0
346-
- 77.0.3
348+
- 77.0.0
347349
- 3.12
348350
- 2.4.0
349351
- 2.2.0
350352
- 0.7.19
351353

354+
The table records the first backend release that introduced :pep:`639`
355+
support; it is not a recommendation to pin projects to those historical
356+
versions. Prefer a current supported backend release when possible.
357+
352358

353359
.. _license:
354360

0 commit comments

Comments
 (0)