Thank you for your interest in contributing to judo! 🎉
We welcome bug reports, feature suggestions, documentation improvements, and pull requests of all kinds.
- Bug reports: Please include a minimal reproducible example and relevant log output.
- Feature requests: Keep them concise and focused. If you're unsure, open an issue for discussion first.
- Pull requests: Follow our style guide, write clear commit messages, and document any new features or changes.
We recommend using either conda or pixi to manage your development environment.
conda create -n judo python=3.13
conda activate judo
pip install -e .[dev]
pre-commit install
pybind11-stubgen mujoco -o typings/# Install pixi (once)
curl -fsSL https://pixi.sh/install.sh | sh
# Activate dev environment
pixi shell -e dev
# First-time setup
pre-commit install
pybind11-stubgen mujoco -o typings/We use the following tools:
| Tool | Purpose |
|---|---|
| Ruff | Formatting and linting |
| Pyright | Static type checking |
| Pre-commit | Auto-formatting and checks |
| Pytest | Unit and integration tests |
| Sphinx | Documentation |
| Codecov | Code coverage reporting |
To check your code before committing:
pre-commit run --all-files # style, formatting, etc.
pyright # type checks (not part of pre-commit)
pytest # run the test suiteAll CI checks must pass before a PR can be merged.
If you add a new task or optimizer:
- Register it with the appropriate entry point in the codebase.
- Update
judo/tasks/README.mdwith:- Task name
- Brief description
- Default parameters
- Known limitations or tips
Before opening a pull request, please:
- Ensure your code is tested and documented.
- Run all pre-commit and type checks.
- Keep PRs focused and concise (open multiple PRs if needed).
- Use clear and descriptive commit messages.
Example:
feat(task): add fr3_stack task with novel constraints
fix(mppi): guard against div-by-zero in cost calculation
If you are adding a significant change and would like it to be reviewed as a new package release, you will need to update a few things:
CHANGELOG.md: Following the format in the file, add your changes to the changelog with the proper PR referencespyproject.toml: Update the version ofjudo_raiappropriatelypixi.lock: Update thepixi.lockfile. You can do this by runningpixi shelland exiting after it's done.
Have questions or ideas?
- Use GitHub Issues to report bugs or suggest features.
- For general discussion, clarifications, or help, open a "Discussion" or start a draft PR.
Judo is an early-stage research project maintained by a small team. We greatly appreciate community feedback and help. Whether you fix a typo or add a new planning strategy, your contribution makes a difference!
Thank you for supporting open-source robotics. 🤖