Contributing

Thank you for considering contributing to paystack-django! We welcome contributions from the community.

Getting Started

  1. Fork the repository

  2. Clone your fork: git clone https://github.com/yourusername/paystack-django.git

  3. Create a branch: git checkout -b feature-name

  4. Install development dependencies: pip install -e ".[dev]"

cd paystack-django
pip install -e ".[dev]"
pre-commit install

Code Style

We use the following tools:

  • Black for code formatting

  • isort for import sorting

  • flake8 for linting

  • mypy for type checking

Run checks:

make lint
make format
make type-check

Testing

Write tests for your changes:

# Run all tests
pytest

# Run with coverage
pytest --cov=djpaystack

# Run specific test
pytest djpaystack/tests/test_transactions.py

Documentation

Update documentation for new features:

cd docs
make html
# Open _build/html/index.html

Commit Messages

Use clear commit messages:

git commit -m "Add feature X

- Brief description of changes
- Additional details if needed
"

Pull Request Process

  1. Update CHANGELOG.md

  2. Add tests for new features

  3. Update documentation

  4. Submit PR with clear description

  5. Ensure all checks pass

Code of Conduct

Be respectful and inclusive. We’re all here to learn and help.

Questions?

Thank you for contributing! 🎉