Contributing#
Thank you for your interest in contributing to Surfaces!
Getting Started#
Fork the repository on GitHub
Clone your fork locally
Set up a development environment
Create a feature branch
Make your changes
Submit a pull request
Development Setup#
# Clone your fork
git clone https://github.com/YOUR_USERNAME/Surfaces.git
cd Surfaces
# Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install in editable mode with dev dependencies
pip install -e ".[dev,test]"
Running Tests#
# Run all tests
make test
# Run pytest only
make py-test
# Run linting
flake8
Code Style#
Follow PEP 8 guidelines
Use meaningful variable and function names
Add docstrings to all public functions and classes
Include type hints where appropriate
Adding Test Functions#
To add a new test function:
Create a new file in the appropriate directory
Inherit from the correct base class
Implement required methods
Add to
__init__.pyexportsWrite tests
Update documentation
Submitting Changes#
Ensure all tests pass
Update documentation if needed
Write a clear commit message
Push to your fork
Open a pull request
Pull Request Guidelines#
Keep changes focused and atomic
Include tests for new functionality
Update documentation as needed
Reference any related issues
Questions?#
Open an issue on GitHub if you have questions about contributing.