Ready to contribute?#

Development workflow#

Follow Aaron Meurer’s description of the git workflow.

Briefly:

  1. Create a personal fork of this repository.

  2. Clone this repo from your fork.

  3. Create a branch for your contribution.

  4. Make your changes and commit them (testing locally).

  5. Push changes to the branch on your remote.

  6. Open a pull request via the GitHub website of your fork.

If you are a member of the qucontrol organization, you can omit the first step and work in the parent GitHub repository directly.

Commit messages should be clear and concise. Use the following template:

Short (72 chars or less) summary

More detailed explanatory text. Wrap it to 72 characters. The blank
line separating the summary from the body is critical (unless you omit
the body entirely).

Write your commit message in the imperative: "Fix bug" and not "Fixed
bug" or "Fixes bug." The git commit subject line should always be able
to complete the sentence
"If applied, this commit will <your subject line here>".

Reference any issue that is being addressed in the commit, as e.g. "#1"
for issue #1. If the commit closes an issue, state this on the last line
of the message (see below). This will automatically close the issue on
Github as soon as the commit is pushed there.

Closes #1

See Linking a pull request to an issue for details on how to reference issues in commits.

Relases follow semantic versioning and need to be compatible with PyPA version specifiers (former PEP440).

Styles and conventions#

Code needs to be compatible with PEP 8. Furthermore, this projects adopts the Black code style with a line length limit of 79 characters.

Docstrings are written according to the NumPy Style Guide, e.g. see this comprehensive example.

Development installation#

We recommend to use a virtual environment for developing your contribution. See for example this guide for details on how to create one.

To install the latest commit of the package along with additional development dependencies, clone the package and run the following command in the package root directory:

python -m pip install -e .[dev,extras]

If you don’t have pip installed, the Python installation guide, respectively the Python Packaging User Guide can guide you through the process.