Thank you for your interest in contributing to Aprender!
# Clone the repository
git clone https://github.com/paiml/aprender.git
cd aprender
# Build
cargo build --release
# Run tests
cargo test
# Run quality gates
make tier2Aprender follows EXTREME TDD methodology with strict quality gates:
- Test Coverage: 95%+ required (current: 96.94%)
- Clippy: Zero warnings (
cargo clippy -- -D warnings) - Formatting:
cargo fmt --check - Mutation Testing: 85%+ mutation score
| Tier | When | Commands |
|---|---|---|
| Tier 1 | On save | cargo fmt --check && cargo clippy && cargo check |
| Tier 2 | Pre-commit | cargo test --lib && cargo clippy -- -D warnings |
| Tier 3 | Pre-push | cargo test --all && make coverage |
| Tier 4 | CI/CD | Full mutation testing + PMAT analysis |
- Fork the repository
- Create a feature branch from
main - Write tests first (TDD)
- Implement your changes
- Ensure all quality gates pass
- Submit PR with clear description
- Follow Rust idioms and conventions
- Use meaningful variable names
- Add documentation for public APIs
- Keep functions focused and small
- Use GitHub Issues for bug reports
- Include minimal reproduction steps
- Specify Rust version and OS
By contributing, you agree that your contributions will be licensed under the MIT License.