This document contains guidelines for contributing to the code in this
repository. This document is relevant primarily for contributions to the quick
package, such as adding support for gate-based circuit frameworks, simulator backends,
and efficient state and unitary preparation schema. If you would like to contribute
applications and examples that use the quick platform, please follow the instructions
for installing quick instead.
Before getting started with development, please create a fork of this repository
if you haven't done so already and make sure to check out the latest version on
the main branch. After following the instruction for setting up your
development environment, you should be able to confirm that
you can run the tests and examples using your local clone. Upon making a change,
you should make a pull request with a detailed summary of what the PR proposes.
The PR will be reviewed ASAP by the team, and if accepted it will be merged
with the main branch.
With regards to code format and style, the python code should follow this guide
and the docstring style should follow the numpy documentation style. quick may
use an internal style in certain situations, and you should use them to maintain consistensy. For
example, for citation of papers you must follow the following style:
[index] author 1's last name, author 2's last name.
paper title (year).
link
quick tests are categorized as unit tests and integration tests on the library code.
All code added should have an accompanying test added to the appropriate spot in the
tests folder.
quick uses mypy and ruff for linting purposes. All code added must pass mypy and ruff checks,
and have accompanying stubs with them.