Skip to content

Commit 62cc8db

Browse files
committed
docs: unify sphinx build, fix multiversion links
* Unify Sphinx build to build as one project instead of separate User Guide and Deployment Guide builds * Change hard-coded URLs to use Sphinx roles so the correct multiversion link can be interpolated at build time The goal of this change is to make the links in our docs version-aware after moving to multiversion docs in #40. Normally the way to do this is to reference roles like `:doc:` and `:ref:` instead of hard-coding URLs, but since we have cross-guide links we also have to unify the Sphinx build to make the builds aware of roles across all our docs.
1 parent e4294ad commit 62cc8db

File tree

25 files changed

+60
-106
lines changed

25 files changed

+60
-106
lines changed

README.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -116,13 +116,13 @@ OSMO solves this [Three Computer Problem](https://blogs.nvidia.com/blog/three-co
116116
117117
| **What You Can Do** | **Example** |
118118
|---------------------|----------------------|
119-
| **Interactively develop** on remote GPU nodes with VSCode, SSH, or Jupyter notebooks | [Interactive Workflows](https://nvidia.github.io/OSMO/user_guide/workflows/interactive/index.html) |
120-
| **Generate synthetic data** at scale using Isaac Sim or custom simulation environments | [Isaac Sim SDG](https://nvidia.github.io/OSMO/user_guide/how_to/isaac_sim_sdg.html) |
121-
| **Train models** with diverse datasets across distributed GPU clusters | [Model Training](https://nvidia.github.io/OSMO/user_guide/how_to/training.html) |
119+
| **Interactively develop** on remote GPU nodes with VSCode, SSH, or Jupyter notebooks | [Interactive Workflows](https://nvidia.github.io/OSMO/user_guide/main/workflows/interactive/index.html) |
120+
| **Generate synthetic data** at scale using Isaac Sim or custom simulation environments | [Isaac Sim SDG](https://nvidia.github.io/OSMO/user_guide/main/how_to/isaac_sim_sdg.html) |
121+
| **Train models** with diverse datasets across distributed GPU clusters | [Model Training](https://nvidia.github.io/OSMO/user_guide/main/how_to/training.html) |
122122
| **Train policies** for robots using data-parallel reinforcement learning | [Reinforcement Learning](https://nvidia.github.io/OSMO/user_guide/how_to/reinforcement_learning.html) |
123-
| **Validate models** in simulation with hardware-in-the-loop testing | [Hardware In The Loop](https://nvidia.github.io/OSMO/user_guide/tutorials/hardware_in_the_loop/index.html) |
124-
| **Transform and post-process data** for iterative improvement | [Working with Data](https://nvidia.github.io/OSMO/user_guide/tutorials/data/index.html) |
125-
| **Benchmark system software** on actual robot hardware (NVIDIA Jetson, custom platforms) | [Hardware Testing](https://nvidia.github.io/OSMO/user_guide/how_to/hil.html) |
123+
| **Validate models** in simulation with hardware-in-the-loop testing | [Hardware In The Loop](https://nvidia.github.io/OSMO/user_guide/main/tutorials/hardware_in_the_loop/index.html) |
124+
| **Transform and post-process data** for iterative improvement | [Working with Data](https://nvidia.github.io/OSMO/user_guide/main/tutorials/data/index.html) |
125+
| **Benchmark system software** on actual robot hardware (NVIDIA Jetson, custom platforms) | [Hardware Testing](https://nvidia.github.io/OSMO/user_guide/main/how_to/hil.html) |
126126
127127
### Battle-Tested in Production
128128
@@ -150,7 +150,7 @@ Select one of the deployment options below depending on your needs and environme
150150
| 🛠️ [**Cloud Deployment**](https://nvidia.github.io/OSMO/deployment_guide/) | Deploy production grade on cloud providers |
151151
| 📘 [**User Guide**](https://nvidia.github.io/OSMO/user_guide/) | Tutorials, workflows, and how-to guides for developers |
152152
| 💡 [**Workflow Examples**](./workflows/) | Robotics workflow examples
153-
| 💻 [**Getting Started**](https://nvidia.github.io/OSMO/user_guide/getting_started/install/index.html) | Install command-line interface to get started |
153+
| 💻 [**Getting Started**](https://nvidia.github.io/OSMO/user_guide/main/getting_started/install/index.html) | Install command-line interface to get started |
154154
155155
## Community & Support
156156

deployments/charts/quick-start/templates/NOTES.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,4 +28,4 @@
2828
osmo login http://quick-start.osmo --method=dev --username=testuser
2929

3030
4. Explore next steps:
31-
https://nvidia.github.io/OSMO/user_guide/getting_started/next_steps.html
31+
https://nvidia.github.io/OSMO/user_guide/main/getting_started/next_steps.html

docs/BUILD

Lines changed: 11 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -20,53 +20,26 @@ load("@aspect_bazel_lib//lib:copy_to_directory.bzl", "copy_to_directory")
2020

2121
package(default_visibility = ["//visibility:public"])
2222

23+
# Build all documentation as a unified Sphinx project
2324
filegroup(
24-
name = "root_docs_sources",
25-
srcs = glob([
26-
"_static/**",
27-
"_extensions/**",
28-
"conf.py",
29-
"index.rst",
30-
"docs_options.svg",
31-
]),
32-
)
33-
34-
copy_to_directory(
35-
name = "root_docs_copy",
36-
srcs = [":root_docs_sources"],
37-
out = "root_docs",
38-
)
39-
40-
filegroup(
41-
name = "user_guide_sources",
25+
name = "all_docs_sources",
4226
srcs = glob([
4327
"_static/**",
4428
"_extensions/**",
4529
"_templates/**",
30+
"_redirect/**",
4631
"user_guide/**",
47-
"conf.py",
48-
]),
49-
)
50-
51-
copy_to_directory(
52-
name = "user_guide_copy",
53-
srcs = [":user_guide_sources"],
54-
out = "user_guide",
55-
)
56-
57-
filegroup(
58-
name = "deployment_guide_sources",
59-
srcs = glob([
60-
"_static/**",
61-
"_extensions/**",
62-
"_templates/**",
6332
"deployment_guide/**",
64-
"conf.py",
33+
"*.py",
34+
"*.rst",
35+
"*.svg",
36+
"*.png",
37+
"*.txt",
6538
]),
6639
)
6740

6841
copy_to_directory(
69-
name = "deployment_guide_copy",
70-
srcs = [":deployment_guide_sources"],
71-
out = "deployment_guide",
42+
name = "docs_copy",
43+
srcs = [":all_docs_sources"],
44+
out = "docs",
7245
)

docs/Makefile

Lines changed: 6 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -35,45 +35,21 @@ clean:
3535
rm -rf _build
3636

3737
build:
38-
export OSMO_DOMAIN=public && sphinx-build -b html . -w $(ERR_DIR)/root.log $(OUT_DIR)
39-
export OSMO_DOMAIN=public && sphinx-build -b html user_guide -w $(ERR_DIR)/user_guide.log $(OUT_DIR)/user_guide
40-
export OSMO_DOMAIN=public && sphinx-build -b html deployment_guide -w $(ERR_DIR)/deployment_guide.log $(OUT_DIR)/deployment_guide
41-
export OSMO_DOMAIN=public && sphinx-build -b markdown user_guide $(OUT_DIR)/user_guide -w $(ERR_DIR)/user_guide_markdown.log
42-
export OSMO_DOMAIN=public && sphinx-build -b markdown deployment_guide $(OUT_DIR)/deployment_guide -w $(ERR_DIR)/deployment_guide_markdown.log
38+
export OSMO_DOMAIN=public && sphinx-build -b html . -w $(ERR_DIR)/build.log $(OUT_DIR)
39+
export OSMO_DOMAIN=public && sphinx-build -b markdown . -w $(ERR_DIR)/markdown.log $(OUT_DIR)
4340
rm -rf $(OUT_DIR)/_sources
44-
rm -rf $(OUT_DIR)/user_guide/_sources
45-
rm -rf $(OUT_DIR)/deployment_guide/_sources
4641

4742
build-multiversion:
48-
export OSMO_DOMAIN=public && sphinx-build -b html . -w $(ERR_DIR)/root.log $(OUT_DIR)
49-
export OSMO_DOMAIN=public && $(SPHINXBUILD) user_guide $(OUT_DIR)/user_guide
50-
export OSMO_DOMAIN=public && $(SPHINXBUILD) deployment_guide $(OUT_DIR)/deployment_guide
43+
export OSMO_DOMAIN=public && $(SPHINXBUILD) . $(OUT_DIR)
5144
rm -rf $(OUT_DIR)/_sources
52-
rm -rf $(OUT_DIR)/user_guide/_sources
53-
rm -rf $(OUT_DIR)/deployment_guide/_sources
54-
# Copy root redirect files
55-
@cp _redirect/redirect_user_guide.html $(OUT_DIR)/user_guide/index.html
56-
@cp _redirect/redirect_deployment_guide.html $(OUT_DIR)/deployment_guide/index.html
5745

58-
build-root-html:
59-
export OSMO_DOMAIN=public && sphinx-build -b html . -w $(ERR_DIR)/root.log $(OUT_DIR)
46+
build-html:
47+
export OSMO_DOMAIN=public && sphinx-build -b html . -w $(ERR_DIR)/build.log $(OUT_DIR)
6048
rm -rf $(OUT_DIR)/_sources
6149

6250

63-
build-user-html:
64-
export OSMO_DOMAIN=public && sphinx-build -b html user_guide -w $(ERR_DIR)/user_guide.log $(OUT_DIR)/user_guide
65-
rm -rf $(OUT_DIR)/user_guide/_sources
66-
67-
68-
build-deployment-html:
69-
export OSMO_DOMAIN=public && sphinx-build -b html deployment_guide -w $(ERR_DIR)/deployment_guide.log $(OUT_DIR)/deployment_guide
70-
rm -rf $(OUT_DIR)/deployment_guide/_sources
71-
72-
7351
spelling:
74-
export OSMO_DOMAIN=public && sphinx-build -b spelling -j auto -w $(ERR_DIR)/root.log -N . $(OUT_DIR)
75-
export OSMO_DOMAIN=public && sphinx-build -b spelling -j auto -w $(ERR_DIR)/user_guide.log -N user_guide $(OUT_DIR)/user_guide
76-
export OSMO_DOMAIN=public && sphinx-build -b spelling -j auto -w $(ERR_DIR)/deployment_guide.log -N deployment_guide $(OUT_DIR)/deployment_guide
52+
export OSMO_DOMAIN=public && sphinx-build -b spelling -j auto -w $(ERR_DIR)/spelling.log -N . $(OUT_DIR)
7753

7854

7955
# Catch-all target: route all unknown targets to Sphinx using the new

docs/conf.py

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@
6767
]
6868
spelling_show_suggestions = True
6969
spelling_warning = True
70-
spelling_word_list_filename = '../spelling_wordlist.txt'
70+
spelling_word_list_filename = '../spelling_wordlist.txt' if _is_subdir else 'spelling_wordlist.txt'
7171

7272
# Copybutton
7373
copybutton_prompt_text = r">>> |\.\.\. |\$ |In \[\d*\]: | {2,5}\.\.\.: | {5,8}: "
@@ -90,13 +90,8 @@
9090
'**/*.in.rst', # Ignore files that are embedded in other files
9191
]
9292

93-
# When building from root, exclude everything in subdirectories
94-
# The index files will still be parsed for TOC but won't build full pages
95-
if not _is_subdir:
96-
exclude_patterns.extend([
97-
'user_guide/**',
98-
'deployment_guide/**',
99-
])
93+
# Build everything as one unified Sphinx project
94+
# (previously excluded subdirectories when building from root)
10095

10196
suppress_warnings = [
10297
'toc.excluded',

docs/deployment_guide/advanced_config/dataset_buckets.rst

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,7 @@
2121
Dataset Buckets
2222
===============
2323

24-
Register external cloud storage buckets (S3, GCS, Azure) with OSMO to organize `datasets <https://nvidia.github.io/OSMO/user_guide/tutorials/data/index.html#datasets>`_ across multiple storage locations (This configuration is optional)
25-
24+
Register external cloud storage buckets (S3, GCS, Azure) with OSMO to organize :ref:`datasets <tutorials_working_with_data_datasets>` across multiple storage locations (This configuration is optional)
2625

2726
Why Use Dataset Buckets?
2827
=========================
@@ -310,4 +309,4 @@ Troubleshooting
310309
311310
.. seealso::
312311
313-
- Learn more about datasets in OSMO at `Datasets <https://nvidia.github.io/OSMO/user_guide/tutorials/data/index.html#datasets>`_
312+
- Learn more about datasets in OSMO at :ref:`Datasets <tutorials_working_with_data_datasets>`

docs/deployment_guide/advanced_config/rsync.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -255,4 +255,4 @@ Troubleshooting
255255

256256
.. seealso::
257257

258-
- Learn more about Rsync in OSMO at `Interactive Workflows <https://nvidia.github.io/OSMO/user_guide/workflows/interactive/rsync.html>`_
258+
- Learn more about Rsync in OSMO at :doc:`Interactive Workflows </user_guide/workflows/interactive/rsync>`

docs/deployment_guide/advanced_config/scheduler.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -243,4 +243,4 @@ Troubleshooting
243243
.. seealso::
244244

245245
- Learn more about `KAI scheduler <https://github.com/NVIDIA/kai-scheduler>`_
246-
- Learn more about `scheduling in OSMO <https://nvidia.github.io/OSMO/user_guide/resource_pools/scheduling/index.html#scheduling>`_
246+
- Learn more about :ref:`scheduling in OSMO <concepts_priority>`

docs/deployment_guide/appendix/deploy_local.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -340,7 +340,7 @@ Next Steps
340340

341341
Now that you have OSMO running locally, explore the platform:
342342

343-
1. **Run Your First Workflow**: Visit the `User Guide <https://nvidia.github.io/OSMO/user_guide/getting_started/next_steps.html>`_ for tutorials on submitting workflows, interactive development, distributed training, and more.
343+
1. **Run Your First Workflow**: Visit the :doc:`User Guide </user_guide/getting_started/next_steps>` for tutorials on submitting workflows, interactive development, distributed training, and more.
344344

345345
2. **Explore the Web UI**: Visit ``http://quick-start.osmo`` to access the OSMO dashboard.
346346

docs/deployment_guide/appendix/workflow_execution.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,7 @@ Learn More
232232

233233
.. seealso::
234234

235-
- `Workflow Overview <https://nvidia.github.io/OSMO/user_guide/workflows/index.html>`__ - User guide for writing workflows
236-
- `Workflow Lifecycle <https://nvidia.github.io/OSMO/user_guide/workflows/lifecycle/index.html>`__ - Understanding workflow states
235+
- :doc:`Workflow Overview </user_guide/workflows/index>` - User guide for writing workflows
236+
- :doc:`Workflow Lifecycle </user_guide/workflows/lifecycle/index>` - Understanding workflow states
237237
- :ref:`architecture` - Overall OSMO system architecture
238238

0 commit comments

Comments
 (0)