Skip to content

Commit 8cd185c

Browse files
authored
Merge branch 'main' into remove-setuptools-wheel-upgrade
2 parents 81f39b0 + a205ebe commit 8cd185c

8 files changed

Lines changed: 50 additions & 22 deletions

File tree

.github/workflows/test.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ jobs:
2424
name: ${{ matrix.noxenv }}
2525
if: ${{ github.repository_owner == 'pypa' || github.event_name != 'schedule' }}
2626
runs-on: ubuntu-latest
27+
timeout-minutes: 20
2728
strategy:
2829
matrix:
2930
noxenv:
@@ -47,6 +48,9 @@ jobs:
4748
python -m pip install --upgrade nox virtualenv
4849
4950
- name: Nox ${{ matrix.noxenv }}
51+
env:
52+
# Authenticate github.com requests during linkcheck to avoid rate limits.
53+
GITHUB_TOKEN: ${{ github.token }}
5054
run: |
5155
python -m nox -s ${{ matrix.noxenv }}
5256

source/conf.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,8 +160,11 @@
160160
# Temporarily ignored due to expired TLS cert.
161161
# Ref: https://github.com/pypa/packaging.python.org/issues/1998
162162
r"https://blog\.ganssle\.io/.*",
163+
# Temporarily ignored due to expired TLS cert.
164+
r"https://kivy.org/.*",
163165
]
164-
linkcheck_retries = 5
166+
linkcheck_retries = 2
167+
linkcheck_timeout = 30
165168
# Ignore anchors for common targets when we know they likely won't be found
166169
linkcheck_anchors_ignore_for_url = [
167170
# GitHub synthesises anchors in JavaScript, so Sphinx can't find them in the HTML
@@ -171,6 +174,13 @@
171174
# https://github.com/pypa/packaging.python.org/issues/1744
172175
r"https://pypi\.org/",
173176
]
177+
# Authenticate requests to github.com (when a token is available) to avoid
178+
# unauthenticated rate limits that can stall linkcheck for hours on CI.
179+
if _gh_token := os.getenv("GITHUB_TOKEN"):
180+
linkcheck_request_headers = {
181+
"https://github.com/": {"Authorization": f"Bearer {_gh_token}"},
182+
"https://api.github.com/": {"Authorization": f"Bearer {_gh_token}"},
183+
}
174184

175185
# -- Options for extlinks ----------------------------------------------------------
176186
# https://www.sphinx-doc.org/en/master/usage/extensions/extlinks.html#configuration

source/guides/supporting-multiple-python-versions.rst

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -62,9 +62,8 @@ of many continuous-integration systems. There are two hosted services which
6262
when used in conjunction provide automated testing across Linux, Mac and
6363
Windows:
6464

65-
- `Travis CI <https://travis-ci.com>`_ provides both a Linux and a macOS
66-
environment. The Linux environment is Ubuntu 12.04 LTS Server Edition 64 bit
67-
while the macOS is 10.9.2 at the time of writing.
65+
- `GitHub Actions <https://docs.github.com/en/actions>`_ provides Windows,
66+
Linux and a macOS environments.
6867
- `Appveyor <https://www.appveyor.com/>`_ provides a Windows environment
6968
(Windows Server 2012).
7069

@@ -76,7 +75,7 @@ Windows:
7675
TODO How do we keep the Travis Linux and macOS versions up-to-date in this
7776
document?
7877

79-
Both `Travis CI`_ and Appveyor_ require a `YAML
78+
Both `GitHub Actions`_ and Appveyor_ require a `YAML
8079
<https://yaml.org>`_-formatted file as specification for the instructions
8180
for testing. If any tests fail, the output log for that specific configuration
8281
can be inspected.

source/guides/supporting-windows-using-appveyor.rst

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,6 @@ Many projects are developed on Unix by default, and providing Windows support
2020
can be a challenge, because setting up a suitable Windows test environment is
2121
non-trivial, and may require buying software licenses.
2222

23-
The Appveyor service is a continuous integration service, much like the
24-
better-known `Travis`_ service that is commonly used for testing by projects
25-
hosted on `GitHub`_. However, unlike Travis, the build workers on Appveyor are
26-
Windows hosts and have the necessary compilers installed to build Python
27-
extensions.
28-
2923
Windows users typically do not have access to a C compiler, and therefore are
3024
reliant on projects that use C extensions distributing binary wheels on PyPI in
3125
order for the distribution to be installable via ``python -m pip install <dist>``. By
@@ -46,8 +40,7 @@ your project is hosted on one of those two services, setting up Appveyor
4640
integration is straightforward.
4741

4842
Once you have set up your Appveyor account and added your project, Appveyor will
49-
automatically build your project each time a commit occurs. This behaviour will
50-
be familiar to users of Travis.
43+
automatically build your project each time a commit occurs.
5144

5245
Adding Appveyor support to your project
5346
=======================================
@@ -179,7 +172,7 @@ other CI systems).
179172

