diff --git a/Doc/Makefile b/Doc/Makefile index e60aa3427fe..61a7ce0d098 100644 --- a/Doc/Makefile +++ b/Doc/Makefile @@ -7,6 +7,7 @@ PYTHON = python3 VENVDIR = ./venv SPHINXBUILD = PATH=$(VENVDIR)/bin:$$PATH sphinx-build +SPHINXLINT = PATH=$(VENVDIR)/bin:$$PATH sphinx-lint BLURB = PATH=$(VENVDIR)/bin:$$PATH blurb PAPER = SOURCES = @@ -214,8 +215,8 @@ dist: rm dist/python-$(DISTVERSION)-docs-texinfo.tar check: - $(PYTHON) tools/rstlint.py -i tools -i $(VENVDIR) -i README.rst - $(PYTHON) tools/rstlint.py ../Misc/NEWS.d/next/ + $(SPHINXLINT) -i tools -i $(VENVDIR) -i README.rst + $(SPHINXLINT) ../Misc/NEWS.d/next/ serve: $(PYTHON) ../Tools/scripts/serve.py build/html $(SERVE_PORT) diff --git a/Doc/make.bat b/Doc/make.bat index 7fde0636427..9eaaa468068 100644 --- a/Doc/make.bat +++ b/Doc/make.bat @@ -36,6 +36,16 @@ if not defined BLURB ( set BLURB=%PYTHON% -m blurb ) +if not defined SPHINXLINT ( + %PYTHON% -c "import sphinxlint" > nul 2> nul + if errorlevel 1 ( + echo Installing sphinx-lint with %PYTHON% + %PYTHON% -m pip install sphinx-lint + if errorlevel 1 exit /B + ) + set SPHINXLINT=%PYTHON% -m sphinxlint +) + if "%1" NEQ "htmlhelp" goto :skiphhcsearch if exist "%HTMLHELP%" goto :skiphhcsearch @@ -168,7 +178,7 @@ if EXIST "%BUILDDIR%\html\index.html" ( goto end :check -cmd /S /C "%PYTHON% tools\rstlint.py -i tools" +cmd /S /C "%SPHINXLINT% -i tools" goto end :serve diff --git a/Doc/requirements.txt b/Doc/requirements.txt index 0331a8dbebc..3b28495d4b4 100644 --- a/Doc/requirements.txt +++ b/Doc/requirements.txt @@ -7,6 +7,8 @@ sphinx==4.2.0 blurb +sphinx-lint<1 + # The theme used by the documentation is stored separately, so we need # to install that as well. python-docs-theme>=2022.1 diff --git a/Doc/tools/rstlint.py b/Doc/tools/rstlint.py old mode 100755 new mode 100644 index 33cbaadfce9..d1c53dcb1a6 --- a/Doc/tools/rstlint.py +++ b/Doc/tools/rstlint.py @@ -345,6 +345,11 @@ Options: -v verbose (print all checked file names) count = defaultdict(int) + print("""⚠ rstlint.py is no longer maintained here and will be removed +⚠ in a future release. +⚠ Please use https://pypi.org/p/sphinx-lint instead. +""") + for root, dirs, files in os.walk(path): # ignore subdirs in ignore list if abspath(root) in ignore: diff --git a/Misc/NEWS.d/next/Documentation/2022-02-03-11-24-59.bpo-42238.yJcMa8.rst b/Misc/NEWS.d/next/Documentation/2022-02-03-11-24-59.bpo-42238.yJcMa8.rst new file mode 100644 index 00000000000..a8dffff3fcf --- /dev/null +++ b/Misc/NEWS.d/next/Documentation/2022-02-03-11-24-59.bpo-42238.yJcMa8.rst @@ -0,0 +1,2 @@ +``Doc/tools/rstlint.py`` has moved to its own repository and is now packaged +on PyPI as ``sphinx-lint``. diff --git a/Misc/NEWS.d/next/Library/2022-02-06-08-54-03.bpo-46655.DiLzYv.rst b/Misc/NEWS.d/next/Library/2022-02-06-08-54-03.bpo-46655.DiLzYv.rst index 4f0de9519a0..183e064b830 100644 --- a/Misc/NEWS.d/next/Library/2022-02-06-08-54-03.bpo-46655.DiLzYv.rst +++ b/Misc/NEWS.d/next/Library/2022-02-06-08-54-03.bpo-46655.DiLzYv.rst @@ -1 +1 @@ -In :func:`typing.get_type_hints`, support evaluating bare stringified ``TypeAlias`` annotations. Patch by Gregory Beauregard. \ No newline at end of file +In :func:`typing.get_type_hints`, support evaluating bare stringified ``TypeAlias`` annotations. Patch by Gregory Beauregard.