Skip to content

Latest commit

 

History

History
71 lines (46 loc) · 2.04 KB

File metadata and controls

71 lines (46 loc) · 2.04 KB

Contributing to flybody

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.

Development Environment

We recommend using uv for a fast and reproducible development environment.

Setup

  1. Clone the repository:

    git clone https://github.com/TuragaLab/flybody.git
    cd flybody
  2. Create a virtual environment:

    uv venv --python 3.10
    source .venv/bin/activate
  3. 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.).

Development Workflow

Linting and Formatting

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 --fix

Testing

Please 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/ -v

Note: Some tests require a MuJoCo rendering backend. If you are on a headless server, you may need to set MUJOCO_GL=egl.

Pull Request Process

  1. Fork the repository and create a concise branch name for your feature or fix.
  2. Implement your changes, ensuring you include docstrings and comments where necessary.
  3. Add tests for any new functionality.
  4. Run the checks: Ensure linting passes and tests pass.
  5. Submit a Pull Request: Provide a clear description of your changes and link to any relevant issues.

Reporting 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.