Contributing#
We welcome contributions to RoboEval!
Getting Started#
Fork the repository:
git clone https://github.com/helen9975/RoboEval.git
cd RoboEval
Create a development environment:
conda create -n roboeval-dev python=3.10
conda activate roboeval-dev
pip install -e ".[dev]"
Create a feature branch:
git checkout -b feature/my-new-feature
Development Guidelines#
Code Style
We use:
Black for formatting
Flake8 for linting
Type hints where appropriate
Run formatters:
black roboeval/
flake8 roboeval/
Testing
Add tests for new features:
# tests/test_my_feature.py
import pytest
from roboeval.envs.my_env import MyEnv
def test_my_feature():
env = MyEnv(...)
assert env.some_property == expected_value
Run tests:
pytest tests/
Documentation
Add docstrings:
def my_function(param1, param2):
"""Short description.
Longer description of function behavior.
:param param1: Description of param1
:param param2: Description of param2
:return: Description of return value
"""
pass
Contribution Types#
New Tasks
Create task file in
roboeval/envs/Implement required methods
Add tests
Add documentation
Submit PR
Bug Fixes
Create issue describing bug
Fix bug in feature branch
Add regression test
Submit PR
Documentation
Improve existing docs
Add examples
Fix typos
Submit PR
Submitting Pull Requests#
Ensure tests pass:
pytest tests/
black roboeval/
flake8 roboeval/
Write clear commit messages:
Add LiftBottle task
- Implements base task and 4 variations
- Adds tests for success/fail conditions
- Includes documentation
Submit PR:
Reference related issues
Describe changes
Include test results
Code Review Process#
Automated tests run on PR
Maintainers review code
Address feedback
Merge when approved
Questions?#
Open an issue on GitHub
Join our community discussions
Check existing issues/PRs
See Also#
Testing - Testing guidelines
GitHub repository