Thank you for your interest in contributing to flybody! We appreciate all contributions, from bug reports and documentation fixes to new features and research improvements.
We recommend using uv for a fast and reproducible development environment.
-
Clone the repository:
git clone https://github.com/TuragaLab/flybody.git cd flybody -
Create a virtual environment:
uv venv --python 3.10 source .venv/bin/activate -
Install development dependencies:
uv pip install -e ".[dev,all]"This installs the package in editable mode along with testing, linting, and all optional dependencies (TensorFlow, Ray, etc.).
We use ruff to lint and format our code. Please ensure your code passes linting before submitting a PR.
# Run lint check
bash scripts/lint.sh
# Auto-fix issues where possible
bash scripts/lint.sh --fixPlease run the test suite to ensure no regressions.
# Run core tests (fast)
bash scripts/run_tests.sh
# Run all tests (including TensorFlow policy tests)
uv run pytest tests/ -vNote: Some tests require a MuJoCo rendering backend. If you are on a headless server, you may need to set
MUJOCO_GL=egl.
- Fork the repository and create a concise branch name for your feature or fix.
- Implement your changes, ensuring you include docstrings and comments where necessary.
- Add tests for any new functionality.
- Run the checks: Ensure linting passes and tests pass.
- Submit a Pull Request: Provide a clear description of your changes and link to any relevant issues.
If you encounter bugs or have feature requests, please use the GitHub Issues tracker. Provide as much context as possible, including reproduction steps and environment details.