You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Since #7021, the build runs with -j auto. RedirectFrom in conf.py collects redirects in a class attribute, RedirectFrom.redirections, during the read phase. With parallel reads, that attribute is filled in inside the worker processes and never merged back into the main process. As a result, the html-collect-pages handler sees an empty dict and writes no redirect pages.
Locally, on current rolling:
make html (parallel) generates 0 redirect pages
make html JOBS=1 generates 477 redirect pages
Proposed fix
Store the redirections on the Sphinx build environment instead of on the class, merge them back from the parallel readers with the env-merge-info event, and use env-purge-doc so incremental builds stay correct. I have a patch for this and will open a PR shortly.
Activity
adoodevv commentedon Oct 10, 2026
I looked into this. Many of the old URLs already have
.. redirect-from::entries, but the redirect pages are no longer being generated.For example,
source/ROS-Framework/About-Client-Libraries.rststill declares:.. redirect-from:: Concepts/About-Client-Interfaces Concepts/About-ROS-2-Client-Libraries Concepts/Basic/About-Client-LibrariesBut on the live site:
Root cause
Since #7021, the build runs with
-j auto.RedirectFrominconf.pycollects redirects in a class attribute,RedirectFrom.redirections, during the read phase. With parallel reads, that attribute is filled in inside the worker processes and never merged back into the main process. As a result, thehtml-collect-pageshandler sees an empty dict and writes no redirect pages.Locally, on current
rolling:make html(parallel) generates 0 redirect pagesmake html JOBS=1generates 477 redirect pagesProposed fix
Store the redirections on the Sphinx build environment instead of on the class, merge them back from the parallel readers with the
env-merge-infoevent, and useenv-purge-docso incremental builds stay correct. I have a patch for this and will open a PR shortly.Fix redirect pages not generated in parallel builds