Thank you for your interest in contributing to pySQLY! This document provides guidelines and instructions for contributing to this project.
- Code of Conduct
- Getting Started
- Development Workflow
- Coding Standards
- Documentation
- Testing
- Submitting Changes
- Issue Reporting
- Versioning
This project adheres to a Code of Conduct that all contributors are expected to follow. Please read it before participating.
- Python 3.9 or newer
- Git
-
Fork the repository on GitHub
-
Clone your fork locally:
git clone https://github.com/yourusername/pySQLY.git cd pySQLY -
Create a virtual environment and install dependencies:
python -m venv venv source venv/bin/activate # On Windows, use: venv\Scripts\activate pip install -e ".[dev]" # Install in development mode with development dependencies
-
Set up pre-commit hooks:
pre-commit install
-
Create a new branch for your feature or bugfix:
git checkout -b feature/your-feature-name
-
Make your changes and ensure they follow the project's coding standards.
-
Write tests for your changes.
-
Run the test suite:
pytest
-
Commit your changes with a descriptive message:
git commit -m "Add feature: your feature description"
pySQLY follows these coding standards:
- We use Black for code formatting
- We follow PEP 8 for style guidelines
- We use isort for import sorting
- We use Ruff for linting
These tools are configured in the project and run automatically with pre-commit hooks.
# Format code with Black
black src/ tests/
# Sort imports with isort
isort src/ tests/
# Lint with Ruff
ruff check src/ tests/- Use docstrings for all public modules, functions, classes, and methods
- Follow Google Style Python Docstrings
- Update documentation when changing functionality
- Add examples for new features
- Keep the API Documentation up to date with any changes
- Write tests for all new features and bug fixes
- Maintain or improve test coverage with each contribution
- Tests are written using pytest
To run tests:
pytestFor test coverage:
pytest --cov=pysqly-
Push your changes to your fork:
git push origin feature/your-feature-name
-
Create a Pull Request (PR) from your fork to the main repository.
-
In your PR description:
- Clearly describe the problem and solution
- Include the relevant issue number if applicable (e.g., "Fixes #123")
- Mention if it changes external behavior
- Reference any related PRs or issues
-
Wait for the maintainers to review your PR. They may ask for changes before merging.
- Use the GitHub issue tracker to report bugs or request features
- Before submitting a new issue, check if it already exists
- For bugs, include:
- Steps to reproduce
- Expected behavior
- Actual behavior
- Python and pySQLY versions
- Operating system
- Any relevant error messages or logs
- Minimal code example that reproduces the issue
When creating a new issue, choose the appropriate template:
- Bug report: For reporting bugs or unexpected behavior
- Feature request: For suggesting new features or improvements
- Documentation issue: For reporting issues with documentation
We use Semantic Versioning for version numbers:
- MAJOR version for incompatible API changes (X.0.0)
- MINOR version for backward-compatible new features (0.X.0)
- PATCH version for backward-compatible bug fixes (0.0.X)
- README - Project overview
- Design Document - Architecture and design decisions
- Security Policy - Security guidelines
- Code of Conduct - Community standards
- Changelog - Version history
Thank you for contributing to pySQLY!