Contributing
We welcome contributions to Asymmetry!
Development setup
Fork the repository on GitHub
Clone your fork:
git clone https://github.com/your-username/asymmetry.git cd asymmetry
Install in development mode:
pip install -e ".[dev]"
Create a branch for your changes:
git checkout -b feature-name
Code style
We use:
ruff for linting and formatting
Type hints for function signatures
Docstrings in NumPy or Google style
Run checks:
ruff check src/
ruff format src/
Testing
Write tests for new features using pytest:
pytest tests/
Ensure all tests pass before submitting.
Documentation
Update documentation for any new features:
Add docstrings to new functions/classes
Update user guide if needed
Build docs locally to check:
cd docs make html open _build/html/index.html
Pull request process
Ensure tests pass and code is formatted
Update CHANGELOG.md
Push to your fork
Open a pull request with a clear description
Reporting issues
Report bugs and feature requests on the GitHub issue tracker.
Please include:
Description of the issue
Steps to reproduce
Expected vs actual behaviour
System information (OS, Python version)
Code of Conduct
Be respectful and inclusive. We follow the Python Community Code of Conduct.