We welcome contributions to QONTOS. This guide applies to all repositories under the qontos organization.
- Fork the repository
- Create a feature branch from
main - Make your changes
- Run the test suite
- Submit a pull request
# Clone your fork
git clone https://github.com/YOUR_USERNAME/REPO_NAME.git
cd REPO_NAME
# Create virtual environment
python -m venv .venv
source .venv/bin/activate
# Install in development mode
pip install -e ".[dev]"
# Run tests
pytest
# Run linter
ruff check src/
# Run type checker
mypy src/- Style: We use Ruff for linting and formatting. Run
ruff checkandruff formatbefore committing. - Types: All public APIs must have type annotations. We use mypy for type checking.
- Tests: All new features and bug fixes must include tests. We use pytest.
- Docstrings: Public functions and classes must have docstrings (Google style).
- Ensure CI passes (lint, typecheck, test, build).
- Update documentation if you changed public APIs.
- Add a CHANGELOG entry for user-facing changes.
- Request review from a maintainer.
- Squash commits before merge (or we will squash on merge).
Use conventional commit format:
feat: add spectral partitioning for large circuits
fix: correct qubit mapping in tensor product aggregation
docs: update scheduling API reference
test: add coverage for noisy simulation edge cases
- Bugs: Use the Bug Report template.
- Features: Use the Feature Request template.
- Security: See SECURITY.md.
QONTOS uses pinned Git tags for pre-release distribution until packages are published to PyPI.
| Rule | Value |
|---|---|
| Install method | git+https://github.com/qontos/<repo>.git@<tag> |
| SDK current tag | v0.2.0 |
| Simulator current tag | v0.1.0 |
| Security contact | [email protected] |
| Enterprise support | [email protected] |
- Tag the SDK repo (
qontos) with the new version - Update
qontos-sim/pyproject.tomldependency to the new SDK tag - Tag the sim repo (
qontos-sim) - Update
qontos-examples/requirements.txtto both new tags - Update all README install snippets across repos
- Run
bash .github/scripts/check-doc-consistency.shto verify
- Never write
pip install qontosorpip install qontos-simas current-state guidance until packages are on PyPI - Never use
@mainin install instructions — always pin to a release tag - Use
[email protected]for all vulnerability reporting references - Mark future-state instructions clearly with "> Note: Once published to PyPI..."
This project follows the Contributor Covenant Code of Conduct. By participating, you agree to abide by its terms.
By contributing, you agree that your contributions will be licensed under the Apache License 2.0.