classification
Title: [Doc] Doc/tools/extensions/glossary_search.py fails with FileNotFoundError if the _static/ directory doesn't exist
Type: Stage: resolved
Components: Documentation Versions: Python 3.10
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: docs@python Nosy List: docs@python, vstinner
Priority: normal Keywords: patch

Created on 2021-04-08 20:31 by vstinner, last changed 2021-04-08 22:08 by vstinner. This issue is now closed.

Pull Requests
URL Status Linked Edit
PR 25286 merged vstinner, 2021-04-08 20:42
Messages (3)
msg390552 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2021-04-08 20:31
Doc/tools/extensions/glossary_search.py failed multiple times on my doc PR:
https://github.com/python/cpython/pull/25283

The fail is not deterministic (random error, timing issue?), it depends if the directory was already created by something else or not.

Error on the Docs PR job of the Azure Pipeline:
--------------
2021-04-08T17:55:57.7774293Z writing output... [ 98%] whatsnew/3.5
2021-04-08T17:55:58.0531588Z writing output... [ 98%] whatsnew/3.6
2021-04-08T17:55:58.3085384Z writing output... [ 99%] whatsnew/3.7
2021-04-08T17:55:58.5638166Z writing output... [ 99%] whatsnew/3.8
2021-04-08T17:55:59.3385073Z writing output... [ 99%] whatsnew/3.9
2021-04-08T17:55:59.5205350Z writing output... [ 99%] whatsnew/changelog
2021-04-08T17:56:02.4282200Z writing output... [100%] whatsnew/index
2021-04-08T17:56:03.1454692Z 
2021-04-08T17:56:03.1463636Z Writing glossary.json
2021-04-08T17:56:03.1466614Z 
2021-04-08T17:56:03.1467473Z Exception occurred:
2021-04-08T17:56:03.3286028Z   File "/home/vsts/work/1/s/Doc/tools/extensions/glossary_search.py", line 49, in on_build_finish
2021-04-08T17:56:03.3287379Z     with open(path.join(app.outdir, '_static', 'glossary.json'), 'w') as f:
2021-04-08T17:56:03.3288351Z FileNotFoundError: [Errno 2] No such file or directory: '/home/vsts/work/1/s/Doc/build/html/_static/glossary.json'
2021-04-08T17:56:03.3294489Z The full traceback has been saved in /tmp/sphinx-err-1c8jemiu.log, if you want to report the issue to the developers.
2021-04-08T17:56:03.3295501Z Please also report this if it was a user error, so that a better error message can be provided next time.
2021-04-08T17:56:03.3296536Z A bug report can be filed in the tracker at <https://github.com/sphinx-doc/sphinx/issues>. Thanks!
--------------
https://dev.azure.com/Python/cpython/_build/results?buildId=78035&view=results

Error on Travis CI:
--------------
PATH=./venv/bin:$PATH sphinx-build -b html -d build/doctrees  -q -W -j4 -W . build/html 

Extension error:

Handler <function on_build_finish at 0x7f6ed4c6abf8> for event 'build-finished' threw an exception (exception: [Errno 2] No such file or directory: '/home/travis/build/python/cpython/Doc/build/html/_static/glossary.json')

Makefile:49: recipe for target 'build' failed
--------------
https://travis-ci.com/github/python/cpython/jobs/497108477


Attached PR fix the extension: create the directory if it doesn't exists.
msg390558 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2021-04-08 22:07
New changeset f32d0221477f18993666bb66cc79c61c4e145d42 by Victor Stinner in branch 'master':
bpo-43778: Fix Sphinx glossary_search extension (GH-25286)
https://github.com/python/cpython/commit/f32d0221477f18993666bb66cc79c61c4e145d42
msg390560 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2021-04-08 22:08
Python 3.9 is not affected, this Sphinx extension is new in Python 3.10. By the way, I like this feature!

The new " Glossary: borrowed reference " block in:

https://docs.python.org/3.10/search.html?q=borrowed+reference
History
Date User Action Args
2021-04-08 22:08:42vstinnersetstatus: open -> closed
resolution: fixed
messages: + msg390560

stage: patch review -> resolved
2021-04-08 22:07:21vstinnersetmessages: + msg390558
2021-04-08 20:42:23vstinnersetkeywords: + patch
stage: patch review
pull_requests: + pull_request24022
2021-04-08 20:31:24vstinnercreate