From c0f078d293ac7b30981a2f78bd6ccfe3ebad69df Mon Sep 17 00:00:00 2001 From: Jean Abou Samra Date: Fri, 22 Dec 2023 16:44:37 +0100 Subject: [PATCH] Consistent changelogs for all specs Fixes #1203 --- .../binary-distribution-format.rst | 9 ++---- source/specifications/core-metadata.rst | 20 +++++++++++++ .../specifications/dependency-specifiers.rst | 16 +++++----- .../direct-url-data-structure.rst | 13 ++++++--- source/specifications/direct-url.rst | 4 +-- source/specifications/entry-points.rst | 11 +++++++ .../externally-managed-environments.rst | 2 +- .../specifications/inline-script-metadata.rst | 2 +- source/specifications/name-normalization.rst | 6 ++-- .../platform-compatibility-tags.rst | 19 +++++++----- source/specifications/pyproject-toml.rst | 8 +++-- .../recording-installed-packages.rst | 29 +++++++++---------- .../source-distribution-format.rst | 12 ++++---- source/specifications/version-specifiers.rst | 5 +--- .../specifications/virtual-environments.rst | 6 ++++ 15 files changed, 105 insertions(+), 57 deletions(-) diff --git a/source/specifications/binary-distribution-format.rst b/source/specifications/binary-distribution-format.rst index 6637fed2e..3ca3cc785 100644 --- a/source/specifications/binary-distribution-format.rst +++ b/source/specifications/binary-distribution-format.rst @@ -418,12 +418,9 @@ Is it possible to import Python code directly from a wheel file? History ======= -This specification was originally approved as :pep:`427`. - -The following changes were applied since the initial version: - -- The rules on escaping in wheel filenames were revised, to bring them - into line with what popular tools actually do (February 2021). +- February 2013: This specification was approved through :pep:`427`. +- February 2021: The rules on escaping in wheel filenames were revised, to bring + them into line with what popular tools actually do. Appendix diff --git a/source/specifications/core-metadata.rst b/source/specifications/core-metadata.rst index b8cd5326e..2fb83206c 100644 --- a/source/specifications/core-metadata.rst +++ b/source/specifications/core-metadata.rst @@ -848,6 +848,26 @@ Example:: Obsoletes: Gorgon +History +======= + +- March 2001: Core metadata 1.0 was approved through :pep:`241`. +- April 2003: Core metadata 1.1 was approved through :pep:`314`: +- February 2010: Core metadata 1.2 was approved through :pep:`345`. +- February 2018: Core metadata 2.1 was approved through :pep:`566`. + + - Added ``Description-Content-Type`` and ``Provides-Extra``. + - Added canonical method for transforming metadata to JSON. + - Restricted the grammar of the ``Name`` field. + +- October 2020: Core metadata 2.2 was approved through :pep:`643`. + + - Added the ``Dynamic`` field. + +- March 2022: Core metadata 2.3 was approved through :pep:`685`. + + - Restricted extra names to be normalized. + ---- .. [1] reStructuredText markup: diff --git a/source/specifications/dependency-specifiers.rst b/source/specifications/dependency-specifiers.rst index 6287f3815..85216d655 100644 --- a/source/specifications/dependency-specifiers.rst +++ b/source/specifications/dependency-specifiers.rst @@ -472,14 +472,12 @@ A test program - if the grammar is in a string ``grammar``: print("%s -> %s" % (test, parsed)) -Summary of changes to PEP 508 -============================= +History +======= -The following changes were made based on feedback after its initial -implementation: - -- The definition of ``python_version`` was changed from - ``platform.python_version()[:3]`` to +- November 2015: This specification was approved through :pep:`508`. +- July 2019: The definition of ``python_version`` was `changed + `_ from ``platform.python_version()[:3]`` to ``'.'.join(platform.python_version_tuple()[:2])``, to accommodate potential future versions of Python with 2-digit major and minor versions (e.g. 3.10). [#future_versions]_ @@ -497,3 +495,7 @@ References .. [#future_versions] Future Python versions might be problematic with the definition of Environment Marker Variable ``python_version`` (https://github.com/python/peps/issues/560) + + + +.. _python-version-change: https://mail.python.org/pipermail/distutils-sig/2018-January/031920.html diff --git a/source/specifications/direct-url-data-structure.rst b/source/specifications/direct-url-data-structure.rst index 22900636c..f0ab2e447 100644 --- a/source/specifications/direct-url-data-structure.rst +++ b/source/specifications/direct-url-data-structure.rst @@ -262,10 +262,15 @@ Local directory in editable mode: } } + History ======= -- March 2020: this data structure was originally specified as part of the - ``direct_url.json`` metadata file in :pep:`610` and is formally documented here. -- January 2023: Added the ``archive_info.hashes`` key - ([discussion](https://discuss.python.org/t/22299)). +- March 2020: This specification was approved through :pep:`610`, defining + the ``direct_url.json`` metadata file. +- January 2023: Added the ``archive_info.hashes`` key (`discussion + `_). + + + +.. _archive-info-hashes: https://discuss.python.org/t/22299 diff --git a/source/specifications/direct-url.rst b/source/specifications/direct-url.rst index 5c0bd1b21..babecd842 100644 --- a/source/specifications/direct-url.rst +++ b/source/specifications/direct-url.rst @@ -62,8 +62,8 @@ Commands that *do not* generate a ``direct_url.json`` * ``pip install app`` * ``pip install app --no-index --find-links https://example.com/`` + History ======= -- March 2020: the ``direct_url.json`` metadata file was originally specified in - :pep:`610` and is formally documented here. +- March 2020: This specification was approved through :pep:`610`. diff --git a/source/specifications/entry-points.rst b/source/specifications/entry-points.rst index 90a18a0bc..6a601c977 100644 --- a/source/specifications/entry-points.rst +++ b/source/specifications/entry-points.rst @@ -158,3 +158,14 @@ which defines where command-line tools are found. As files are created from the names, and some filesystems are case-insensitive, packages should avoid using names in these groups which differ only in case. The behaviour of install tools when names differ only in case is undefined. + + +History +======= + +- October 2017: This specification was written to formalize the existing + entry points feature of setuptools (discussion_). + + + +.. _discussion: https://mail.python.org/pipermail/distutils-sig/2017-October/031585.html diff --git a/source/specifications/externally-managed-environments.rst b/source/specifications/externally-managed-environments.rst index f6845e737..2944eb3da 100644 --- a/source/specifications/externally-managed-environments.rst +++ b/source/specifications/externally-managed-environments.rst @@ -471,4 +471,4 @@ CC0-1.0-Universal license, whichever is more permissive. History ======= -This specification was originally approved as :pep:`668`. +- June 2022: This specification was approved through :pep:`668`. diff --git a/source/specifications/inline-script-metadata.rst b/source/specifications/inline-script-metadata.rst index 021c316fe..f18f4f17e 100644 --- a/source/specifications/inline-script-metadata.rst +++ b/source/specifications/inline-script-metadata.rst @@ -238,4 +238,4 @@ the highest available version of Python that is compatible with the script's History ======= -This specification was originally defined as :pep:`723`. +- October 2023: This specification was conditionally approved through :pep:`723`. diff --git a/source/specifications/name-normalization.rst b/source/specifications/name-normalization.rst index 64be4a1d1..18a59e1cc 100644 --- a/source/specifications/name-normalization.rst +++ b/source/specifications/name-normalization.rst @@ -41,5 +41,7 @@ This means that the following names are all equivalent: History ======= -- `September 2015 `_: normalized name was originally specified in :pep:`503#normalized-names`. -- `November 2015 `_: valid non-normalized name was originally specified in :pep:`508#names`. +- September 2015: The specification of name normalized was approved through + :pep:`503 <503#normalized-names>`. +- November 2015: The specification of valid names was approved through + :pep:`508 <508#names>`. diff --git a/source/specifications/platform-compatibility-tags.rst b/source/specifications/platform-compatibility-tags.rst index df7da59c5..52ffadfa3 100644 --- a/source/specifications/platform-compatibility-tags.rst +++ b/source/specifications/platform-compatibility-tags.rst @@ -9,13 +9,6 @@ Platform compatibility tags allow build tools to mark distributions as being compatible with specific platforms, and allows installers to understand which distributions are compatible with the system they are running on. -The following PEPs contributed to this spec: - -1. :pep:`425` -2. :pep:`513` -3. :pep:`571` -4. :pep:`599` -5. :pep:`600` Overview ======== @@ -302,3 +295,15 @@ Why is the ABI tag (the second tag) sometimes "none" in the reference implementa implementation at the time of writing guesses "none". Ideally it would detect "py27(d|m|u)" analogous to newer versions of Python, but in the meantime "none" is a good enough way to say "don't know". + + +History +======= + +- February 2013: The original version of this specification was approved through + :pep:`425`. +- January 2016: The ``manylinux1`` tag was approved through :pep:`513`. +- April 2018: The ``manylinux2010`` tag was approved through :pep:`571`. +- July 2019: The ``manylinux2014`` tag was approved through :pep:`599`. +- November 2019: The ``manylinux_x_y`` perennial tag was approved through + :pep:`600`. diff --git a/source/specifications/pyproject-toml.rst b/source/specifications/pyproject-toml.rst index 92811958b..1580b3772 100644 --- a/source/specifications/pyproject-toml.rst +++ b/source/specifications/pyproject-toml.rst @@ -441,8 +441,12 @@ the subtable ``tool.$NAME`` if, and only if, they own the entry for History ======= -This specification was originally defined in :pep:`518` (``[build-system]`` -and ``[tool]`` tables) and :pep:`621` (``[project]`` table). +- May 2016: The initial specification of the ``pyproject.toml`` file, with just + a ``[build-system]`` containing a ``requires`` key and a ``[tool]`` table, was + approved through :pep:`518`. + +- November 2020: The specification of the ``[project]`` table was approved + through :pep:`621`. diff --git a/source/specifications/recording-installed-packages.rst b/source/specifications/recording-installed-packages.rst index ca8d5f0d5..957e4f36a 100644 --- a/source/specifications/recording-installed-packages.rst +++ b/source/specifications/recording-installed-packages.rst @@ -19,22 +19,6 @@ files in a format specific to Python tooling, it should still record the name and version of the installed project. -History and change workflow -=========================== - -The metadata described here was first specified in :pep:`376`, and later -amended in :pep:`627` (and other PEPs). -It was formerly known as *Database of Installed Python Distributions*. -As with other PyPA specifications, editorial amendments with no functional -impact may be made through the GitHub pull request workflow. Proposals for -functional changes that would require amendments to package building and/or -installation tools must be made through the PEP process (see :pep:`1`). - -While this document is the normative specification, the PEPs that introduce -changes to it may include additional information such as rationales and -backwards compatibility considerations. - - The .dist-info directory ======================== @@ -262,3 +246,16 @@ ensuring both locations appear on the default Python import path). In some circumstances, it may be desirable to block even installation of additional packages via Python-specific tools. For these cases refer to :ref:`externally-managed-environments` + + +History +======= + +- June 2009: The original version of this specification was approved through + :pep:`376`. At the time, it was known as the *Database of Installed Python + Distributions*. +- March 2020: The specification of the ``direct_url.json`` file was approved + through :pep:`610`. It is only mentioned on this page; see :ref:`direct-url` + for the full definition. +- September 2020: Various amendments and clarifications were approved through + :pep:`627`. diff --git a/source/specifications/source-distribution-format.rst b/source/specifications/source-distribution-format.rst index 55737dc07..bae618df1 100644 --- a/source/specifications/source-distribution-format.rst +++ b/source/specifications/source-distribution-format.rst @@ -143,8 +143,10 @@ verification* in ``tarfile`` documentation apply to their tool. History ======= -* August 2023: Standardized the source distribution archive features (:pep:`721`) -* September 2022: Standardized the filename of a source distribution (:pep:`625`) -* July 2021: Defined what a source tree is -* November 2020: :pep:`643` converted to this specification -* December 2000: Source distributions standardized in :pep:`643` +* November 2020: The original version of this specification was approved through + :pep:`643`. +* July 2021: Defined what a source tree is. +* September 2022: The filename of a source distribution was standardized through + :pep:`625`. +* August 2023: Source distribution archive features were standardized through + :pep:`721`. diff --git a/source/specifications/version-specifiers.rst b/source/specifications/version-specifiers.rst index 202031758..8129fd53d 100644 --- a/source/specifications/version-specifiers.rst +++ b/source/specifications/version-specifiers.rst @@ -1261,7 +1261,4 @@ project): History ======= -This specification was originally approved as :pep:`440`, -addressing several limitations of the previous attempt -at standardized versioning, as described in :pep:`345` -and :pep:`386`. +- August 2014: This specification was approved through :pep:`440`. diff --git a/source/specifications/virtual-environments.rst b/source/specifications/virtual-environments.rst index 77c8c3627..6c8eee530 100644 --- a/source/specifications/virtual-environments.rst +++ b/source/specifications/virtual-environments.rst @@ -48,3 +48,9 @@ Even in the absence of a ``pyvenv.cfg`` file, any approach (e.g. ``sys.prefix`` and ``sys.base_prefix`` having different values, while still providing a matching default package installation scheme in ``sysconfig``, will be detected and behave as a Python virtual environment. + + +History +======= + +- May 2012: This specification was approved through :pep:`405`.