Rebuild Ray
SkillDev toolsThe rebuild skill guides your agent through rebuilding Ray from source. It checks which files have changed via git diff and picks the matching build path: none for Python-only edits under an editable install, targeted Bazel builds for C++/Cython changes, a dashboard build, or a full source build on first setup. It also includes commands for building individual modules like raylet and GCS, plus options for debug/fast builds and low-memory machines.
Available today. Use it from your connected AI after setup.
No other account needed.
Have a local clone of the Ray repository and a configured Python interpreter.
Then ask your AI: use the Rebuild Ray skill
What your AI can do with it
- Determine the right build mode based on git diff output
- Run Python-only rebuild steps for editable installs or setup-dev.py
- Build individual C++ modules like raylet, GCS, and core_worker with Bazel
- Build the dashboard client with npm
- Perform a full source build on first setup
- Offer debug, fast, and optimized build variants
Getting started
- Have a local clone of the Ray repository and a configured Python interpreter.
- Check which files changed with git diff --name-only HEAD, or tell the agent what changed.
- Let the skill pick the build mode: Python-only, C++/Cython, dashboard, or full source.
- Run the corresponding commands, such as bazel run //:gen_ray_pkg for C++/Cython changes.
- For first-time setup, follow the full source build steps including dashboard build and pip install -e .
What this skill tells your AI
The instructions your AI receives, as published by ray-project/ray in .claude/skills/rebuild/SKILL.md and read by ahel’s review.
Canonical build docs: doc/source/ray-contribute/development.md
Use the user's configured Python from CLAUDE.local.md, or fall back to which python.
Update this skill if any changes are detected in development.rst.
Determine what to rebuild
- Check what files changed:
git diff --name-only HEAD(or ask the user) - Pick the appropriate build mode:
- Only .py files changed (no .h, .cc, .pyx, .pxd) → Python-only rebuild (not required if installed with
pip install -e .— editable mode auto-picks up Python changes) - .h, .cc, .pyx, .pxd files changed → C++/Cython rebuild
- Dashboard files changed (python/ray/dashboard/client/) → Dashboard rebuild first
- First time / clean build → Full source build
- Only .py files changed (no .h, .cc, .pyx, .pxd) → Python-only rebuild (not required if installed with
Running Python tests that exercise C++ changes: When a Python test depends on C++ or Cython code (raylet, GCS, core_worker, etc.), run the C++/Cython rebuild below before running the test. Editable Python installs do not rebuild the compiled extensions, so stale binaries will run otherwise.
Python-only rebuild
For changes to Tune, RLlib, Autoscaler, and most Python files. Two approaches depending on how Ray was installed:
If installed with pip install -e . (editable/full source build)
No rebuild needed — Python changes are picked up automatically.
If installed from nightly wheel + setup-dev.py
- Ensure a nightly wheel is installed (see doc/source/ray-contribute/development.md for the correct wheel URL for the user's platform and Python version)
- Link local files:
python python/ray/setup-dev.py - Can skip specific dirs:
python python/ray/setup-dev.py -y --skip _private dashboard
Warning: With setup-dev.py, don't run pip uninstall ray or pip install -U.
Instead: rm -rf <site-packages>/ray, reinstall wheel, re-run setup-dev.py.
C++/Cython rebuild (after initial full build)
Full package rebuild
bazel run //:gen_ray_pkg
Build individual modules (faster)
bazel build //src/ray/raylet:raylet # Raylet only
bazel build //src/ray/gcs:gcs_server # GCS server only
bazel build //src/ray/core_worker:core_worker # Core worker only
bazel build //:ray_pkg # All C++ and Cython
Build variants
bazel run -c fastbuild //:gen_ray_pkg— fast build (less optimization)bazel run -c dbg //:gen_ray_pkg— debug build with symbols (for gdb)bazel run -c opt //:gen_ray_pkg— optimized build
Make permanent in ~/.bazelrc: build --compilation_mode=fastbuild
Full source build (first time)
- If dashboard changed:
cd python/ray/dashboard/client && npm ci && npm run build && cd - - Install deps:
cd python/ && pip install -r requirements.txt - Build:
pip install -e . --verbose
Resource-constrained builds
Add to ~/.bazelrc if machine runs out of memory:
build --local_ram_resources=HOST_RAM*.5 --local_cpu_resources=4
build --disk_cache=~/bazel-cache
Worktree notes
- Verify build paths:
bazel info execution_root - If build fails, check .bazelversion matches installed Bazel
- Each worktree may need its own
pip install -e . - If in a worktree and bazel targets fail, ensure symlinks are correct
Signals
- GitHub stars
- 44k
- Forks
- 8k
- Last commit
- Oct 2026
ahel review
K1binfo
installs-packages
Automated review, not a security audit. Ruleset v1+k2.
Questions
- What does the rebuild skill do?
- It guides your agent through rebuilding Ray from source by checking which files changed and selecting the right build mode, from Python-only to full source builds.
- When should I use a Python-only rebuild?
- Use it when only .py files changed. If Ray was installed with pip install -e ., no rebuild is needed; otherwise use setup-dev.py to link local files.
Advanced
- Item type
- skill
- Key
rebuild- Source
- github.com/ray-project/ray