From fecd0b4bf1446f24b2b441bfa4925de023bfea7a Mon Sep 17 00:00:00 2001 From: Johannes Altmanninger Date: Sat, 27 Sep 2025 06:29:09 +0200 Subject: [PATCH] Revert "Only load sphinx_markdown_builder extension if it's used" sphinx-build fails with sphinx.errors.SphinxError: Builder name markdown not registered or available through entry point Apparently this issue was hidden locally by caching, and not checked in CI because of this error causing tests/checks/sphinx-markdown-changelog.fish to be skipped. sphinx-build 7.2.6 runner@runnervm3ublj:~/work/fish-shell/fish-shell$ python -c 'import sphinx_markdown_builder' Traceback (most recent call last): File "", line 1, in File "/home/runner/.local/lib/python3.12/site-packages/sphinx_markdown_builder/__init__.py", line 6, in from sphinx.util.typing import ExtensionMetadata ImportError: cannot import name 'ExtensionMetadata' from 'sphinx.util.typing' (/usr/lib/python3/dist-packages/sphinx/util/typing.py) This reverts commit 7b495497d7ee6beca15e48542bc3af8209ef70d1. While at it, fail the test earlier if something went wrong, because the remaining check will likely also fail and confuse. (cherry picked from commit aab22a453b89db4532be54b62b4c011de9b92377) --- .../actions/install-sphinx-markdown-builder/action.yml | 8 +++++--- doc_src/conf.py | 4 ++++ tests/checks/sphinx-markdown-changelog.fish | 7 +++++-- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/.github/actions/install-sphinx-markdown-builder/action.yml b/.github/actions/install-sphinx-markdown-builder/action.yml index 88f29fbce..1374d6f86 100644 --- a/.github/actions/install-sphinx-markdown-builder/action.yml +++ b/.github/actions/install-sphinx-markdown-builder/action.yml @@ -6,7 +6,9 @@ permissions: runs: using: "composite" steps: - - run: | - commit=a6dd85e7b13107172c0502937bec6b718002510d + - shell: bash + run: | + set -x + commit=b259de1dc97573a71470a1d71c3d83535934136b pip install git+https://github.com/krobelus/sphinx-markdown-builder@"$commit" - shell: bash + python -c 'import sphinx_markdown_builder' diff --git a/doc_src/conf.py b/doc_src/conf.py index accb26bdf..52ac617b7 100644 --- a/doc_src/conf.py +++ b/doc_src/conf.py @@ -16,6 +16,10 @@ from docutils import nodes try: import sphinx_markdown_builder + + extensions = [ + "sphinx_markdown_builder", + ] except ImportError: pass diff --git a/tests/checks/sphinx-markdown-changelog.fish b/tests/checks/sphinx-markdown-changelog.fish index 63924b941..6a81bf8f0 100644 --- a/tests/checks/sphinx-markdown-changelog.fish +++ b/tests/checks/sphinx-markdown-changelog.fish @@ -7,7 +7,10 @@ if not test -e $workspace_root/.git return end -$workspace_root/build_tools/release-notes.sh -q >relnotes.md -or echo "Failed to build Markdown release notes." +$workspace_root/build_tools/release-notes.sh -q >?relnotes.md +or { + echo "Failed to build Markdown release notes." + return +} sed -n 1p relnotes.md | grep -q '^## fish \S* (released .*)' or echo "Unexpected changelog title"