Thanks for considering contributing to NVIDIA Isaac GR00T! This guide explains the various ways you can contribute to this project and how to get started.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/NVIDIA/Isaac-GR00T/llms.txt
Use this file to discover all available pages before exploring further.
Bug reports and feature requests
Reporting bugs
Before creating a bug report:- Search existing issues: Do a quick search to see if your issue has already been reported
- Comment on existing issues: If your issue exists, add any additional information as a comment
- Open a new GitHub issue
- Include a clear title and description
- Provide:
- Steps to reproduce the error
- Expected behavior vs actual behavior
- Code samples or test cases demonstrating the issue
- Error messages and stack traces
- Environment details (CUDA version, GPU model, OS, etc.)
Suggesting features
Before creating a feature request:- Clarify your idea: Make sure you have a clear vision of the enhancement
- Check documentation: Verify the feature doesn’t already exist
- Search existing issues: Do a quick search to avoid duplicates
- Provide a clear title and description
- Explain the use case: Why would this enhancement be useful?
- Show examples: Highlight similar features in other libraries if applicable
- Include code examples: Demonstrate how the feature would be used
Making a pull request
Follow these guidelines when contributing code to help us review your pull request quickly.Initial setup (one-time)
Fork the repository
Fork the Isaac GR00T repository on GitHub.
Add upstream remote
Add the main repository as an upstream remote:Verify your remotes:You should see:
Keeping your fork up-to-date
Once you’ve added an upstream remote, keeping your fork synchronized is easy:Creating a branch for your changes
Create a new branch:Testing your changes
Before opening a pull request, run the following checks locally to speed up the review process.Code formatting and linting
GR00T usesruff for code formatting and linting.
Run ruff from the command line:
Running tests
We strive to maintain high test coverage. Most contributions should include additions to the unit tests. Run tests withpytest:
gr00t/policy/policy.py, run:
Opening a pull request
After all checks have passed:- Open a new GitHub pull request
- Provide a clear description of:
- The problem being solved
- Your solution approach
- Links to related issues
- Reference any relevant issues (e.g., “Fixes #123”)
We look forward to reviewing your PR! Please be patient as maintainers review contributions.
Developer Certificate of Origin
By making a contribution to this project, you certify that:Developer's Certificate of Origin 1.1
Developer's Certificate of Origin 1.1
Code style guidelines
Python code formatting
- Use
ruff formatfor consistent formatting - Use
ruff check --fixfor linting - Follow PEP 8 guidelines
- Maximum line length: 100 characters (enforced by ruff)
Documentation
- Write clear docstrings for all public functions and classes
- Use Google-style docstring format
- Update relevant documentation when changing functionality
Commit messages
- Use clear, descriptive commit messages
- Start with a verb in present tense (e.g., “Add”, “Fix”, “Update”)
- Reference issue numbers when applicable (e.g., “Fix #123: …”)
Testing guidelines
Writing tests
- Place tests in
tests/directory matching the source structure - Name test files with
test_prefix (e.g.,test_policy.py) - Use descriptive test function names (e.g.,
test_get_action_with_valid_observation) - Include both positive and negative test cases
- Test edge cases and error conditions
Test coverage
- Aim for high test coverage of new code
- Run tests locally before submitting PR
- CI will run full test suite on all supported platforms
Continuous Integration
All pull requests run through our CI pipeline on GitHub Actions, which checks:- Code formatting:
ruff format --check - Linting:
ruff check - Unit tests:
pytest - Type checking:
mypy(if configured)
Getting help
If you need help with your contribution:- Ask questions in your pull request
- Comment on related issues
- Check existing documentation and examples
- Review similar merged pull requests for guidance