I can see setuptools being upgraded from 49.6.0 to 50.0.0 as a difference. I can see the below command to print sphinx-build version error out in the makefile but unfortunately the error is being redirected to /dev/null in the makefile and I needed to run it explicitly to see the output. There is a recent change that moves Loader to _abc and imports Loader from _abc inside abc is done with below commit. The same code is present in 49.6.0 too at
https://github.com/pypa/setuptools/blob/04e3df22df840c6bb244e9b27bc56750c44b7c85/_distutils_hack/__init__.py#L79 . So I am not sure why this causes error.
Pinning the dependency of setuptools to 49.6.0 in Doc/makefile runs the tests fine without error. Can you please try pinning it and see if it helps?
I am not sure if the below commit is the cause that is picked up in setuptools but someone can correct me if I am wrong about the importlib machinery error.
commit 9e09849d20987c131b28bcdd252e53440d4cd1b3
Author: Victor Stinner <
vstinner@python.org>
Date: Wed Jun 17 23:15:59 2020 +0200
bpo-41006: importlib.util no longer imports typing (GH-20938)
Create importlib._abc submodule to avoid importing typing when
importlib.util is imported. Move Loader ABC into importlib._abc.
./python
Python 3.10.0a0 (heads/master:75c80b0bda, Aug 30 2020, 13:53:05)
[GCC 7.5.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import importlib.util
>>> importlib.util.abc.Loader
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: module 'importlib.util' has no attribute 'abc'
>>>
➜ cpython git:(master) ✗ git checkout 9e09849d20987c131b28bcdd252e53440d4cd1b3~1 Lib/importlib/util.py
➜ cpython git:(master) ✗ ./python
Python 3.10.0a0 (heads/master:75c80b0bda, Aug 30 2020, 13:53:05)
[GCC 7.5.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import importlib.util
>>> importlib.util.abc.Loader
<class 'importlib._abc.Loader'>
xvfb-run make -C Doc/ PYTHON=../python SPHINXOPTS="-q -W --keep-going -j4" doctest suspicious html
make: Entering directory '/root/cpython/Doc'
make[1]: Entering directory '/root/cpython/Doc'
mkdir -p build
echo PATH=./venv/bin:$PATH blurb help
PATH=./venv/bin:/root/.poetry/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games blurb help
echo PATH=./venv/bin:$PATH sphinx-build --version
PATH=./venv/bin:/root/.poetry/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games sphinx-build --version
Building NEWS from Misc/NEWS.d with blurb
PATH=./venv/bin:$PATH sphinx-build -b doctest -d build/doctrees -q -W --keep-going -j4 -W . build/doctest
Traceback (most recent call last):
File "/root/cpython/Doc/./venv/bin/sphinx-build", line 5, in <module>
from sphinx.cmd.build import main
File "/root/cpython/Doc/venv/lib/python3.10/site-packages/sphinx/cmd/build.py", line 23, in <module>
from sphinx.application import Sphinx
File "/root/cpython/Doc/venv/lib/python3.10/site-packages/sphinx/application.py", line 28, in <module>
from sphinx.config import Config
File "/root/cpython/Doc/venv/lib/python3.10/site-packages/sphinx/config.py", line 22, in <module>
from sphinx.util import logging
File "/root/cpython/Doc/venv/lib/python3.10/site-packages/sphinx/util/__init__.py", line 40, in <module>
from sphinx.util import smartypants # noqa
File "/root/cpython/Doc/venv/lib/python3.10/site-packages/sphinx/util/smartypants.py", line 33, in <module>
from sphinx.util.docutils import __version_info__ as docutils_version
File "/root/cpython/Doc/venv/lib/python3.10/site-packages/sphinx/util/docutils.py", line 17, in <module>
from distutils.version import LooseVersion
File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
File "<frozen importlib._bootstrap>", line 982, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 925, in _find_spec
File "/root/cpython/Doc/venv/lib/python3.10/site-packages/_distutils_hack/__init__.py", line 74, in find_spec
return method()
File "/root/cpython/Doc/venv/lib/python3.10/site-packages/_distutils_hack/__init__.py", line 79, in spec_for_distutils
class DistutilsLoader(importlib.util.abc.Loader):
AttributeError: module 'importlib.util' has no attribute 'abc'
Makefile:49: recipe for target 'build' failed
make[1]: *** [build] Error 1
make[1]: Leaving directory '/root/cpython/Doc'
Testing of doctests in the sources finished, look at the results in build/doctest/output.txt
Makefile:129: recipe for target 'doctest' failed
make: *** [doctest] Error 1
make: Leaving directory '/root/cpython/Doc'
Thanks