German
Sprachen
English
Bengali
French
German
Japanese
Korean
Portuguese
Spanish
Tamil

An Qiskit mitwirken

Qiskit ist ein Open-Source-Projekt mit dem Ziel Menschen aller Alters- und Berufsgruppen die Nutzung von Quanteninformationstechnologien zu ermöglichen. Diese Seite beschreibt wie man sich der Qiskit-Gemeinschaft anschließen kann.

Bevor Sie beginnen

If you are new to Qiskit contributing we recommend you do the following before diving into the code:

  1. Lesen Sie den „Code of Conduct <https://github.com/Qiskit/qiskit/blob/master/CODE_OF_CONDUCT.md>` __

  2. :ref:`Entscheiden Sie, woran Sie arbeiten wollen <decide-what-to-work-on> `

  3. Lesen Sie die repo-spezifischen Contributing Guidelines für das Repo, zu dem Sie sich entschieden haben beizutragen.

  4. Richten Sie Ihre Entwicklungsumgebung ein

  5. Mach dich mit der Qiskit Community vertraut (über ` Slack <https://ibm.co/joinqiskitslack>` __, ` Stack Exchange <https://quantumcomputing.stackexchange.com/>` __, ` GitHub <https://github.com/qiskit-community/feedback/discussions>` __ etc.)

Entscheiden Sie, woran Sie arbeiten möchten

Wenn Sie sich nicht sicher sind, welche Art von Beitrag für Sie richtig ist, hilft Ihnen das folgende Flussdiagramm weiter:

Report/fix typos, broken links etc. in the relevant package or textbook repo Documentation: Answer questions in , , or Help others in the community! Slack StackExchange Twitter other channels Check out the Translations: repo qiskit-community/qiskit-translations Looking to contribute to Qiskit? I’m not sure how yet but I want to get involved! Is there already a GitHub issue open for this bug? Would you like to code? Which programming language are you most comfortable with? Rust , Take a look at: retworkx qiskit-terra Take a look at: qiskit-aer , Take a look at: platypus qiskit.org , , , , , , , Take a look at: qiskit-terra qiskit-nature qiskit-finance qiskit-optimization qiskit-machine-learning qiskit-experiments qiskit-dynamics qiskit-metal C++ Javascript/web dev. Python Consider the following options: I’d like to report a bug I have an idea for a feature I have some code for this feature It’s just an idea Do you know which Qiskit package you would like your feature added to? Yes No Yes No work is in scope work is not in scope Discuss your idea with maintainers Work with maintainers to integrate your feature into Qiskit Consider creating a standalone module and join the Qiskit Ecosystem Open a feature request GitHub issue Open a GitHub discussion in the repo qiskit-community/feedback Yes No Open an issue with a minimum reproducible code example Leave a comment or +1 in the issue (with a code example even better!) If you would like to work on this issue, leave a comment in the issue requesting to be assigned Get coding and open a PR! Choose the repo you want to work on, look at the open issues in the issues tab, look for issues with "good first issue" or "help wanted" labels

Beitrag zu einem bestimmten Repository

Each Qiskit package has its own set of Contributing Guidelines (kept in the CONTRIBUTING.md file) which details specific information on contributing to that repository. Make sure you read through the repo-specific Contributing Guidelines prior to making your contribution to a specific repo as each project may have slightly different requirements and processes. For Qiskit Terra, the main repository, the contributing guidelines may be be found here. Other Qiskit packages that are able to receive contributions may be found as seperate repositories in the official Qiskit Github.

Einrichten Ihrer Entwicklungsumgebung

Um einen Beitrag zu den Python-basierten Qiskit-Repos leisten zu können, müssen Sie eine virtuelle Python-Entwicklungsumgebung einrichten und das entsprechende Paket von der Quelle installieren.

Eine Kurzanleitung für qiskit-terra finden Sie in dem YouTube-Video How to Install Qiskit-Contributors <https://www.youtube.com/watch?v=Pix2MFCtiOo> __ YouTube-Video.

