How to contribute
We're grateful for your interest in contributing to Qubo Solver! Please follow our guidelines to ensure a smooth contribution process.
Reporting an Issue or Proposing a Feature
Your course of action will depend on your objective, but generally, you should start by creating an issue. If you've discovered a bug or have a feature you'd like to see added, feel free to create an issue on the issue tracker. Here are some steps to take:
- Quickly search the existing issues using relevant keywords to ensure your issue hasn't been addressed already.
-
If your issue is not listed, create a new one. Try to be as detailed and clear as possible in your description.
-
If you're merely suggesting an improvement or reporting a bug, that's already excellent! We thank you for it. Your issue will be listed and, hopefully, addressed at some point.
- However, if you're willing to be the one solving the issue, that would be even better! In such instances, you would proceed by preparing a Pull Request.
Submitting a Pull Request
We're excited that you're eager to contribute to Qubo Solver! We use the standard GitHub fork workflow: fork the repository, make your changes on a branch in your fork, and once you are satisfied with your feature and all the tests pass, open a Pull Request from your fork's branch to main.
Here's the process for making a contribution:
-
Fork the repository to your own GitHub account.
-
Clone your fork locally:
git clone https://github.com/<your username>/qubo-solver.git
cd qubo-solver
git remote add upstream https://github.com/pasqal-io/qubo-solver.git
- Create a new branch for your change, using a
topic/<short-description>naming convention, where<short-description>is a few hyphenated words describing the change (e.g.topic/solver-timeout):
- Push your branch to your fork:
- Once your feature is ready and all the tests pass, open a Pull Request from your fork's branch against the
mainbranch ofpasqal-io/qubo-solver.
If your fork falls behind, sync it by fetching and merging (or rebasing on) upstream/main:
Setting up your development environment
1) Clone your fork of the Qubo Solver GitHub repository
2) Setup an environment for developing. From your qubo-solver folder run:
Useful things for your workflow: Linting and Testing
Use prek (a drop-in, faster replacement for pre-commit) to make sure that the code is properly linted before pushing a new commit. Make sure that the unit tests and type checks are passing since the merge request will not be accepted if the automatic CI/CD pipeline do not pass.
A Word on Patents
Quantum computing is a heavily patented field. If your contribution introduces a new quantum algorithm, rather than an improvement to the existing library, please check beforehand that it is not covered by an existing patent.
Contributing Terms
Finally, before contributing, please take a moment to review the following:
By contributing, you agree to follow and accept these documents.