Thank you for your interest in contributing to Drake Models.
git clone https://github.com/D-sorganization/Drake_Models.git
cd Drake_Models
pip install -e ".[dev]"
pre-commit installAll code must pass:
- Linting:
ruff check src tests scripts - Formatting:
ruff format --check src tests scripts - Type checking:
mypy src --config-file pyproject.toml - Tests:
python3 -m pytest tests/ -v
- Create a feature branch from
main. - Write tests for any new functionality.
- Ensure all CI checks pass before requesting review.
- Keep PRs focused on a single concern.
- Use type annotations on all public functions (
disallow_untyped_defs = true). - Use
logging.getLogger(__name__)instead ofprint()in library code. - Use Design-by-Contract: validate inputs with precondition guards.
- Follow Drake Z-up convention (gravity along -Z, forward along X).
- Use
xml.etree.ElementTreefor all XML generation (no lxml dependency). - Extract magic numbers to named constants.
Open a GitHub issue with a clear description and, if applicable, a minimal reproduction case.