Thank you for your interest in contributing to PDF Statement Reader! This document provides guidelines and information about contributing to this project.
- Fork the repository on GitHub
- Clone your fork locally:
git clone git@github.com:your-username/pdf_statement_reader.git- Set up your development environment:
uv sync- Create a new branch for your feature or bugfix:
git checkout -b feature-name- Make your changes, following our coding standards
- Write or update tests as needed
- Run the test suite to ensure everything passes
- Commit your changes with a clear commit message following conventional commits format
- Push to your fork and submit a pull request
We follow the Conventional Commits specification for commit messages. Each commit message should be structured as follows:
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
Types include:
feat: A new featurefix: A bug fixdocs: Documentation only changesstyle: Changes that do not affect the meaning of the coderefactor: A code change that neither fixes a bug nor adds a featureperf: A code change that improves performancetest: Adding missing tests or correcting existing testschore: Changes to the build process or auxiliary tools
Examples:
feat(parser): add ability to parse HSBC statements
fix(config): correct column mapping for Absa statements
docs: update configuration guide
test(validation): add tests for balance validation
One of the most valuable ways to contribute is by adding support for new bank statement formats:
-
Create a new configuration file in the appropriate location:
config > [country code] > [bank] > [statement type].json -
Follow the configuration format as described in the README.md
-
Test your configuration with sample statements
-
Include documentation about the new format in your pull request
- Include a clear description of the changes
- Add/update tests for any new functionality
- Ensure all tests pass
- Update documentation as needed
- Follow existing code style and conventions
Before submitting a pull request, make sure all tests pass:
# Run the test suite
pytest
# Check code coverage
pytest --cov=pdf_statement_reader- Follow PEP 8 guidelines for Python code
- Use meaningful variable and function names
- Add docstrings for functions and classes
- Comment complex logic as needed
When reporting issues, please include:
- A clear description of the problem
- Steps to reproduce the issue
- Expected vs actual behavior
- Version information (Python version, package version)
- Any relevant error messages or logs
By contributing to PDF Statement Reader, you agree that your contributions will be licensed under the same license as the project.
If you have questions about contributing, feel free to open an issue for discussion.
Thank you for contributing to PDF Statement Reader!