Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

doctest GitHub Actions job exits with 2 failing all recent PRs #101639

Closed
arhadthedev opened this issue Feb 7, 2023 · 3 comments
Closed

doctest GitHub Actions job exits with 2 failing all recent PRs #101639

arhadthedev opened this issue Feb 7, 2023 · 3 comments
Labels
docs Documentation in the Doc dir tests Tests in the Lib/test dir type-bug An unexpected behavior, bug, or error

Comments

@arhadthedev
Copy link
Member

The Docs / Doctest (pull_request) check started to fail recently with the following job log:

make: Entering directory '/home/runner/work/cpython/cpython/Doc'
make[1]: Entering directory '/home/runner/work/cpython/cpython/Doc'
mkdir -p build

Missing the required blurb or sphinx-build tools.
Please run 'make venv' to install local copies.

make[1]: *** [Makefile:48: build] Error 1
make[1]: Leaving directory '/home/runner/work/cpython/cpython/Doc'
Testing of doctests in the sources finished, look at the results in build/doctest/output.txt
make: *** [Makefile:1[2](https://github.com/python/cpython/actions/runs/4113297888/jobs/7099253477#step:9:2)[7](https://github.com/python/cpython/actions/runs/4113297888/jobs/7099253477#step:9:8): doctest] Error 1
make: Leaving directory '/home/runner/work/cpython/cpython/Doc'
Error: Process completed with exit code 2.

@colorfulappl found out that:

It seems like numpy build failed while running

make -C Doc/ PYTHON=../python venv

The error message is

Error:             numpy/random/_mt19937.c:8320:53: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’
             8320 |             const digit* digits = ((PyLongObject*)x)->ob_digit;
                  |                                                     ^~

It looks like gh-101292 is the cause. We need to provide some sort of compatibility shim or a deprecation period until numpy introduces version-specific #if guards.

@arhadthedev arhadthedev added type-bug An unexpected behavior, bug, or error tests Tests in the Lib/test dir docs Documentation in the Doc dir labels Feb 7, 2023
@arhadthedev arhadthedev changed the title doctest GitHub Actions job exits with 2 marking checks of all recent PRs doctest GitHub Actions job exits with 2 failing all recent PRs Feb 7, 2023
@Yhg1s
Copy link
Member

Yhg1s commented Feb 7, 2023

I think the fundamental problem here is that the doc build/test process uses the newly built Python and third-party dependencies from PyPI. I don't think it's bad to test that certain things work in the new Python, but expecting installable packages for the target Python is a bit problematic for two reasons: the Python we're building may be too new for the packages (as in this case), or the Python may be too old (for example when building docs for an older Python that the dependencies have already stopped supporting).

@hugovk
Copy link
Member

hugovk commented Feb 7, 2023

One of the Sphinx extensions we're using just released (in 0.8.0) support for generating images via Matplotlib, which depends on NumPy: wpilibsuite/sphinxext-opengraph#88

Even though we're not using the image generation there (yet, we may do later), it still attempts the install and import.

The quick fix is to pin sphinxext-opengraph to 0.5.9.

Alternatively, for the benefit of downstream redistributors, we did take care that if the extension isn't installed, it won't be used:

cpython/Doc/conf.py

Lines 27 to 33 in 7990324

# Skip if downstream redistributors haven't installed it
try:
import sphinxext.opengraph
except ImportError:
pass
else:
extensions.append('sphinxext.opengraph')

For doctest, we could also make use of this and only install the key essentials for the test.

@arhadthedev
Copy link
Member Author

Fixed by gh-101642.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
docs Documentation in the Doc dir tests Tests in the Lib/test dir type-bug An unexpected behavior, bug, or error
Projects
None yet
Development

No branches or pull requests

3 participants