Qudi
How to participate

Qudi is a great tool with many already available functionalities and hardware. But at some point in your projects, you will want to add new features or new hardware.

This page's goal is to help you to that the correct way

Understanding Python

Qudi is made in Python 3. A approachable and powerful programming language that is or soon will be the main languages of the physicists. If you are not familiar with it, you really should invest some time in it

There are a lot of books, courses and tutorial online to learn it. Whatever you need you should be able to find it here.

Understanding Qudi

Qudi is a complex program with a modular approach that helps it respond to your setup's needs. A good place to start to understand the project mindset is the original paper : Qudi: A modular python suite for experiment control and data processing

The second step is probably to read the whole documentation to have a better understanding of how things are organized.

Then you will need to dive in the code. There is no universal way of starting this, you're on your own for this.

Git and GitHub

Collaborative projects like Qudi need version control system to keep things clean and working. The Qudi project is built with Git and GitHub. If you're not familiar with theses tools, you will need to learn how they work. This might seem like a lot but theses tools are everywhere nowadays so you will need to master them one day.

One place to start is here

Qudi's way

There are multiple way collaborative code can be modified with GitHub. As people contributing do not necessarily know or trust each other, every participant (or at least institution) have to fork the original repository to its GitHub account. From this fork you can create a new branch and develop on it. Then when the branch is working well, you can create a pull request on the original repository to merge master with your branch. If the pull request is approved, you can pull from it to you master.