Contributing to PayLink
Thank you for your interest in contributing to PayLink! This guide will help you get started with contributing to our open-source project.Ways to Contribute
There are many ways to contribute to PayLink:- Code contributions: Fix bugs, add features, improve performance
- Documentation: Improve existing docs, add examples, fix typos
- Bug reports: Submit detailed bug reports when you encounter issues
- Feature requests: Suggest new features or improvements
- Testing: Help test new features and ensure quality
- Community support: Help answer questions from other users
Getting Started
Prerequisites
- Python 3.8 or higher
- Git
- A GitHub account
Setting Up Your Development Environment
- Fork the repository Visit https://github.com/jameskanyiri/paylink_sdk and click the “Fork” button in the top-right corner.
-
Clone your fork
-
Set up a virtual environment
-
Install development dependencies
-
Set up pre-commit hooks
Development Workflow
-
Create a new branch
Use a descriptive branch name, such as:
feature/airtel-integration
fix/connection-timeout
docs/improve-examples
- Make your changes Write your code or documentation changes.
-
Run tests
-
Commit your changes
Follow our commit message format:
- Use the present tense (“Add feature” not “Added feature”)
- Use the imperative mood (“Move cursor to…” not “Moves cursor to…”)
- Start with a capital letter
- No dot (.) at the end
- Reference issues and pull requests liberally
-
Push your changes
- Submit a pull request Go to your repository on GitHub and click “Compare & pull request”.
Code Style and Guidelines
PayLink follows these coding standards:- PEP 8: We follow the PEP 8 style guide for Python code
- Type hints: Use type hints for function parameters and return values
- Docstrings: Document classes and functions using Google-style docstrings
- Tests: Include tests for new features and bug fixes
- Black: For code formatting
- isort: For import sorting
- Flake8: For linting
- MyPy: For type checking
Documentation Guidelines
When contributing to documentation:- Use clear, concise language
- Include code examples when applicable
- Follow Markdown best practices
- Update or add docstrings for any code changes
- Add new pages to the navigation in
docs.json
if needed
Testing Guidelines
When adding new features or fixing bugs:- Add unit tests for new functionality
- Ensure all tests pass before submitting a pull request
- Include integration tests for complex features
- Document test cases clearly
Pull Request Process
- Ensure your PR addresses a specific issue or clearly describes the improvement
- Update documentation as necessary
- Add tests for new features
- Ensure CI checks pass
- Request a review from maintainers
- Address feedback and make requested changes
- Once approved, a maintainer will merge your PR
Issue Reporting
When reporting issues:- Use the provided issue template
- Include detailed steps to reproduce the issue
- Describe the expected and actual behavior
- Include relevant logs and error messages
- Specify your environment (OS, Python version, etc.)
Code of Conduct
By participating in this project, you agree to abide by our Code of Conduct. Please report unacceptable behavior to jmskanyiri@gmail.com.License
By contributing to PayLink, you agree that your contributions will be licensed under the project’s MIT License.Questions?
If you have any questions about contributing, please:- Open an issue on GitHub
- Email us at jmskanyiri@gmail.com
- Join our community discussions