Skip to content

📝 Establish redirects #7162

Open

Description

@knmcguire

Issue Type

  • 🐛 Bug / Problem
  • ✏️ Typo / Grammar
  • 📖 Outdated Content
  • 🚀 Enhancement

Generated by Generative AI

No

Distribution

All

Description

With all the changes to the documentation structure happening, a lot of urls that people refer to in the past are broken, like for instance this discourse post: https://discourse.openrobotics.org/t/new-ros-adopters-page-is-live-add-your-project/53976

Is it possible to add redirects from the old structure to the new?

Affected Pages/Sections

No response

Screenshots or Examples (if applicable)

No response

Suggested Fix

No response

Additional Context

No response

Activity

  1. adoodevv commented on Oct 10, 2026

    @adoodevv

    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.rst still declares:

    .. redirect-from::
    
       Concepts/About-Client-Interfaces
       Concepts/About-ROS-2-Client-Libraries
       Concepts/Basic/About-Client-Libraries

    But on the live site:

    URL Status
    https://docs.ros.org/en/rolling/Concepts/Basic/About-Client-Libraries.html 404
    https://docs.ros.org/en/jazzy/Concepts/Basic/About-Client-Libraries.html 200
    https://docs.ros.org/en/rolling/ROS-Framework/About-Client-Libraries.html 200

    Root cause

    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.

  2. added a commit that references this issue on Oct 14, 2026
    3dfc246
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions