Contributing¶
We welcome contributions to SheetWise! This document provides guidelines for contributing.
Getting Started¶
Fork the repository on GitHub
Clone your fork locally
Create a new branch for your feature or bugfix
Make your changes
Run tests and ensure they pass
Submit a pull request
Development Setup¶
# Clone the repository
git clone https://github.com/Khushiyant/sheetwise.git
cd sheetwise
# Install dependencies
pip install -e ".[dev]"
# Or with uv
uv pip install -e ".[dev]"
Running Tests¶
# Run all tests
pytest
# Run with coverage
pytest --cov=sheetwise --cov-report=html
# Run specific test file
pytest tests/test_core.py
Code Style¶
We use:
Black for code formatting
isort for import sorting
flake8 for linting
mypy for type checking
# Format code
black src/ tests/
# Sort imports
isort src/ tests/
# Check linting
flake8 src/ tests/
# Type check
mypy src/
Documentation¶
When adding new features, please:
Add docstrings to all public functions and classes
Update the relevant user guide documentation
Add examples if appropriate
Regenerate API docs:
python scripts/generate_docs.py
cd docs && make html
Submitting Changes¶
Ensure all tests pass
Update CHANGELOG.md
Write a clear commit message
Push to your fork
Submit a pull request with a clear description
Pull Request Guidelines¶
Keep changes focused and atomic
Include tests for new features
Update documentation
Follow existing code style
Reference any related issues
Questions?¶
Feel free to open an issue on GitHub if you have questions!