180173
2. When used interactively, ``tox`` allows you to run your tests against multiple
181174
environments (often, this means multiple Python versions). This feature is not as
182-
useful in a CI environment like Travis or Appveyor, where all tests are run in
175+
useful in a CI environment like Appveyor, where all tests are run in
183176
isolated environments for each configuration. As a result, projects often supply
184177
an argument ``-e ENVNAME`` to ``tox`` to specify which environment to use (there
185178
are default environments for most versions of Python).
@@ -237,6 +230,6 @@ For reference, the SDK setup support script is listed here:
237230
:linenos:
238231

239232
.. _Appveyor: https://www.appveyor.com/
240-
.. _Travis: https://travis-ci.com/
241233
.. _GitHub: https://github.com
234+
.. _GitHub Actions: https://docs.github.com/en/actions
242235
.. _Bitbucket: https://bitbucket.org/

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.7, <0.11.0"]
41+
requires = ["uv_build >= 0.11.7, <0.12.0"]
4242
build-backend = "uv_build"

source/specifications/glob-patterns.rst

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ Valid glob patterns
1515
For PyPA purposes, a *valid glob pattern* MUST be a string matched against
1616
filesystem entries as specified below:
1717

18-
- Alphanumeric characters, underscores (``_``), hyphens (``-``) and dots (``.``)
19-
MUST be matched verbatim.
18+
- Alphanumeric characters, spaces (`` ``), underscores (``_``), hyphens (``-``),
19+
and dots (``.``) MUST be matched verbatim.
2020

2121
- Special glob characters: ``*``, ``?``, ``**`` and character ranges: ``[]``
2222
containing only the verbatim matched characters MUST be supported.
@@ -107,9 +107,15 @@ The code below is as a simple reference implementation:
107107
raise ValueError(
108108
f"Pattern {pattern!r} should be relative and must not start with '/'"
109109
)
110-
if re.match(r'^[\w\-\.\/\*\?\[\]]+$', pattern) is None:
110+
if re.match(r'^[\w \-\.\/\*\?\[\]]+$', pattern) is None:
111111
raise ValueError(f"Pattern '{pattern}' contains invalid characters.")
112112
found = glob(pattern, recursive=True)
113113
if not found:
114114
raise ValueError(f"Pattern '{pattern}' did not match any files.")
115115
return found
116+
117+
History
118+
=======
119+
120+
- January 2025: Initial version
121+
- March 2026: Treat spaces as a verbatim character

source/specifications/pylock-toml.rst

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -449,15 +449,26 @@ See :ref:`pylock-packages-vcs-subdirectory`.
449449
``packages.archive.url``
450450
''''''''''''''''''''''''
451451

452-
See :ref:`pylock-packages-vcs-url`.
452+
- **Type**: string
453+
- **Required?**: if :ref:`pylock-packages-archive-path` is not specified
454+
- **Inspiration**: :ref:`direct-url-data-structure-archive`
455+
- The URL_ to the archive.
453456

454457

455458
.. _pylock-packages-archive-path:
456459

457460
``packages.archive.path``
458461
'''''''''''''''''''''''''
459462

460-
See :ref:`pylock-packages-vcs-path`.
463+
- **Type**: string
464+
- **Required?**: if :ref:`pylock-packages-archive-url` is not specified
465+
- **Inspiration**: :ref:`direct-url-data-structure-archive`
466+
- The path to the archive.
467+
- If a relative path is used it MUST be relative to the location of this file.
468+
- If the path is relative it MAY use POSIX-style path separators explicitly
469+
for portability.
470+
- If :ref:`pylock-packages-archive-url` is also specified, the filename as
471+
specified by this key takes precedence.
461472

462473

463474
.. _pylock-packages-archive-size:
@@ -554,6 +565,8 @@ See :ref:`pylock-packages-vcs-subdirectory`.
554565
the same value
555566
- **Inspiration**: PDM_, Poetry_, uv_
556567
- The file name of the :ref:`source-distribution-format-sdist` file.
568+
- If specified, this key's value takes precedence over the file name found in
569+
either :ref:`pylock-packages-sdist-url` or :ref:`pylock-packages-sdist-path`.
557570

558571

559572
.. _pylock-packages-sdist-upload-time:
@@ -623,6 +636,8 @@ See :ref:`pylock-packages-archive-hashes`.
623636
the same value
624637
- **Inspiration**: PDM_, Poetry_, uv_
625638
- The file name of the :ref:`binary-distribution-format` file.
639+
- If specified, this key's value takes precedence over the file name found in
640+
either :ref:`pylock-packages-wheels-url` or :ref:`pylock-packages-wheels-path`.
626641

627642

628643
.. _pylock-packages-wheels-upload-time:
@@ -826,6 +841,7 @@ History
826841
-------
827842

828843
- April 2025: Initial version, approved via :pep:`751`.
844+
- March 2026: Clarify file name precedence for archives, sdists, and wheels.
829845

830846

831847
.. _Content-Length: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Length

source/specifications/pylock-toml/pylock.example.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
lock-version = '1.0'
22
environments = ["sys_platform == 'win32'", "sys_platform == 'linux'"]
3-
requires-python = '== 3.12'
3+
requires-python = '== 3.12.*'
44
created-by = 'mousebender'
55

66
[[packages]]

0 commit comments

Comments
 (0)