https://github.com/python/cpython/commit/98bd716479dacb1e618a4271df10b2b67c010c4c
commit: 98bd716479dacb1e618a4271df10b2b67c010c4c
branch: main
author: Ned Batchelder <[email protected]>
committer: nedbat <[email protected]>
date: 2026-08-25T14:05:54-04:00
summary:

Docs(build): linklint is now called sphinx_linklint (#156373)

* Docs(build): linklint is now called sphinx_linklint

* Docs(build): move the lock command to the Makefile

* Update Doc/Makefile

Co-authored-by: Stan Ulbrych <[email protected]>

* Add a comment clarify cooldown (and excludes) and add to `make help`

---------

Co-authored-by: Stan Ulbrych <[email protected]>

files:
M Doc/Makefile
M Doc/conf.py
M Doc/pylock.toml
M Doc/requirements.txt

diff --git a/Doc/Makefile b/Doc/Makefile
index d77ece1e681bcf..ef6ef8c42e3636 100644
--- a/Doc/Makefile
+++ b/Doc/Makefile
@@ -32,6 +32,7 @@ help:
        @echo "Please use \`make <target>' where <target> is one of"
        @echo "  clean      to remove build files"
        @echo "  venv       to create a venv with necessary tools"
+       @echo "  lock       to regenerate the pinned dependencies in 
$(REQUIREMENTS)"
        @echo "  html       to make standalone HTML files"
        @echo "  gettext    to generate POT files"
        @echo "  htmlview   to open the index page built by the html target in 
your browser"
@@ -185,6 +186,19 @@ venv:
                echo "The venv has been created in the $(VENVDIR) directory"; \
        fi
 
+.PHONY: lock
+lock:
+# Dependencies have a 14 day cooldown period to mitigate supply chain attacks,
+# except for sphinx_linklint and python-docs-theme, which are maintained by
+# core team members.
+       uv pip compile requirements.txt \
+               --exclude-newer P14D \
+               --exclude-newer-package sphinx_linklint=PT0S \
+               --exclude-newer-package python-docs-theme=PT0S \
+               --no-cache --output-file $(REQUIREMENTS) \
+               --python-version 3.12 --universal \
+               --custom-compile-command="make lock"
+
 .PHONY: dist-no-html
 dist-no-html: dist-text dist-epub dist-texinfo
 
diff --git a/Doc/conf.py b/Doc/conf.py
index 9b103a594b235c..c768e6fd676a5a 100644
--- a/Doc/conf.py
+++ b/Doc/conf.py
@@ -41,7 +41,7 @@
 
 # Skip if downstream redistributors haven't installed them
 _OPTIONAL_EXTENSIONS = (
-    'linklint.ext',
+    'sphinx_linklint.ext',
     'notfound.extension',
     'sphinxext.opengraph',
     'sphinxcontrib.rsvgconverter',
diff --git a/Doc/pylock.toml b/Doc/pylock.toml
index af4627c2ad31d4..94b7d9d48d646e 100644
--- a/Doc/pylock.toml
+++ b/Doc/pylock.toml
@@ -1,5 +1,5 @@
 # This file was autogenerated by uv via the following command:
-#    uv pip compile Doc/requirements.txt --exclude-newer P14D 
--exclude-newer-package linklint=PT0S --exclude-newer-package 
python-docs-theme=PT0S --exclude-newer-package pygments=PT0S --no-cache 
--output-file Doc/pylock.toml --python-version 3.12 --universal
+#    make lock
 lock-version = "1.0"
 created-by = "uv"
 requires-python = ">=3.12"
@@ -119,12 +119,6 @@ version = "3.1.6"
 sdist = { url = 
"https://files.pythonhosted.org/packages/df/bf/f7da0350254c0ed7c72f3e33cef02e048281fec7ecec5f032d4aac52226b/jinja2-3.1.6.tar.gz";,
 upload-time = 2025-03-05T20:05:02Z, size = 245115, hashes = { sha256 = 
"0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d" } }
 wheels = [{ url = 
"https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl";,
 upload-time = 2025-03-05T20:05:00Z, size = 134899, hashes = { sha256 = 
"85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67" } }]
 
-[[packages]]
-name = "linklint"
-version = "1.0.1"
-sdist = { url = 
"https://files.pythonhosted.org/packages/62/22/c65a97b2192c3c317c472058bf52d7ca88e421998fa8d5c183b2280ab5d4/linklint-1.0.1.tar.gz";,
 upload-time = 2026-06-09T12:30:47Z, size = 22412, hashes = { sha256 = 
"10201b4366edecfbeb3281883aff857dbe77d40bb56f16f212d372f597342d5f" } }
-wheels = [{ url = 
"https://files.pythonhosted.org/packages/7b/d8/b2f1708f55f4dd5358b48d28be07ff8e0dadd6d23e41ead2ed1424e90256/linklint-1.0.1-py3-none-any.whl";,
 upload-time = 2026-06-09T12:30:46Z, size = 12828, hashes = { sha256 = 
"c931f110482f1d17808aa2df78b116adc44d7a14e9e79922c57bf9a7cba40a2d" } }]
-
 [[packages]]
 name = "markupsafe"
 version = "2.1.5"
@@ -190,6 +184,12 @@ version = "8.2.3"
 sdist = { url = 
"https://files.pythonhosted.org/packages/38/ad/4360e50ed56cb483667b8e6dadf2d3fda62359593faabbe749a27c4eaca6/sphinx-8.2.3.tar.gz";,
 upload-time = 2025-03-02T22:31:59Z, size = 8321876, hashes = { sha256 = 
"398ad29dee7f63a75888314e9424d40f52ce5a6a87ae88e7071e80af296ec348" } }
 wheels = [{ url = 
"https://files.pythonhosted.org/packages/31/53/136e9eca6e0b9dc0e1962e2c908fbea2e5ac000c2a2fbd9a35797958c48b/sphinx-8.2.3-py3-none-any.whl";,
 upload-time = 2025-03-02T22:31:56Z, size = 3589741, hashes = { sha256 = 
"4405915165f13521d875a8c29c8970800a0141c14cc5416a38feca4ea5d9b9c3" } }]
 
+[[packages]]
+name = "sphinx-linklint"
+version = "2.0.0"
+sdist = { url = 
"https://files.pythonhosted.org/packages/f6/99/f9947b30fd11e782855a13de1aac7d08634edba1c193a0ee01bf5338531c/sphinx_linklint-2.0.0.tar.gz";,
 upload-time = 2026-08-25T12:47:33Z, size = 23297, hashes = { sha256 = 
"e7ea4d3b1bd83665e9c2ab9fd92c6c645c805956d2e8ca6b0f528f3a9638910d" } }
+wheels = [{ url = 
"https://files.pythonhosted.org/packages/d7/3d/6b96af48e139357e1e041a710d943c4bb79ad149c7aab074df784b4395ec/sphinx_linklint-2.0.0-py3-none-any.whl";,
 upload-time = 2026-08-25T12:47:32Z, size = 13390, hashes = { sha256 = 
"12aa64f3b3faaa6e8a979a7d1f2c38617866652b670e3d19fa0f60a6ce3657ef" } }]
+
 [[packages]]
 name = "sphinx-notfound-page"
 version = "1.0.4"
diff --git a/Doc/requirements.txt b/Doc/requirements.txt
index edaec74546b3c1..b9072b4af54222 100644
--- a/Doc/requirements.txt
+++ b/Doc/requirements.txt
@@ -13,13 +13,12 @@ pygments>=2.21
 
 blurb
 
-sphinxext-opengraph~=0.13.0
+sphinx-linklint
 sphinx-notfound-page~=1.0.0
+sphinxext-opengraph~=0.13.0
 
 # The theme used by the documentation is stored separately, so we need
 # to install that as well.
 python-docs-theme>=2023.3.1,!=2023.7
 
-linklint
-
 -c constraints.txt

_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3//lists/python-checkins.python.org
Member address: [email protected]

Reply via email to