Contributing¶
Thank you for your interest in contributing to Echomine!
For comprehensive development guidelines, please see:
Quick Links¶
Development Setup¶
- Clone repository:
git clone https://github.com/echomine/echomine.git - Install dependencies:
pip install -e ".[dev]" - Install hooks:
pre-commit install - Run tests:
pytest
Key Guidelines¶
- TDD: Write tests first (RED-GREEN-REFACTOR)
- Type Safety: mypy --strict must pass
- Code Quality: ruff for linting/formatting
- Test Coverage: 80% minimum, 95% for public API
Common Tasks¶
# Run tests with coverage
pytest --cov=echomine --cov-report=term-missing
# Type checking
mypy --strict src/echomine/
# Linting and formatting
ruff check --fix src/ tests/
ruff format src/ tests/
# Pre-commit hooks
pre-commit run --all-files
Pull Request Process¶
- Create feature branch
- Write failing tests (RED)
- Implement feature (GREEN)
- Refactor (REFACTOR)
- Ensure all quality checks pass
- Submit PR with conventional commit message
Architecture Principles¶
- Library-First: Core in library, CLI wraps it
- Type Safety: mypy --strict, no
Anytypes - Memory Efficiency: Streaming, O(1) memory
- YAGNI: Implement only spec requirements
Getting Help¶
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Docs: Full Documentation
For complete details, see CONTRIBUTING.md.