Bei Nicht-Python-Paketen sollten Sie die Datei CONTRIBUTING.md auf bestimmte Details zum Einrichten Ihrer Entwicklungsumgebung prüfen.

Einrichten der virtuellen Python Entwicklungsumgebung

Für die Qiskit-Entwicklung werden Virtuelle Umgebungen verwendet, um die Entwicklungsumgebung von systemweiten Paketen zu isolieren. Auf diese Weise wird eine ungewollte Abhängigkeit von einer bestimmten Systemkonfiguration vermieden. Dies macht es für Entwickler auch einfach, mehrere Umgebungen zu verwalten (z. B. eine pro unterstützte Python-Version, für ältere Versionen von Qiskit, etc.).

Alle Python-Versionen, die von Qiskit unterstützt werden, enthalten das eingebaute virtuelle Umgebungsmodul venv.

Beginnen Sie, indem Sie eine neue virtuelle Umgebung mit venv erstellen. Die resultierende Umgebung verwendet dieselbe Version von Python, mit der sie erstellt wurde, und übernimmt standardmäßig keine systemweit installierten Pakete. Der angegebene Ordner wird für die Installation der Umgebung erstellt und verwendet. Er kann überall abgelegt werden. Weitere Details finden Sie in der offiziellen Python-Dokumentation, Erstellung virtueller Umgebungen.

python3 -m venv ~/.venvs/qiskit-dev

Aktivieren Sie die Umgebung, indem Sie das entsprechende Aktivierungsskript für Ihr System aufrufen, das sich im Umgebungsordner befindet. Zum Beispiel für bash/zsh:

source ~/.venvs/qiskit-dev/bin/activate

Aktualisieren Sie pip innerhalb der Umgebung, um sicherzustellen, dass die in den folgenden Abschnitten installierten Qiskit Abhängigkeiten für Ihr System gefunden werden können.

pip install -U pip

Für Conda-Benutzer kann eine neue Umgebung wie folgt erstellt werden.

conda create -y -n QiskitDevenv python=3
conda activate QiskitDevenv
pip install -e .

Pull-Requests

Wir verwenden GitHub Pull-Requests um Beiträge zu akzeptieren.

Obwohl nicht zwingend benötigt sollte ein Issue bzgl. dem Bug oder dem Feature an welchem man arbeitet vor dem Pull Request geöffnet werden. Dies ist ein wichtiger Schritt um die Diksussion mit der Community bzgl. der Änderungen zu beginnen. Mit einem Issue wird es ermöglicht die Idee zu besprechen und zu erörtern wie entsprechender Code implementiert werden muss. Des Weiteren kann so die Community erfahren an was man gerade arbeitet, ob Hilfe benötigt wird, und zusätzlich kann man auf das Issue in Diskussionen referenzieren.

Wenn Sie einen Code geschrieben haben, aber Hilfe bei der Fertigstellung benötigen bzw. ein erstes Feedback einholen wollen, bevor Sie ihn fertigstellen, oder ihn mit anderen teilen und diskutieren wollen, bevor Sie die Implementierung fertigstellen, können Sie einen Draft Pull-Request öffnen mit dem Titel [WIP] (für Work In Progress). Dies zeigt den Prüfern an, dass der Code im Pull Request nicht in seinem endgültigen Zustand ist und sich noch ändern wird. Es bedeutet auch, dass der Commit nicht zusammengeführt wird, bis er fertig ist. Sie oder ein Prüfer können den [WIP]-Titel entfernen, wenn der Code vollständig geprüft und zusammengeführt werden kann.

Bevor Sie Ihren Pull Request als „ready for review“ markieren, stellen Sie sicher, dass Sie der Pull Request Checkliste unten gefolgt sind. Pull Requests, die sich an diese Liste halten, werden eher überprüft und rechtzeitig zusammengeführt.

