Thanks for your interest in contributing to |toqito⟩! Contributions of every
size are welcome — fixing a typo, sharpening an error message, adding a missing
docstring example, writing a test, or implementing a new quantum-information
routine.
This file is a quick entry point. The full, authoritative guide lives in the documentation:
- 📖 Contributing Guide — dev setup, testing, code style, docstring/reference conventions, and how to add a new feature.
If you are looking for a small, self-contained place to start, browse the
good first issue queue.
These are scoped so you can finish them without deep knowledge of the codebase —
adding an example, improving a docstring, tightening an error message, covering
an edge case with a test, or benchmarking a function.
Issues are labelled by type (bug, documentation, enhancement,
refactor, …) and by area (examples, gallery, benchmarking, …), so you
can filter to what interests you. If something is unclear, comment on the issue —
we are happy to help you get started.
# Fork and clone your fork, then from the repository root:
uv sync # create the environment and install toqito (editable)
uv run pytest # run the test suite
uv run ruff check # lint
uv run ruff format # auto-formattoqito targets Python >= 3.12 and uses uv
for environment management.
- Create a branch off
master. - Make your change with a matching test. Code lives in
toqito/<module>/and its tests intoqito/<module>/tests/. See the repository layout. - New public functions need a docstring with a theoretical description, an
Examplessection using amarkdown-execfenced block, and aReferencessection, and must be exported from the module's__init__.py. See Adding a new feature. - Before opening the PR, confirm locally:
-
uv run ruff checkanduv run ruff format --checkpass. -
uv run pytestpasses, and new lines are covered. - The docs build cleanly (
uv sync --group docs && uv run mkdocs build -f docs/mkdocs.yml).
-
- Open the pull request and fill in the template. Reference any issue it closes
with
Closes #<number>.
Use the issue templates: bug report, new function request, documentation improvement, mathematical / reference correction, or performance improvement.
By contributing you agree that your contributions are licensed under the project's MIT License. Please keep interactions respectful and constructive.