Files
turnstone/CONTRIBUTING.md
T
2026-08-15 19:01:22 -07:00

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

  1. Fork the repository
  2. Create a branch from the appropriate base branch
  3. Make your changes
  4. Run the tests: pytest
  5. 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.