Skip to content

[doc] Convert observability, more-libs, references, and AIR pages from RST to MyST - #66673

Merged
dstrodtman merged 5 commits into
masterfrom
doc-1527-myst-batch-7
Oct 5, 2026
Merged

dstrodtman merged 5 commits into
masterfrom
doc-1527-myst-batch-7

Conversation

@dstrodtman

@dstrodtman dstrodtman commented Oct 2, 2026 •

Copy link
Copy Markdown
Contributor

Why are these changes needed?

This PR converts the remaining prose pages under ray-observability/, ray-more-libs/, ray-references/, and ray-air/ from reStructuredText to MyST Markdown. It continues the RST-to-MyST conversion that already landed for ray-core/ (#66430), data/ (#66375), and the doctest-wired pages (#66461). The conversion is format only: the goal is for each page's rendered HTML to match /en/master.

There are five commits:

  1. Conversion. This commit converts 25 pages, git rms the .rst sources, and adds one doc/BUILD.bazel exclude, which commit 5 reverts. Prose keeps its source line wrapping, so the diff lines up with the .rst line by line.
  2. Soft-wrap. This commit reflows whitespace only, to one line per paragraph and list item. verify.py from ray-soft-wrap confirms that the non-whitespace bytes and the rendered HTML don't change on all 25 files.
  3. Render fixes. This commit fixes six regressions that the render diff against /en/master caught, even though the build was green. In modin, two bare-word RST link references (Modin_, documentation_) rendered as literal text. In getting-started, a bold URL was autolinked. In system-metrics, a URL in a table cell lost its link. In dask-on-ray, _not_ rendered as italics. In glossary, the inline .. TODO: RLlib text, which /en/master shows, had become a comment. The commit also adds compat anchors to five headings with apostrophes (see below).
  4. Pseudo-lists. This commit restores three pseudo-lists that the soft-wrap merged into one line.
  5. Review feedback. This commit removes the glossary's placeholder TODO entries, reverts the doc/BUILD.bazel change so the PR stays docs-only, and fixes defects that the review flagged in the .rst sources: a stray definition list in dask-on-ray, an unconverted link in system-metrics, an extra parenthesis in debug-failures, typos in debug-hangs and optimize-performance, a grammar slip in ray-debugging, and em-dash pseudo-list items in general-debugging, which are now a bulleted list.

Scope

  • ray-air/: getting-started and deployment, converted together. getting-started includes deployment, and the include now points at deployment.md.
  • ray-observability/: 14 pages, including user-guides/debug-apps/ and reference/system-metrics.
  • ray-more-libs/: 9 pages.
  • ray-references/: glossary and faq.

Left as RST: ray-observability/reference/api.rst (autosummary) and ray-observability/reference/cli.rst (click). They're API reference pages, so they stay RST along with the other */api/ reference trees.

Construct notes for reviewers

  • Glossary. The glossary is a native MyST {glossary} directive, not RST wrapped in {eval-rst}. Sphinx's glossary directive parses each definition with the host parser, so the definitions are Markdown now. The glossary's placeholder .. TODO: entries are removed. Missing terms can be identified separately.
  • Glossary doctest. Nothing ran the glossary's .. doctest:: block as .rst: pytest-sphinx doesn't execute doctest sections, and --doctest-glob='*.md' doesn't match .rst. As .md, the stock doctest parser would start running its five >>> prompts, and the [[0],[1],...,[3],[4]] output can't pass without ELLIPSIS. Each prompt now carries # doctest: +SKIP, which keeps coverage the same as master without a doc/BUILD.bazel change. Sphinx's default trim_doctest_flags strips the flag from the rendered page, as in data/working-with-tensors.md. If you'd rather fix the expected output and start testing it, I can do that in a follow-up.
  • FAQ. faq.md includes _includes/_help-links.md, the Markdown copy of _help.rst that [docs] Convert ray-core scheduling pages to MyST #66417 added. _help.rst stays, because cluster/vms/user-guides/community/yarn.rst and tune/key-concepts.rst still include it.
  • Comparison table. The grid table in ray-collective-custom-backend is now a native {list-table}.
  • Line blocks. The line blocks in dask-on-ray's version table are now Markdown hard line breaks. This is an expected render difference: <p> with <br> instead of div.line-block.

Dead links fixed on the way

These links were broken on /en/master and fail fail_on_warning when they're transcribed into MyST:

  • joblib and multiprocessing linked to relative actors.html and installation.html, which resolve under ray-more-libs/ and return 404. They now link to {doc} /ray-core/actors and /ray-overview/installation.
  • ray-collective linked to #api-reference, but the heading's anchor is #api-references.

Open PRs that edit these pages

Each of these PRs needs to move its change onto the .md file: #66363 (ray-event-export), #65693 and #65583 (system-metrics), and #64957 (joblib, multiprocessing). #65321 edits reference/cli.rst, which this PR doesn't convert.

Related issue number

None.

Checks

  • I've signed off every commit (git commit -s).
  • Duplicate check: no open PR converts these pages. I searched open PRs for MyST, observability, glossary, and more-libs, and for open PRs that edit these files.
  • Doctest parity: doctest_parity.py (the pytest-sphinx parser, run against upstream/master) reports the same sections and examples on all 25 pages, before and after the soft-wrap: 12 examples before, 12 after.
  • Local doctest: pytest --doctest-modules --doctest-glob='*.md' -c NO_PYTEST_CONFIG -p doctest_pytest_plugin on the 24 converted pages in the main target, with Ray nightly bc900c2 on Python 3.10: 5 passed. Those are the 5 files with examples. The glossary, now in the target too, reports 1 skipped: the stock parser finds 5 examples and all 5 carry +SKIP.
  • Static checks: frontmatter parses, fences balance, every label is preserved, and there's no leftover RST outside fences or directives.
  • RtD preview: green under fail_on_warning on all three commits.
  • Render diff (render_diff.py, preview against /en/master, filtering the two class-only differences every MyST page shows): 11 of 25 pages are identical. Every difference on the other 14 is one of these:
    • RST comments now emit <!-- ... --> HTML comments, which readers don't see. Pages: ray-air/*, ray-more-libs/index, ray-collective, getting-started, general-debugging, glossary.
    • The dask-on-ray version table: Markdown hard line breaks (<p> with <br>) replace RST line blocks (div.line-block).
    • The dask-on-ray "Why use Dask on Ray?" item keeps its definition-list structure. MyST adds a myst class to the <dl>, and the class has no styling.
    • Same-page fragment and {doc} links render as reference internal instead of reference external. Pages: ray-collective, joblib, multiprocessing. This list also includes the dead links fixed above.
    • Headings with an apostrophe get a new anchor, because MyST drops the apostrophe where docutils turned it into a hyphen. For example, #what-s-the-out-of-memory-error becomes #whats-the-out-of-memory-error. Five of these headings had no label, so each gets a compat target with the old slug, which keeps existing links working. The sixth, in optimize-performance, already carries the dashboard-cprofile label.

This PR was written with AI assistance (Claude Code). I reviewed the changes and ran the checks above.

🤖 Generated with Claude Code

dstrodtman and others added 3 commits October 2, 2026 13:25
…m RST to MyST

Format-only conversion of 25 pages under ray-observability/, ray-more-libs/,
ray-references/, and ray-air/. The two observability API reference pages
(reference/api.rst and reference/cli.rst) stay RST with the other API
reference trees.

Exclude ray-references/glossary.md from the main doctest target. Nothing ran
its doctest block as .rst, and the stock --doctest-glob parser that reads .md
files can't pass its elided output.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Douglas Strodtman <douglas@anyscale.com>
…nd AIR pages

Whitespace-only reflow of the pages converted in the previous commit, one
line per paragraph and list item. verify.py confirms non-whitespace bytes and
rendered HTML are unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Douglas Strodtman <douglas@anyscale.com>
…s, references, and AIR pages

The render diff against /en/master found these regressions through a green
build:

- modin: two bare-word named references rendered as literal text.
- getting-started: a bold URL was autolinked.
- system-metrics: a URL in a table cell lost its link.
- dask-on-ray: `_not_` rendered as emphasis.
- glossary: inline `.. TODO: RLlib` text became a comment.

This commit also adds compat targets with the docutils slug to five bare
headings that contain an apostrophe, so their old anchors keep resolving.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Douglas Strodtman <douglas@anyscale.com>
@dstrodtman
dstrodtman marked this pull request as ready for review October 2, 2026 18:16
@dstrodtman
dstrodtman requested review from a team as code owners October 2, 2026 18:16
@dstrodtman dstrodtman added the go add ONLY when ready to merge, run all tests label Oct 2, 2026

@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 converts several documentation files from reStructuredText (RST) to MyST Markdown format across Ray's libraries and observability guides. The review feedback highlights several formatting and rendering issues introduced during this migration, such as leftover RST syntax, broken bulleted lists due to incorrect line reflows, links wrapped in backticks rendering as literal code, typos, grammatical errors, and incorrectly converted TODO comments. Addressing these issues will ensure the documentation renders correctly in MyST Markdown.

Comment thread doc/source/ray-more-libs/dask-on-ray.md Outdated
Comment on lines +96 to +98
1. To take advantage of Ray-specific features such as the
: {ref}`launching cloud clusters <cluster-index>` and
{ref}`shared-memory store <memory>`.

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

The colon at the start of line 97 is a leftover from the RST :ref: role conversion. It should be removed, and the indentation should be cleaned up to ensure correct rendering in MyST Markdown.

Comment thread doc/source/ray-more-libs/dask-on-ray.md Outdated
## Best Practice for Large Scale workloads
For Ray 1.3, the default scheduling policy is to pack tasks to the same node as much as possible. It is more desirable to spread tasks if you run a large scale / memory intensive Dask on Ray workloads.

In this case, there are two recommended setups. \- Reducing the config flag `scheduler_spread_threshold` to tell the scheduler to prefer spreading tasks across the cluster instead of packing. \- Setting the head node's `num-cpus` to 0 so that tasks are not scheduled on a head node.

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

The bulleted list items have been reflowed into a single line with escaped hyphens (\-), which breaks the list rendering in Markdown. They should be split back into a proper bulleted list.

- Current number of tasks (both remote functions and actor calls) by state. The State label (e.g., RUNNING, FINISHED, FAILED) describes the state of the task. See [rpc::TaskState](https://github.com/ray-project/ray/blob/e85355b9b593742b4f5cb72cab92051980fa73d3/src/ray/protobuf/common.proto#L583) for more information. The function/method name is available as the Name label. If the task was retried due to failure or reconstruction, the IsRetry label will be set to "1", otherwise "0".
* - `ray_actors`
- `Name`, `State`
- Current number of actors in each state described in `rpc::ActorTableData::ActorState <https://github.com/ray-project/ray/blob/b3799a53dcabd8d1a4d20f22faa98e781b0059c7/src/ray/protobuf/gcs.proto#L79>`. ALIVE has two sub-states: ALIVE_IDLE, and ALIVE_RUNNING_TASKS. An actor is considered ALIVE_IDLE if it is not running any tasks.

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

The link is enclosed in backticks, which will render as literal inline code instead of a clickable hyperlink. It should be converted to a standard Markdown link.


### Debugger

Many Python developers use a debugger to debug Python programs, and [Python pdb](https://docs.python.org/3/library/pdb.html)) is one of the popular choices. Ray has native integration to `pdb`. You can simply add `breakpoint()` to Actors and Tasks code to enable `pdb`. View {ref}`Ray Debugger <ray-debugger>` for more details.

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

There is an extra closing parenthesis ) after the Markdown link [Python pdb](https://docs.python.org/3/library/pdb.html)). It should be removed.

:::{note}
The following errors are conditional and not signals of failures for your Python programs:

* If you see "No such file or direction", check if your worker process has exited.

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

Typo in the error message description: "No such file or direction" should be "No such file or directory".

Suggested change
* If you see "No such file or direction", check if your worker process has exited.
* If you see "No such file or directory", check if your worker process has exited.


**Fix:**

— Use only shared file paths for such applications. For example, a network file system or S3 storage can provide the required consistency. — Avoid relying on local files to be consistent across machines.

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

Two list items starting with em-dashes (—) have been reflowed into a single line, which prevents them from rendering as a list. They should be split into separate lines and formatted as a standard Markdown bulleted list.

Suggested change
— Use only shared file paths for such applications. For example, a network file system or S3 storage can provide the required consistency. — Avoid relying on local files to be consistent across machines.
- Use only shared file paths for such applications. For example, a network file system or S3 storage can provide the required consistency.
- Avoid relying on local files to be consistent across machines.


To enable call site capture, set the environment variable `RAY_record_task_actor_creation_sites=true`. When enabled:

— Ray captures a stack trace when creating tasks, actors, or invoking actor methods. — The captured stack trace is available in the Ray dashboard (under task and actor details), output of the state CLI command `ray list task --detail`, and state API responses.

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

Two list items starting with em-dashes (—) have been reflowed into a single line, which prevents them from rendering as a list. They should be split into separate lines and formatted as a standard Markdown bulleted list.


For many - but not all - libraries, you can diagnose this by opening `top` while your application is running. If one process is using most of the CPUs, and the others are using a small amount, this may be the problem. The most common exception is PyTorch, which will appear to be using all the cores despite needing `torch.set_num_threads(1)` to be called to avoid contention.

If you are still experiencing a slowdown, but none of the above problems apply, we'd really like to know! Create a [GitHub issue](https://github.com/ray-project/ray/issues) and Submit a minimal code example that demonstrates the problem.

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

Typo: "Submit" is capitalized in the middle of the sentence. It should be lowercase "submit".

Suggested change
If you are still experiencing a slowdown, but none of the above problems apply, we'd really like to know! Create a [GitHub issue](https://github.com/ray-project/ray/issues) and Submit a minimal code example that demonstrates the problem.
If you are still experiencing a slowdown, but none of the above problems apply, we'd really like to know! Create a [GitHub issue](https://github.com/ray-project/ray/issues) and submit a minimal code example that demonstrates the problem.


# Using the Ray Debugger

Ray has a built in debugger that allows you to debug your distributed applications. It allows to set breakpoints in your Ray tasks and actors and when hitting the breakpoint you can drop into a PDB session that you can then use to:

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

Grammatical issue: "It allows to set breakpoints" should be "It allows you to set breakpoints" or "It allows setting breakpoints".

Suggested change
Ray has a built in debugger that allows you to debug your distributed applications. It allows to set breakpoints in your Ray tasks and actors and when hitting the breakpoint you can drop into a PDB session that you can then use to:
Ray has a built in debugger that allows you to debug your distributed applications. It allows you to set breakpoints in your Ray tasks and actors and when hitting the breakpoint you can drop into a PDB session that you can then use to:

Training iteration
A partial training pass of input data up to pre-defined yield point
(e.g., time or data consumed) for checkpointing of long running training jobs.
A full training epoch can consist of multiple training iterations.

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

The RST comment .. TODO: RLlib was incorrectly converted to .\. TODO: RLlib, which will render as literal text. It should be converted to a standard Markdown comment <!-- TODO: RLlib -->. Note that the same issue applies to other .. TODO: lines in this file (e.g., lines 145, 157, 163, etc.) and they should all be converted to standard HTML comments <!-- TODO: ... -->.

Suggested change
A full training epoch can consist of multiple training iterations.
<!-- TODO: RLlib -->

The RST sources wrote these as lines starting with '-' or an em dash inside a paragraph, which /en/master renders as run-on text. The soft-wrap joined them onto one line, which makes the problem visible in the source. Make them real Markdown lists.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Douglas Strodtman <douglas@anyscale.com>
@ray-gardener ray-gardener Bot added docs An issue or change related to documentation core Issues that should be addressed in Ray Core labels Oct 2, 2026
Remove the glossary's placeholder TODO entries. The `.. TODO:` lines
rendered as literal text inside the MyST glossary, and the missing terms
can be identified later.

Revert the doc/BUILD.bazel change so the PR stays docs-only and doesn't
trigger library CI. Instead, mark the glossary's batch-format example
`+SKIP` so the stock `--doctest-glob='*.md'` parser doesn't run its stale
output. The example never ran as .rst, and Sphinx's default
`trim_doctest_flags` hides the flag in the rendered page.

Also fix defects carried over from the .rst sources: a stray definition
list in dask-on-ray, an unconverted link in system-metrics, an extra
parenthesis in debug-failures, two typos, a grammar slip in
ray-debugging, and em-dash pseudo-list items in general-debugging.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Douglas Strodtman <douglas@anyscale.com>
@dstrodtman
dstrodtman merged commit b73689f into master Oct 5, 2026
6 checks passed
@dstrodtman
dstrodtman deleted the doc-1527-myst-batch-7 branch October 5, 2026 13:27
nadongjun pushed a commit to nadongjun/ray that referenced this pull request Oct 6, 2026
…m RST to MyST (ray-project#66673)

## Why are these changes needed?

This PR converts the remaining prose pages under `ray-observability/`,
`ray-more-libs/`, `ray-references/`, and `ray-air/` from
reStructuredText to MyST Markdown. It continues the RST-to-MyST
conversion that already landed for `ray-core/` (ray-project#66430), `data/`
(ray-project#66375), and the doctest-wired pages (ray-project#66461). The conversion is format
only: the goal is for each page's rendered HTML to match `/en/master`.

There are five commits:

1. **Conversion.** This commit converts 25 pages, `git rm`s the `.rst`
sources, and adds one `doc/BUILD.bazel` exclude, which commit 5 reverts.
Prose keeps its source line wrapping, so the diff lines up with the
`.rst` line by line.
2. **Soft-wrap.** This commit reflows whitespace only, to one line per
paragraph and list item. `verify.py` from `ray-soft-wrap` confirms that
the non-whitespace bytes and the rendered HTML don't change on all 25
files.
3. **Render fixes.** This commit fixes six regressions that the render
diff against `/en/master` caught, even though the build was green. In
`modin`, two bare-word RST link references (`Modin_`, `documentation_`)
rendered as literal text. In `getting-started`, a bold URL was
autolinked. In `system-metrics`, a URL in a table cell lost its link. In
`dask-on-ray`, `_not_` rendered as italics. In `glossary`, the inline
`.. TODO: RLlib` text, which `/en/master` shows, had become a comment.
The commit also adds compat anchors to five headings with apostrophes
(see below).
4. **Pseudo-lists.** This commit restores three pseudo-lists that the
soft-wrap merged into one line.
5. **Review feedback.** This commit removes the glossary's placeholder
TODO entries, reverts the `doc/BUILD.bazel` change so the PR stays
docs-only, and fixes defects that the review flagged in the `.rst`
sources: a stray definition list in `dask-on-ray`, an unconverted link
in `system-metrics`, an extra parenthesis in `debug-failures`, typos in
`debug-hangs` and `optimize-performance`, a grammar slip in
`ray-debugging`, and em-dash pseudo-list items in `general-debugging`,
which are now a bulleted list.

### Scope

- `ray-air/`: `getting-started` and `deployment`, converted together.
`getting-started` includes `deployment`, and the include now points at
`deployment.md`.
- `ray-observability/`: 14 pages, including `user-guides/debug-apps/`
and `reference/system-metrics`.
- `ray-more-libs/`: 9 pages.
- `ray-references/`: `glossary` and `faq`.

**Left as RST:** `ray-observability/reference/api.rst` (`autosummary`)
and `ray-observability/reference/cli.rst` (`click`). They're API
reference pages, so they stay RST along with the other `*/api/`
reference trees.

### Construct notes for reviewers

- **Glossary.** The glossary is a native MyST `{glossary}` directive,
not RST wrapped in `{eval-rst}`. Sphinx's `glossary` directive parses
each definition with the host parser, so the definitions are Markdown
now. The glossary's placeholder `.. TODO:` entries are removed. Missing
terms can be identified separately.
- **Glossary doctest.** Nothing ran the glossary's `.. doctest::` block
as `.rst`: `pytest-sphinx` doesn't execute `doctest` sections, and
`--doctest-glob='*.md'` doesn't match `.rst`. As `.md`, the stock
doctest parser would start running its five `>>>` prompts, and the
`[[0],[1],...,[3],[4]]` output can't pass without `ELLIPSIS`. Each
prompt now carries `# doctest: +SKIP`, which keeps coverage the same as
master without a `doc/BUILD.bazel` change. Sphinx's default
`trim_doctest_flags` strips the flag from the rendered page, as in
`data/working-with-tensors.md`. If you'd rather fix the expected output
and start testing it, I can do that in a follow-up.
- **FAQ.** `faq.md` includes `_includes/_help-links.md`, the Markdown
copy of `_help.rst` that ray-project#66417 added. `_help.rst` stays, because
`cluster/vms/user-guides/community/yarn.rst` and `tune/key-concepts.rst`
still include it.
- **Comparison table.** The grid table in
`ray-collective-custom-backend` is now a native `{list-table}`.
- **Line blocks.** The line blocks in `dask-on-ray`'s version table are
now Markdown hard line breaks. This is an expected render difference:
`<p>` with `<br>` instead of `div.line-block`.

### Dead links fixed on the way

These links were broken on `/en/master` and fail `fail_on_warning` when
they're transcribed into MyST:

- `joblib` and `multiprocessing` linked to relative `actors.html` and
`installation.html`, which resolve under `ray-more-libs/` and return
404. They now link to `{doc}` `/ray-core/actors` and
`/ray-overview/installation`.
- `ray-collective` linked to `#api-reference`, but the heading's anchor
is `#api-references`.

### Open PRs that edit these pages

Each of these PRs needs to move its change onto the `.md` file: ray-project#66363
(`ray-event-export`), ray-project#65693 and ray-project#65583 (`system-metrics`), and ray-project#64957
(`joblib`, `multiprocessing`). ray-project#65321 edits `reference/cli.rst`, which
this PR doesn't convert.

## Related issue number

None.

## Checks

- [x] I've signed off every commit (`git commit -s`).
- [x] Duplicate check: no open PR converts these pages. I searched open
PRs for MyST, observability, glossary, and more-libs, and for open PRs
that edit these files.
- **Doctest parity:** `doctest_parity.py` (the `pytest-sphinx` parser,
run against `upstream/master`) reports the same sections and examples on
all 25 pages, before and after the soft-wrap: 12 examples before, 12
after.
- **Local doctest:** `pytest --doctest-modules --doctest-glob='*.md' -c
NO_PYTEST_CONFIG -p doctest_pytest_plugin` on the 24 converted pages in
the main target, with Ray nightly `bc900c2` on Python 3.10: 5 passed.
Those are the 5 files with examples. The glossary, now in the target
too, reports 1 skipped: the stock parser finds 5 examples and all 5
carry `+SKIP`.
- **Static checks:** frontmatter parses, fences balance, every label is
preserved, and there's no leftover RST outside fences or directives.
- **RtD preview:** green under `fail_on_warning` on all three commits.
- **Render diff** (`render_diff.py`, preview against `/en/master`,
filtering the two class-only differences every MyST page shows): 11 of
25 pages are identical. Every difference on the other 14 is one of
these:
- RST comments now emit `<!-- ... -->` HTML comments, which readers
don't see. Pages: `ray-air/*`, `ray-more-libs/index`, `ray-collective`,
`getting-started`, `general-debugging`, `glossary`.
- The `dask-on-ray` version table: Markdown hard line breaks (`<p>` with
`<br>`) replace RST line blocks (`div.line-block`).
- The `dask-on-ray` "Why use Dask on Ray?" item keeps its
definition-list structure. MyST adds a `myst` class to the `<dl>`, and
the class has no styling.
- Same-page fragment and `{doc}` links render as `reference internal`
instead of `reference external`. Pages: `ray-collective`, `joblib`,
`multiprocessing`. This list also includes the dead links fixed above.
- Headings with an apostrophe get a new anchor, because MyST drops the
apostrophe where docutils turned it into a hyphen. For example,
`#what-s-the-out-of-memory-error` becomes
`#whats-the-out-of-memory-error`. Five of these headings had no label,
so each gets a compat target with the old slug, which keeps existing
links working. The sixth, in `optimize-performance`, already carries the
`dashboard-cprofile` label.

This PR was written with AI assistance (Claude Code). I reviewed the
changes and ran the checks above.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Signed-off-by: Douglas Strodtman <douglas@anyscale.com>
Co-authored-by: Claude Opus 5.5 <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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants