Thank you for your interest in contributing to tca-python. This document provides guidelines for contributing to the project.
- Python 3.10 or higher
- git
- Clone the repository:
git clone https://github.com/carmiac/tca-python.git
cd tca-python- Create a virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate- Install the package in development mode with dev dependencies:
pip install -e ".[dev]"- All functions and methods must have type hints
- Use modern Python 3.10+ syntax:
X | Noneinstead ofOptional[X] - Use built-in generics:
list,dictinstead oftyping.List,typing.Dict
- Run
rufffor linting and formatting:
ruff check src/tca/
ruff format src/tca/- Run
mypyfor type checking:
mypy src/tca/All code must pass mypy type checking with no errors.
Run the test suite:
pytestNew features should include tests. Bug fixes should include regression tests when practical.
- Create a new branch for your changes
- Make your changes following the code standards above
- Update CHANGELOG.md under the "Unreleased" section
- Ensure all tests pass and type checking succeeds
- Submit a pull request with a clear description of the changes
- One logical change per pull request
- Include tests for new functionality
- Update documentation if changing public APIs
- Reference related issues in the PR description
When reporting bugs, please include:
- Python version
- Operating system
- Steps to reproduce
- Expected vs actual behavior
- Relevant error messages or stack traces
For questions about using tca-python, please open a discussion or issue on GitHub rather than emailing maintainers directly.
By contributing, you agree that your contributions will be licensed under the MIT License.