Contributing
Thank you for your interest in contributing to Spryx Core! This document provides guidelines and instructions for contributing to the project.
Development Setup
Prerequisites
- Python 3.8+
- Poetry (recommended for dependency management)
- Git
Installation
-
Clone the repository:
-
Install dependencies with Poetry:
Or with pip:
- Install pre-commit hooks:
Development Workflow
Running Tests
# Run all tests
pytest
# Run tests with coverage
pytest --cov=spryx_core
# Run a specific test file
pytest tests/test_id.py
Code Style
We use Black, isort, flake8, and mypy for code formatting and linting:
# Run Black formatter
black spryx_core tests
# Run isort
isort spryx_core tests
# Run flake8
flake8 spryx_core tests
# Run mypy
mypy spryx_core
Pre-commit hooks will automatically check these when you commit changes.
Pull Request Process
-
Create a new branch for your feature or bugfix:
-
Make your changes and write tests for your code.
-
Run the test suite to make sure everything passes:
-
Commit your changes using semantic commit messages:
-
Push your branch to GitHub:
-
Create a pull request against the
main
branch.
Documentation
When contributing, please update the documentation accordingly:
- Update docstrings in the code using Google style docstrings
- Update or add Markdown files in the
docs/
directory for any new features - Build and preview documentation locally:
Release Process
Spryx Core follows semantic versioning (SemVer):
- MAJOR version for incompatible API changes
- MINOR version for new functionality in a backward compatible manner
- PATCH version for backward compatible bug fixes
Code of Conduct
Please be respectful and inclusive in your interactions with the project and its community. We strive to make this a welcoming environment for everyone.