1.9 KiB
Contributing to Turnstone
Thanks for your interest in contributing! Here's what you need to know.
Contributor License Agreement
All contributors must agree to the Contributor License Agreement before their pull request can be merged. When you open your first PR, the CLA Assistant bot will ask you to sign by commenting on the PR. This is a one-time process.
The CLA allows us to distribute Turnstone under both open-source and commercial licenses. Your contributions remain your own — you are granting a license, not transferring ownership.
Getting Started
- Fork the repository
- Create a branch from the appropriate base branch
- Make your changes
- Run the tests:
pytest - Open a pull request back to that base branch
Choosing a Base Branch
Most contributions should target dev, which integrates the next release.
Target main only for a focused fix that should ship on the current stable
line. If an issue explicitly affects a supported prior minor, target its
stable/X.Y branch; maintainers will merge the fix forward through newer lines.
See the release process for the complete branch and synchronization policy.
Development Setup
python -m venv .venv
source .venv/bin/activate
pip install -e ".[test,dev]"
The dev extra installs ruff and mypy. Before pushing, run:
ruff check turnstone tests
mypy turnstone
pytest
Guidelines
- Keep pull requests focused — one change per PR
- Add tests for new functionality
- Follow existing code style and patterns
- Update documentation if your change affects user-facing behavior
Reporting Issues
Open an issue at https://github.com/turnstonelabs/turnstone/issues with:
- What you expected to happen
- What actually happened
- Steps to reproduce
- Python version and OS
License
By contributing, you agree that your contributions will be licensed under the project's Apache License 2.0.