Contributing to TPPT¶
We welcome contributions to TPPT! This document provides guidelines and instructions for contributing to the project.
Development Setup¶
-
Fork and clone the repository:
-
Create a virtual environment and install dependencies:
Development Tools¶
TPPT uses several development tools:
- mypy: Static type checking
- pyright: Additional type checking
- ruff: Code formatting and linting
- pytest: Testing framework
You can run all checks using:
Or run individual checks:
# Format code
uv run task format
# Run linter
uv run task lint
# Run type checker
uv run task typecheck
# Run tests
uv run task test
Pull Request Process¶
-
Create a new branch for your feature:
-
Make your changes and commit them:
-
Ensure all tests pass:
-
Push your changes and create a pull request:
-
Create a Pull Request on GitHub
Code Style¶
- Follow PEP 8 guidelines
- Use type hints for all function parameters and return values
- Write docstrings for all public functions and classes
- Keep functions focused and single-purpose
- Write tests for new features
Testing¶
- Write unit tests for new features
- Ensure all tests pass before submitting a pull request
- Add integration tests for complex features
- Test edge cases and error conditions
Documentation¶
When adding new features, please:
- Add docstrings to all new functions and classes
- Update the relevant documentation files
- Add examples if appropriate
- Update the changelog
Questions or Issues?¶
If you have questions or run into issues:
- Check the existing issues on GitHub
- Create a new issue if needed
- Join our community discussions
Thank you for contributing to TPPT!