Contributing¶
Thank you for your interest in contributing to structx
! This document provides
guidelines and instructions for contributing to the project.
Getting Started¶
-
Fork the Repository: Start by forking the structx repository.
-
Clone Your Fork:
- Set Up Development Environment:
# Create a virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install development dependencies
pip install -e ".[dev,docs]"
- Create a Branch:
Development Guidelines¶
Code Style¶
We follow the Black code style and use isort for import sorting:
Type Hints¶
We use type hints throughout the codebase. Please add appropriate type hints to your code:
def example_function(param1: str, param2: int = 0) -> bool:
"""Example function with type hints"""
return param1.startswith(str(param2))
Documentation¶
- Add docstrings to all public functions, classes, and methods
- Use Google style docstrings
- Update documentation when adding new features
Pull Request Process¶
- Update Documentation: Ensure that documentation is updated to reflect your changes.
- Add Tests: Add tests for your changes.
- Run Tests: Ensure all tests pass.
- Commit Your Changes:
- Push to Your Fork:
- Submit a Pull Request: Go to the structx repository and submit a pull request.
Feature Requests and Bug Reports¶
- Feature Requests: Open an issue with the tag
enhancement
- Bug Reports: Open an issue with the tag
bug
and include: - Description of the bug
- Steps to reproduce
- Expected behavior
- Screenshots (if applicable)
- Environment information
License¶
By contributing to structx
, you agree that your contributions will be licensed
under the project's
MIT License.