Skip to content

[doc] Add legacy-version 404 redirect coverage to current.yaml#63880

Merged
edoakes merged 1 commit into
ray-project:masterfrom
dstrodtman:doc-892-legacy-404-redirects
Jun 5, 2026
Merged

[doc] Add legacy-version 404 redirect coverage to current.yaml#63880
edoakes merged 1 commit into
ray-project:masterfrom
dstrodtman:doc-892-legacy-404-redirects

Conversation

@dstrodtman

@dstrodtman dstrodtman commented Jun 5, 2026

Copy link
Copy Markdown
Contributor

Why

A 6-month GA4 audit of docs.ray.io found 2,017 out-of-support legacy-version paths receiving ~552K views with no redirect rule and no equivalent on current docs. Under any legacy-cohort cutover, that traffic lands on 404s. This PR adds the redirect coverage for the bulk of that gap.

What

21 page catch-all rules appended to doc/redirects/current.yaml, covering ~96% of the gap by views and by paths. Each cluster lands on its nearest surviving section index:

  • Autodoc / API refs (RLlib package_ref, Serve, Data, Tune, Train, Ray Core, Observability) → that library's API reference index.
  • Examples (Ray AIR, Tune, Train, Ray Core) → the examples gallery.
  • Restructured sections (Kubernetes, Serve tutorials) → the section index.
  • Deprecated, no current equivalent: Ray AIR → AIR getting-started; Ray Workflows → Ray overview.
  • Sphinx _modules/ source views → the Ray source on GitHub (a view-source request for a symbol that no longer exists is better served by GitHub search than a 404).
  • Three targeted rllib-* overrides precede the RLlib catch-all so high-traffic renamed pages land on their real equivalents.

Design

