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)
1
Fork the repository
Fork the Isaac GR00T repository on GitHub.
2
Clone your fork
Clone your fork locally:
3
Add upstream remote
Add the main repository as an upstream remote:Verify your remotes:You should see:
4
Install in editable mode
Create a development environment and install GR00T in editable mode:The
-e flag creates a symbolic link from your virtual environment to your local source code, so changes are immediately reflected.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