build: upgrade Sphinx 4→7, drop m2r2/recommonmark, Python 3.11+#167
Merged
ErikBjare merged 3 commits intoActivityWatch:masterfrom Feb 27, 2026
Merged
Conversation
- Upgrade sphinx 4.x → >=7.0 (resolves Python 3.13 incompatibility from imghdr removal, closes ActivityWatch#157) - Replace m2r2 + recommonmark with myst-parser >=2.0 (handles all Markdown; m2r2/recommonmark are unmaintained and incompatible with Sphinx 7+) - Drop setuptools workaround (was needed only for m2r2) - Pin python >=3.11 (matching .readthedocs.yml; 3.13 in CI/RTD) - Bump sphinx_rtd_theme to >=2.0, sphinx-tabs to ^3.4, sphinx-click to >=6.0 - Update .readthedocs.yml: python 3.11 → 3.13 - Update CI: actions/checkout@v2→v4, setup-python@v1→v5, python 3.12→3.13 - Regenerate poetry.lock (sphinx 9.0.4, myst-parser 5.0.0)
There was a problem hiding this comment.
Important
Looks good to me! 👍
Reviewed everything up to 8d94eef in 10 seconds. Click for details.
- Reviewed
84lines of code in4files - Skipped
1files when reviewing. - Skipped posting
0draft comments. View those below. - Modify your settings and rules to customize what types of comments Ellipsis leaves. And don't forget to react with 👍 or 👎 to teach Ellipsis.
Workflow ID: wflow_F2wJaZCpW28y14Pw
You can customize by changing your verbosity settings, reacting with 👍 or 👎, replying to comments, or adding code review rules.
- Add %s to extlinks captions (required by Sphinx 7+) - Set language = "en" instead of None (deprecated in Sphinx 9) - Exclude changelog/*.md from build (duplicates of .rst files that cause "multiple files found" warnings with myst-parser)
sphinx-tabs 3.4.7 has a known KeyError on 'backrefs' with Sphinx 9 (executablebooks/sphinx-tabs#209). Pin to Sphinx 8.x which supports Python 3.13 and is compatible with all current extensions.
Contributor
Author
|
@greptileai review |
Greptile SummaryUpgraded documentation build stack to Sphinx 8.x for Python 3.13 compatibility, resolving the Key changes:
Confidence Score: 5/5
Important Files Changed
Last reviewed commit: 537397c |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #157.
Upgrades the docs build stack to work with Python 3.13, which removed
imghdr(breaking Sphinx 4.x's epub builder and other internals).Changes
m2r2+recommonmark— both unmaintained and incompatible with Sphinx 7+. Replaced bymyst-parserwhich already handles all Markdown needssetuptoolsworkaround (was only needed for m2r2 on Python 3.12+)myst-parserpinned to >=2.0 (explicit requirement for Sphinx 7+)sphinx_rtd_theme>=2.0,sphinx-tabs ^3.4,sphinx-click >=6.0^3.8→^3.11.readthedocs.yml: python 3.11 → 3.13 (per Erik's preference)actions/checkout@v2→v4,setup-python@v1→v5, python 3.12 → 3.13poetry.lock(sphinx 9.0.4, myst-parser 5.0.0)conf.py
Replaced
"m2r2"extension with"myst_parser". The.mdfiles inchangelog/have corresponding.rstcounterparts which are what's actually included — no functional change.Important
Upgrade Sphinx to >=7.0, replace unmaintained dependencies, and update configurations for Python 3.13 compatibility.
Sphinxfrom 4.x to>=7.0inpyproject.toml.m2r2andrecommonmarkwithmyst-parser >=2.0.sphinx_rtd_themeto>=2.0,sphinx-tabsto^3.4, andsphinx-clickto>=6.0.setuptoolsworkaround.^3.8to^3.11inpyproject.toml..readthedocs.ymlandbuild.yml.actions/checkouttov4andsetup-pythontov5inbuild.yml."m2r2"with"myst_parser"inconf.py.This description was created by
for 8d94eef. You can customize this summary. It will automatically update as commits are pushed.