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:
Lesen Sie den „Code of Conduct <https://github.com/Qiskit/qiskit/blob/master/CODE_OF_CONDUCT.md>` __
Lesen Sie die repo-spezifischen Contributing Guidelines für das Repo, zu dem Sie sich entschieden haben beizutragen.
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.)
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.