ROS 2 docs repository
ROS 2 Documentation
This repository contains the sources for the ROS 2 documentation that is hosted at https://docs.ros.org/en. The sources from this repository are built and uploaded to the site nightly by a Jenkins job.
Contributing to the documentation
Contributions to this site are most welcome. Please see the Contributing to ROS 2 Documentation page to learn more.
Contributing to ROS 2
To contribute to the ROS 2 source code project please refer to the ROS 2 contributing guidelines.
Prerequisites
To build this you need to install
- make
- graphviz
# activate the venv
python3 -m venv ros2doc
activate venv
source ros2doc/bin/activate
install required packages
pip install -r requirements.txt -c constraints.txt
deactivate the venv
(ros2doc) deactivate
Pinned versions
For development we currently use Noble (Ubuntu 24.04) as our build platform. And all python versions are pinned in the constraints file to make sure that things are reproducible. To upgrade the system validate that things are working and then use pip freeze > constraints.txt to lock in the versions to upgrade.
Building HTML
Local development test
For local testing of the current tree use:
make html
sensible-browser build/html/index.html
Live-reload local development
To iterate on documentation without manually rebuilding and refreshing the browser, use sphinx-autobuild. It watches the source files, rebuilds incrementally on save, and serves the result with automatic browser reload.
sphinx-autobuild is installed as part of requirements.txt. Start the live server with:
make serve
Then open http://localhost:2022 in a browser.
The serve target binds to 0.0.0.0:2022 by default (a little ROS 2 vibe) so the server is reachable through devcontainer / port forwarding. Override the bind address or port if needed:
make serve LIVEHOST=127.0.0.1 LIVEPORT=8080
Spelling Check
To check the spelling, use:
make spellcheck
[!NOTE]
If that detects specific words that need to be ignored, add it to codespellwhitelist. \
To include any custom corrections that are to be applied, add it to codespelldictionary.
Deployment test
To test building the multisite version deployed to the website use:
make multiversion
sensible-browser build/html/rolling/index.html
NB: This will ignore local workspace changes and build from the branches.
Note for Windows (WSL) Users
When building the documentation on windows using WSL, it is recommended to clone and work with this repository inside the Linux filesystem (for example, under /home/<user>/) rather than under /mnt/c.
Working under /mnt/c can lead to slower builds and filesystem-related issues with Sphinx and ROS tooling.