Skip to content

Commit fc84fb6

Browse files
authored
Merge branch 'main' into clarify-environment-marker-comparisons
2 parents 6d887c3 + 3ff10b0 commit fc84fb6

9 files changed

Lines changed: 46 additions & 15 deletions

source/discussions/deploying-python-applications.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ services, and DLL/EXE COM servers might work but it is not actively supported.
9797
The distutils extension is released under the MIT-licence and Mozilla
9898
Public License 2.0.
9999

100-
.. __: https://devguide.python.org/#status-of-python-branches
100+
.. __: https://devguide.python.org/versions/
101101

102102
macOS
103103
-----

source/discussions/versioning.rst

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ examples of version numbers [#version-examples]_:
2727
- A post-release of an alpha release (possible, but discouraged): ``1.2.0a1.post1``
2828
- A simple version with only two components: ``23.12``
2929
- A simple version with just one component: ``42``
30-
- A version with an epoch: ``1!1.0``
30+
- A version with an epoch (discouraged): ``1!1.0``
3131

3232
Projects can use a cycle of pre-releases to support testing by their users
3333
before a final release. In order, the steps are: alpha releases, beta releases,
@@ -46,13 +46,14 @@ notes. They should not be used for bug fixes; these should be done with a new
4646
final release (e.g., incrementing the third component when using semantic
4747
versioning).
4848

49-
Finally, epochs, a rarely used feature, serve to fix the sorting order when
50-
changing the versioning scheme. For example, if a project is using calendar
51-
versioning, with versions like 23.12, and switches to semantic versioning, with
52-
versions like 1.0, the comparison between 1.0 and 23.12 will go the wrong way.
53-
To correct this, the new version numbers should have an explicit epoch, as in
54-
"1!1.0", in order to be treated as more recent than the old version numbers.
55-
49+
Finally, epochs were intended to fix the sorting order when changing the
50+
versioning scheme. For example, if a project was using calendar versioning, with
51+
versions like ``23.12``, and switched to semantic versioning, with versions like
52+
``1.0``, the comparison between ``1.0`` and ``23.12`` would go the wrong way. To
53+
correct this, the new version numbers would have an explicit epoch, as in
54+
``1!1.0``, in order to be treated as more recent than the old version numbers.
55+
However, this is discouraged, and it is preferable to use a higher version
56+
number that is unlikely to cause user confusion, such as ``100.0``.
5657

5758

5859
Semantic versioning vs. calendar versioning

source/glossary.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ Glossary
1414

1515
Build Backend
1616

17-
A library that takes a source tree
17+
A library that takes a :term:`source tree <Project Source Tree>`
1818
and builds a :term:`source distribution <Source Distribution (or "sdist")>` or
1919
:term:`built distribution <Built Distribution>` from it.
2020
The build is delegated to the backend by a

source/guides/analyzing-pypi-package-downloads.rst

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -333,6 +333,14 @@ Usage:
333333
The `pandas-gbq`_ project allows for accessing query results via `Pandas`_.
334334

335335

336+
``ClickPy``
337+
-----------
338+
339+
The `ClickPy`_ project provides a public application to visualize download
340+
statistics, with free direct SQL access to the underlying open-source
341+
`ClickHouse`_ database, updated daily.
342+
343+
336344
References
337345
==========
338346

@@ -346,3 +354,5 @@ References
346354
.. _google-cloud-bigquery: https://cloud.google.com/bigquery/docs/reference/libraries
347355
.. _pandas-gbq: https://pandas-gbq.readthedocs.io/en/latest/
348356
.. _Pandas: https://pandas.pydata.org/
357+
.. _ClickHouse: https://github.com/ClickHouse/ClickHouse
358+
.. _Clickpy: https://clickpy.clickhouse.com/

source/guides/writing-pyproject-toml.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -413,6 +413,7 @@ A list of PyPI classifiers that apply to your project. Check the
413413

414414
.. code-block:: toml
415415
416+
[project]
416417
classifiers = [
417418
# How mature is this project? Common values are
418419
# 3 - Alpha

source/shared/build-backend-tabs.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,5 +38,5 @@
3838
.. code-block:: toml
3939
4040
[build-system]
41-
requires = ["uv_build >= 0.10.0, <0.11.0"]
41+
requires = ["uv_build >= 0.10.10, <0.11.0"]
4242
build-backend = "uv_build"

source/specifications/pypirc.rst

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,11 @@ indexes <Package Index>` (referred to here as "repositories"), so that you don't
1010
have to enter the URL, username, or password whenever you upload a package with
1111
:ref:`twine` or :ref:`flit`.
1212

13+
The :file:`.pypirc` file **SHOULD** be UTF-8 encoded.
14+
15+
Tools that read or write :file:`.pypirc` files may not function correctly
16+
if another character encoding is used.
17+
1318
The format (originally defined by the :ref:`distutils` package) is:
1419

1520
.. code-block:: ini

source/specifications/pyproject-toml.rst

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,6 @@
1414
The ``pyproject.toml`` file acts as a configuration file for packaging-related
1515
tools (as well as other tools).
1616

17-
.. note:: This specification was originally defined in :pep:`518` and :pep:`621`.
18-
1917
The ``pyproject.toml`` file is written in `TOML <https://toml.io>`_. Three
2018
tables are currently specified, namely
2119
:ref:`[build-system] <pyproject-build-system-table>`,

source/specifications/version-specifiers.rst

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -394,6 +394,21 @@ from an earlier epoch::
394394
1!1.1
395395
1!2.0
396396

397+
.. note::
398+
399+
Use of nonzero epochs is discouraged. They are often not supported or
400+
discouraged by downstream packaging where Python packages may need to be
401+
consumed, and due to their scarce use they may also not be well supported by
402+
Python packaging tools.
403+
404+
When version scheme needs to be changed, it is preferable to continue with
405+
monotonically increasing numbers in epoch zero. For example, the version
406+
2026.x could be unambiguously followed by 3000.x.
407+
408+
See `Discouraging use of epoch segments in versions
409+
<https://discuss.python.org/t/discouraging-use-of-epoch-segments-in-versions/105811>`__
410+
for the relevant discussion.
411+
397412

398413
.. _version-specifiers-normalization:
399414

@@ -590,8 +605,8 @@ and post-releases for minor corrections::
590605
1.0.dev2
591606
1.0.dev3
592607
1.0.dev4
593-
1.0c1
594-
1.0c2
608+
1.0rc1
609+
1.0rc2
595610
1.0
596611
1.0.post1
597612
1.1.dev1
@@ -1273,3 +1288,4 @@ History
12731288
- May 2025: Clarify that development releases are a form of pre-release when
12741289
they are handled.
12751290
- Nov 2025: Make arbitrary equality case insensitivity explicit.
1291+
- Jan 2026: The use of epochs was discouraged.

0 commit comments

Comments
 (0)