Checkliste für Pull-Anforderungen

  • Sie haben die Anforderungen in der Datei CONTRIBUTING.md für das spezifische Repository, zu dem Sie beitragen, befolgt.

  • Alle CI-Prüfungen sind bestanden (es wird empfohlen, vor dem Drücken lokal Tests und lint Prüfungen auszuführen).

  • New tests have been added for any new functionality that has been introduced.

  • Die Dokumentation wurde für jede neue/geänderte Funktionalität entsprechend aktualisiert.

  • Eine Freigabemitteilung wurde hinzugefügt, wenn die Änderung eine Auswirkung auf den Benutzer hat.

  • Alle überflüssigen Kommentare oder Druckanweisungen wurden entfernt.

  • Alle Mitwirkenden haben den Contributor License Agreement (Mitwirkenden-Lizenzvereinbarung) unterschrieben.

  • Der Pull Request hat einen klaren und erklärenden Titel (z.B. Fixes Issue1234 ist ein schlechter Titel!).

  • Wenn der PR ein offenes Problem behebt, enthält die PR Beschreibung die Fixes #issue-number Syntax, um den PR mit diesem Problem zu verknüpfen (du musst die exakte Formulierung verwenden, damit GitHub den Fehler automatisch beheben und den PR schließen kann, wenn der PR übereinstimmt)

Code-Review

Ein Code-Review ist öffentlich und kann von jedem ausgeführt werden. Nur „Maintainer“ haben Zugriff zu Merge-Commits, jedoch ist das Feedback der Community zu Pull-Requests sehr nützlich. Es hilft zudem, mehr über den Code zu lernen. Die Liste aller offenen Pull-Requests findet sich hier.

Antwortzeiten können für Ihren PR variieren. Es ist nicht ungewöhnlich, dass ein Betreuer ein paar Wochen benötigt, bis er aufgrund anderer interner Aufgaben Ihre Arbeit überprüfen kann. Wenn Sie über eine Woche auf eine Bewertung Ihrer PR-Arbeit gewartet haben, können Sie den zuständigen Betreuer in einem Kommentar informieren und ihn höflich daran erinnern, Ihre Arbeit zu überprüfen.

Bitte haben Sie etwas Geduld ! Betreuer haben eine Reihe von anderen Prioritäten, auf die sie sich konzentrieren müssen. Daher kann es einige Zeit dauern, bis Ihre Arbeit überprüft und zusammengeführt wird. PR’s die sich in einer guten Form befinden (z.B. wie folgende Checkliste für Pull-Anforderungen), sind für die Betreuer einfacher zu überprüfen, so dass eine zeitnahe Freigabe wahrscheinlicher ist. Bitte achten Sie auch darauf, immer freundlich und respektvoll in Ihren Interaktionen mit Betreuern und anderen Mitwirkenden zu sein. Hinweise bietet der Qiskit Code of Conduct.

Contributor License Agreement (Mitwirkenden-Lizenzvereinbarung)

Bevor neuer Code beigesteuert werden kann müssen alle Mitwirkenden die „Contributer License Agreement“ (CLA) (Mitwirkenden-Lizenvereinbarung) unterscheiben. Mit dem Unterzeichnen der CLA bestätigt man, dass man Autor des Code-Beitrags ist, und dass man diesen unentgeltlich entsprechend der Apache-2.0 Lizenz beisteuert.

Wenn man an einem Qiskit-Projekt mit einem Pull-Request mitwirkt prüft ein Bot ob die CLA unterzeichnet wurde. Falls nötig wird der Bot den Pull-Request kommentieren - inklusive eines Links zum Akzeptieren der Vereinbarung. Die CLA für natürliche Personen ist zur Überprüfung als PDF-Datei verfügbar.

Bemerkung

Falls ein Beitrag einem Beschäftigungsverhältnis entstammt oder Eigentum des Arbeitgebers ist, ist es sehr wahrscheinlich, daß eine CLA für Unternehmen unterzeichnet werden muss, und per E-Mail an <qiskit@us.ibm.com> geschickt werden muss.