Qadence-Hub is a Github monorepo that hosts multiple Python packages developed under the Qadence initiative. It is structured to support independent development, testing, and deployment of each quantum features while maintaining a unified development environment. Qadence-Hub documentations is here
Name | Description |
---|---|
qadence-commons |
Shared libraries for Qadence doc |
qadence-mitigation |
Tools for error mitigation in quantum circuit execution doc |
qadence-measurement |
Interfaces for executing and analyzing quantum measurement doc |
qadence-model |
Quantum ML models built on variational quantum circuits doc |
Before making a contribution, please review our code of conduct.
- Submitting Issues: To submit bug reports or feature requests, please use our issue tracker.
- Developing in qadence: To learn more about how to develop within
qadence-hub
, please refer to contributing guidelines.
We have structured qadence-hub
as a monorepo that includes several internal packages. The qadence-hub
repository serves as the manager that oversees the source code, documentation, and distribution of all these packages. However, the qadence-hub
itself is not packaged as a standalone module. Each package that is intended to be used alongside qadence
is located within its own project folder under the hub repository.
Therefore, to update an individual package rather than the Hub (root) level, please follow the steps below.
To work with qadence-hub, you should clone the entire GitHub repository and then access the individual projects. This approach is recommended for easier branch management, and cloning only a specific project is discouraged. After cloning the full repository, navigate to the desired project folder to run the Hatch environment or make code modifications. The example code snippet is like below:
git clone https://github.com/pasqal-io/qadence-hub.git
cd qadence-hub/qadence-model
If you’ve modified the code of a specific package, you should create a pull request targeting the sub-main branch
of that package. Our branch structure manages each package through its corresponding sub-main branch
before anything is merged into the main branch
. Therefore, after cloning the repository, you should follow your previous workflow to create a local branch and push it—but your pull request target should be your sub-main branch
, not main
. We currently have four sub-main branches; main-commons
, main-mitigation
, main-measurement
, and main-model
.
After your branch is merged to sub-main branch
, you can initiate merge request to the main branch
. Merging into main branch
should be done only when a release is being prepared. In the sub-main branches
, tests are run only for the corresponding package, but when merging into main, tests are executed for all packages within qadence-hub
. Therefore, we recommend managing your package in its sub-main branch
during regular development, and only pushing to main when necessary.
We publish each package separately. After you merge your sub-main branch
to main branch
, you can publish your documents and Python package through release. To do this, you need to update the version number in the package's pyproject.toml
. Then, you create a release with the format of package_name-v.x.y.z,
where x, y, and z are for version numbers. For example, if you want to publish qadence-model
with version 1.2.5, you must put model-v1.2.5
as your release name.
Qadence-Hub is a free and open source software package, released under the Apache License, Version 2.0.