Contributing
Thank you for contributing! Here's how to get started.
Setup
# Install dependencies
uv sync --group dev
# Install pre-commit hooks
uv run pre-commit install
Development
Tests
uv run pytest # Run all tests
uv run pytest --cov=tabular2mcap # With coverage
Linting & Formatting
uv run ruff check . --fix # Lint and auto-fix
uv run ruff format . # Format code
Type Checking (optional)
uv run mypy tabular2mcap/ --ignore-missing-imports
Documentation
uv sync --group docs # Install docs dependencies
uv run mkdocs serve # Preview at localhost:8000
Foxglove JSON Schema Updates
JSON schemas are included in the repo to avoid download caching. To update to the latest version:
cd tabular2mcap/external
uv run python update_foxglove_schema.py
Pull Request Process
- Fork the repository and create a feature branch
- Make changes following the code style below
- Add tests for new features
- Run
ruff check . --fix && ruff format . - Push and open a PR with a clear description
Code Style
- Line length: 88 characters
- Quotes: Double quotes
- Imports: Auto-sorted by Ruff
- Type hints: Encouraged
CI Requirements
PRs must pass:
- ✅ Ruff linting and formatting
- ✅ Tests on Python 3.10, 3.11, 3.12
- ✅ Tests on Ubuntu, macOS, Windows
Questions?
Open an issue if you need help!