@@ -29,9 +29,6 @@ frameworks.
29
29
This PEP proposes using SBOM documents included in Python packages as a
30
30
means to improve automated software measurability for Python packages.
31
31
32
- The changes will update the
33
- `Core Metadata specification <coremetadataspec _>`__ to version 2.5.
34
-
35
32
Motivation
36
33
==========
37
34
@@ -155,13 +152,19 @@ begin emitting the new metadata version, again wait for releases, and only then
155
152
can projects begin using the new features. Even with this careful approach it's
156
153
not guaranteed that tools won't break on new metadata versions and fields.
157
154
158
- To avoid this delay, this PEP proposes a new mechanism ``[additional-files] ``
159
- to safely add data to a Python package through a registry of reserved names that
155
+ To avoid this delay, simplify overall how to include SBOMs, and to give
156
+ flexibility to build backends and tools, this PEP proposes a new top-level table
157
+ in ``pyproject.toml ``, ``[additional-files] ``, to safely add data to a Python
158
+ package through a registry of reserved names that
160
159
avoids the need for new metadata fields and versions. This mechanism allows
161
160
build backends and tools to begin using the features described in this PEP
162
161
immediately after acceptance without the head-of-line blocking on other
163
162
projects adopting the PEP.
164
163
164
+ A new top-level table was chosen over using the ``[project] `` table because,
165
+ as described in :pep: `621 `, the ``[project] `` table is used for storing core
166
+ metadata and this mechanism doesn't use core metadata.
167
+
165
168
What are the differences between PEP 770 and PEP 725?
166
169
-----------------------------------------------------
167
170
@@ -172,8 +175,8 @@ software within Python packaging metadata. This section aims to show how these
172
175
two PEPs are tracking different information and serving different use-cases:
173
176
174
177
* PEP 725 describes **abstract dependencies **, such as requiring "a C compiler"
175
- as a build-time dependency (``virtual:compiler/c ``) or an "OpenSSL-like
176
- library" (``pkg:generic/openssl ``). PEP 770 describes
178
+ as a build-time dependency (``virtual:compiler/c ``) or needing to link "the
179
+ OpenSSL library" at build time (``pkg:generic/openssl ``). PEP 770 describes
177
180
**concrete dependencies **, more akin to dependencies in a "lock file", such as
178
181
an exact name, version, architecture, and
179
182
hash of a software library distributed through AlmaLinux distribution
@@ -241,14 +244,17 @@ the ``.dist-info`` directory for the :term:`distribution archive`
241
244
and :term: `installed project ` s project types. Future additions to this registry
242
245
will be made through the PEP process. The initial values in this registry are:
243
246
244
- ================= ==========
245
- Subdirectory name PEP
246
- ================= ==========
247
+ ================= ==============
248
+ Subdirectory name PEP / Standard
249
+ ================= ==============
247
250
``licenses `` :pep: `639 `
248
- ``license_files `` N/A (See :ref: ` 770-backwards-compat ` )
249
- ``LICENSES `` N/A (See :ref: ` 770-backwards-compat `)
251
+ ``license_files `` :pep: ` 639 ` (draft-only )
252
+ ``LICENSES `` ` REUSE licensing framework < https://reuse.software >`__
250
253
``sboms `` :pep: `770 `
251
- ================= ==========
254
+ ================= ==============
255
+
256
+ See :ref: `770-backwards-compat ` for a complete methodology for
257
+ creating this initial set of values to avoid backwards incompatibility issues.
252
258
253
259
.. _770-spec-project-source-metadata :
254
260
0 commit comments