All rules are type: page with force omitted (defaults to false), so each fires only when the path would 404. Pages that still exist with the same name on any version resolve untouched; only moved/deleted/renamed paths hit the catch-all. This composes with the planned legacy-cohort cutover (/en/releases-X.Y.Z/*/en/latest/:splat): the cutover preserves same-name paths, and these rules catch what no longer exists on current docs.

Validation

rtd-redirects validate doc/redirects/current.yaml
→ 0 error, 49 warning

Zero ordering/shadow errors. The 49 chain warnings are benign: each is an existing rule whose to is a live page that happens to sit under one of the new section wildcards, which never fires on a live page given force: false.

Notes

@dstrodtman dstrodtman requested a review from a team as a code owner June 5, 2026 12:08

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request updates the documentation and adds 21 legacy-version 404-coverage catch-all redirect rules (DOC-892) to handle high-traffic, out-of-support documentation paths for various components like RLlib, Serve, Data, Ray AIR, Tune, Train, and others. Feedback on the changes suggests updating the /rllib/ redirect target to /rllib/index.html to ensure consistency with other rules and avoid potential double-redirects or canonical URL resolution issues.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Comment thread doc/redirects/current.yaml Outdated
type: page
description: "DOC-892: rllib-models -> RL Modules"
- from: /rllib/rllib-*
to: /rllib/

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

For consistency with other redirect rules in this file (which point to specific .html files or index.html rather than trailing slashes), and to avoid potential double-redirects or canonical URL resolution issues, please redirect to /rllib/index.html instead of /rllib/.

  to: /rllib/index.html

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Adopted to: /rllib/index.html for consistency with the rest of the file — the existing /rllib.html and /rllib-toc.html rules already target /rllib/index.html. Applied in the latest push.

One note for the record: the double-redirect concern doesn't actually apply here. /en/latest/rllib/ returns 200 in a single hop, and the trailing slash is the server-canonical form (/en/latest/rllib 302s to /en/latest/rllib/, not the reverse). So /rllib/ wouldn't have chained — but index.html is still the right call for consistency.

@dstrodtman dstrodtman force-pushed the doc-892-legacy-404-redirects branch from 6d2b526 to 2ad8b36 Compare June 5, 2026 12:47
Adds 21 page catch-all redirects for high-traffic out-of-support docs
paths that have no equivalent on current docs. A 6-month GA4 audit found
2,017 such paths receiving ~552K legacy-version views with no redirect
rule; under any legacy-cohort cutover they would land on 404s. These 21
wildcard rules cover ~96% of that gap by views and by paths, landing each
cluster on its nearest surviving section index (RLlib, Serve, Data, Tune,
Train, Ray Core, Observability, Kubernetes), with Ray AIR and Ray Workflows
(both deprecated) routed to their current homes and Sphinx _modules/ source
views routed to the Ray source on GitHub.

All rules are type: page with force omitted (defaults to false), so each
fires only when the path would 404: pages that still exist with the same
name on any version resolve untouched. Three targeted rllib- overrides
precede the RLlib catch-all so high-traffic renamed pages land on their real
equivalents.

Validated with rtd-redirects validate doc/redirects/current.yaml: 0 errors.
The 49 chain warnings are benign -- each is an existing rule whose target is
a live page that sits under one of the new section wildcards, which never
fires on a live page given force: false.

Application to Read the Docs is manual post-merge per doc/redirects/README.md.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Douglas Strodtman <douglas@anyscale.com>
@dstrodtman dstrodtman force-pushed the doc-892-legacy-404-redirects branch from 2ad8b36 to d037eb0 Compare June 5, 2026 13:42
@ray-gardener ray-gardener Bot added docs An issue or change related to documentation core Issues that should be addressed in Ray Core labels Jun 5, 2026
@edoakes edoakes added the go add ONLY when ready to merge, run all tests label Jun 5, 2026
@edoakes edoakes enabled auto-merge (squash) June 5, 2026 19:51
@edoakes edoakes merged commit 7f7941e into ray-project:master Jun 5, 2026
11 checks passed
limarkdcunha pushed a commit to limarkdcunha/ray that referenced this pull request Jun 30, 2026
…roject#63880)

## Why

A 6-month GA4 audit of `docs.ray.io` found **2,017 out-of-support
legacy-version paths receiving ~552K views with no redirect rule and no
equivalent on current docs**. Under any legacy-cohort cutover, that
traffic lands on 404s. This PR adds the redirect coverage for the bulk
of that gap.

## What

21 `page` catch-all rules appended to `doc/redirects/current.yaml`,
covering **~96% of the gap by views and by paths**. Each cluster lands
on its nearest surviving section index:

- **Autodoc / API refs** (RLlib `package_ref`, Serve, Data, Tune, Train,
Ray Core, Observability) → that library's API reference index.
- **Examples** (Ray AIR, Tune, Train, Ray Core) → the examples gallery.
- **Restructured sections** (Kubernetes, Serve tutorials) → the section
index.
- **Deprecated, no current equivalent**: Ray AIR → AIR getting-started;
Ray Workflows → Ray overview.
- **Sphinx `_modules/` source views** → the Ray source on GitHub (a
view-source request for a symbol that no longer exists is better served
by GitHub search than a 404).
- Three targeted `rllib-*` overrides precede the RLlib catch-all so
high-traffic renamed pages land on their real equivalents.

## Design

All rules are `type: page` with `force` omitted (defaults to `false`),
so each **fires only when the path would 404**. Pages that still exist
with the same name on any version resolve untouched; only
moved/deleted/renamed paths hit the catch-all. This composes with the
planned legacy-cohort cutover (`/en/releases-X.Y.Z/*` →
`/en/latest/:splat`): the cutover preserves same-name paths, and these
rules catch what no longer exists on current docs.

## Validation

```
rtd-redirects validate doc/redirects/current.yaml
→ 0 error, 49 warning
```

Zero ordering/shadow errors. The 49 chain warnings are benign: each is
an existing rule whose `to` is a live page that happens to sit under one
of the new section wildcards, which never fires on a live page given
`force: false`.

## Notes

- Follows the source-of-truth workflow established in ray-project#63367.
- Application to Read the Docs is a manual maintainer step post-merge
per `doc/redirects/README.md`.

Signed-off-by: Douglas Strodtman <douglas@anyscale.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

core Issues that should be addressed in Ray Core docs An issue or change related to documentation go add ONLY when ready to merge, run all tests

3 participants