furo icon indicating copy to clipboard operation
furo copied to clipboard

furo: support sphinx 9

Open haampie opened this issue 1 month ago • 6 comments

Sphinx 9 was released

haampie avatar Dec 02 '25 07:12 haampie

@pradyunsg can this please get merged?

kasium avatar Dec 04 '25 09:12 kasium

Rather than incrementing the upper bound on the version of Sphinx, could we instead remove the upper bound entirely? I personally think that approach has ample evidence to support it:

justinmayer avatar Dec 04 '25 10:12 justinmayer

Maybe @pradyunsg could consider a second maintainer of this project (?)

haampie avatar Dec 09 '25 09:12 haampie

👋🏽

It's been less than 2 weeks since the release, and I'm getting links to d.p.o. threads where I participated / blog posts that I reviewed early drafts of... I guess this is a properly popular project now! 😅

I do have this PR (and a few more things around this project) on deck for the volunteer-responsibility things I wanna get to. All of that is definitely gonna stay lower priority than "figure out marriage details & logistics" for me in the near future tho.

For this PR -- I'd wanna make sure that nothing actually breaks for users with this Sphinx upgrade, which usually comes with a docutils upgrade that changes the HTML output. If a couple of folks could do that and let me know that nothing is broken/changed in the "kitchen sink" with this upgrade, that'd be helpful -- this would be a quick merge + release if I can get those confirmations!

pradyunsg avatar Dec 11 '25 00:12 pradyunsg

Hello @pradyunsg ,

thanks for taking care even if there are obviously more important things in life happening 😄 .

I update sphinx in an inner source project (uv pip install -U sphinx) and then run it (sphinx-build -d docs/_build/doctrees -b html -a -W -j 4 docs docs/_build/html) without any issues. The output looks clean, no navigation issues or so. I also checked the browser developer console and there were no warnings or errors at all

kasium avatar Dec 11 '25 05:12 kasium

For https://spack.readthedocs.io/en/latest, I did a diff of the generated HTML after "prettifying" them with tidy -i -wrap 0 -m *.html **/*.html and the diff is mostly:

-  <link rel="shortcut icon" href="../_static/favicon.ico" /><!-- Generated with Sphinx 8.2.3 and Furo 2025.07.19.dev1 -->
+  <link rel="shortcut icon" href="../_static/favicon.ico" /><!-- Generated with Sphinx 9.0.4 and Furo 2025.09.25.dev1 -->
...
-  <script src="../_static/doctools.js?v=9bcbadda"></script> 
-  <script src="../_static/sphinx_highlight.js?v=35101b8e"></script> 
+  <script src="../_static/doctools.js?v=fd6eb6e6"></script> 
+  <script src="../_static/sphinx_highlight.js?v=6ffebe34"></script> 

and a couple changes like

+height="203"
  src="_images/original_package_architecture.png" 
-style="width: 531.0px; height: 203.4px;"
+width="531"

due to the upgrade of docutils, which is intentional and desirable to fix text reflow issues during page load. Otherwise it's mostly changes to internal javascript files.

I do see a regression in Sphinx 9 related to :no-value: in autodoc, which I'll report upstream.

haampie avatar Dec 11 '25 07:12 haampie

Thanks @haampie and @kasium for that! ^.^

Looks like I can't build Furo's own docs with Sphinx 9+ due to https://github.com/executablebooks/MyST-Parser/issues/1042. Ended up figuring out relevant shenanigans and confirmed that there's one small markup change: https://gist.github.com/pradyunsg/1053aa35d8944c22e61ebffca093dd3d

main now has d27cab5e448c44e366577a80bf99beee6fa941a5 which is a functional superset of this (with the bump to the minimum range as well as max range + the stylesheet change as well). Onward to figuring out sphinx-theme-builder failing on Python 3.14 now, then I'll cut a release tomorrow.

pradyunsg avatar Dec 14 '25 00:12 pradyunsg

(@haampie I hope you don't mind that I ended up including the version bump in that commit directly, instead of merging this PR -- realised after that doing a merge + my changes after would've probably been a nicer way of doing this. 🙈)

pradyunsg avatar Dec 14 '25 00:12 pradyunsg

Thank you @pradyunsg for continued work on this project.

adamtheturtle avatar Dec 14 '25 22:12 adamtheturtle

All good, you can revisit #899 to make up for it :smirk:

haampie avatar Dec 15 '25 14:12 haampie