French
Languages
English
Bengali
French
German
Japanese
Korean
Portuguese
Spanish
Tamil

Contribuer à Qiskit

Qiskit est un projet open-source dont l’objectif est de donner accès à l’informatique quantique à tous. Cette page décrit comment vous pouvez rejoindre la communauté Qiskit.

Avant de commencer

Si vous commencez à contribuer à Qiskit nous vous recommandons de faire ce qui suit avant de plonger dans le code :

  1. Lisez le Code de conduite

  2. :ref:` Décider sur quoi travailler <decide-what-to-work-on>`

  3. Lisez les Directives de contribution spécifiques au dépot auquel vous avez décidé de contribuer.

  4. Définissez votre environnement de développement

  5. Familiarisez-vous avec la communauté Qiskit (au travers de ` Slack <https://ibm.co/joinqiskitslack>` __, ` Stack Exchange <https://quantumcomputing.stackexchange.com/>` __, GitHub <https://github.com/qiskit-community/feedback/discussions> __ etc.)

Décidez sur quoi travailler

Si vous n’êtes pas certain du type de contribution qui vous convient, examinez le diagramme suivant pour vous aider:

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

Contribuer à un dépôt spécifique

Chaque paquet Qiskit dispose de son propre ensemble de règles de contriibutions (conservées dans le fichier CONTRIBUTING.md) qui détaille des informations spécifiques sur la contribution à ce référentiel. Assurez-vous de lire les Lignes Directrices avant de faire votre contribution à un dépot particulier, car chaque projet peut avoir des exigences et des processus légèrement différents.

Dépôt

Directives de contribution

Qiskit Terra

https://github.com/Qiskit/qiskit-terra/blob/main/CONTRIBUTING.md

Qiskit Aer

https://github.com/Qiskit/qiskit-aer/blob/main/CONTRIBUTING.md

Qiskit Nature

https://github.com/Qiskit/qiskit-nature/blob/main/CONTRIBUTING.md

Apprentissage automatique Qiskit

https://github.com/Qiskit/qiskit-machine-learning/blob/main/CONTRIBUTING.md

Qiskit Finance

https://github.com/Qiskit/qiskit-finance/blob/main/CONTRIBUTING.md

Qiskit Optimization

https://github.com/Qiskit/qiskit-optimization/blob/main/CONTRIBUTING.md

Qiskit Expériences

https://github.com/Qiskit/qiskit-experiments/blob/main/CONTRIBUTING.md

Qiskit Circuits Dynamiques

https://github.com/Qiskit/qiskit-dynamics/blob/main/CONTRIBUTING.md

Qiskit Metal

https://github.com/Qiskit/qiskit-metal/blob/main/CONTRIBUTING.md

Qiskit Textbook (héritage)

https://github.com/qiskit-community/qiskit-textbook/blob/main/CONTRIBUTING.md

Qiskit Textbook (bêta)

https://github.com/Qiskit/platypus/blob/main/CONTRIBUTING.md

Tutoriels Qiskit

https://github.com/Qiskit/qiskit-tutorials/blob/master/CONTRIBUTING.md

Retworkx

https://github.com/Qiskit/retworkx/blob/main/CONTRIBUTING.md

Qiskit (méta-package)

https://github.com/Qiskit/qiskit/blob/master/CONTRIBUTING.md

Mise en place de l’environnement de développement

Pour commencer à contribuer aux dépots de Qiskit basée sur Python, vous devez configurer un environnement de développement virtuel Python et installer le package approprié à partir de la source.

Pour un guide rapide sur la façon de le faire pour qiskit-terra, regardez la vidéo How to Install Qiskit-Contributors<https://www.youtube.com/watch?v=Pix2MFCtiOo> __ sur YouTube.

Vous pouvez apprendre à installer différents packages Qiskit à partir de la source dans le document :ref:` install-from-source`.

Pour les packages autres que python, vous devez vérifier le fichier CONTRIBUTING.md pour obtenir des détails spécifiques sur la configuration de votre environnement de développement.

Configuration de l’environnement de développement virtuel Python

Les environnements virtuels sont utilisés pour le développement de Qiskit ainf d’isoler l’environnement de développement des paquets à l’échelle du système. De cette façon, nous évitons par inadvertance de devenir dépendants d’une configuration système particulière. Pour les développeurs, cela facilite également la maintenance de plusieurs environnements (par exemple, un par version Python supportée, pour les anciennes versions de Qiskit, etc.).

Toutes les versions de Python prises en charge par Qiskit incluent le module d’environnement virtuel intégré venv.

Commencez par créer un nouvel environnement virtuel avec venv. L’environnement résultant utilisera la même version de Python qui l’a créée et n’héritera pas des paquets installés à l’échelle du système par défaut. Le dossier spécifié est créé et est utilisé pour contenir l’installation de l’environnement. Il peut être placée à n’importe quel endroit. Pour plus de détails, consultez la documentation officielle de Python, ` Creation of virtual environments <https://docs.python.org/3/library/venv.html>` __.

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

Activez l’environnement en appelant le script d’activation approprié pour votre système, qui se trouve dans le dossier de l’environnement. Par exemple, pour bash/zsh:

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

Mettez à niveau le pip dans l’environnement pour vous assurer que les dépendances Qiskit installées dans les sections suivantes peuvent être localisées pour votre système.

pip install -U pip

Pour les utilisateurs Conda, un nouvel environnement peut être créé comme suit.

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

Pull Requests

Nous utilisons la fonctionalité pull request de GitHub pour accepter de nouvelles contributions.

Même si cela n’est pas obligatoire, ouvrir un ticket (issue) est une étape importante pour initier une discussion avec la communauté sur votre travail lorsque vous corrigez une anomalie ou développez une nouvelle fonctionnalité . Le ticket est un endroit partagé pour réfléchir sur l’idée et voir comment travailler ensemble. Si vous avez besoin d’aide, que vous souhaitez discuter avec d’autres membres de l’équipe, vous pourrez aussi faire référence à ce ticket.

Si vous écrivez du code et que vous avez besoin d’aide pour le terminer ou que vous souhaitez le partager en cours de développement, vous pouvez ouvrir une requête de type Work in Progress. Lorsque vous créez une demande de fusion (ou pull request), ajoutez en tête du titre les caractères [WIP] (pour Work In Progress). Cela indiquera aux re-lecteurs que le code n’est pas terminé et qu’il est sujet à changements. Cela signifie aussi que vous n’intègrerez pas ce nouveau code tant qu’il n’est pas terminé. Vous, ou un re-lecteur, pouvez supprimer le tag [WIP] lorsque le code est prêt à être revu et intégré.

Avant de marquer votre Pull Request comme « prêt à être revu », assurez-vous d’avoir suivi la liste de contrôle PR ci-dessous. Les PR qui sont conformes aux recommandations de cette liste sont plus susceptibles d’être examinées et fusionnées rapidement.

Liste de contrôle des Pull Requests :

  • Vous avez suivi les exigences du fichier CONTRIBUTING.md pour le repo spécifique auquel vous contribuez.

  • Tous les contrôles de CI passent (il est recommandé d’exécuter des tests et des vérifications lint localement avant de pousser).

  • De nouveaux tests ont été mis en place pour toute nouvelle fonctionnalité.

  • La documentation a été mise à jour en conséquence pour toute fonctionnalité nouvelle / modifiée.

  • Une note de publication a été ajoutée si la modification a un impact sur l’utilisateur.

  • Tout commentaire ou toute commande d’impression superflus ont été supprimés.

  • Tous les contributeurs ont signé le Accord de licence Contributeur.

  • Le PR a un titre concis et explicatif (par exemple, Fixes Issue1234 est un mauvais titre !).

  • Si la PR traite un problème ouvert, la description PR doit inclure la syntaxe fixes #issue-number pour lier la PR à ce problème (vous devez utiliser la formulation exacte afin que GitHub ferme automatiquement le problème lorsque la PR fusionne)

Revue de code

La revue de code est faite librement et est accessible à tous. Même si l’intégration d’un code final est réservée à un sous ensemble d’utilisateurs (maintainers), les commentaires de toute la communauté sont extrêmement profitables au projet. C’est aussi un excellent moyen d’apprendre.

Les temps de réponse peuvent varier pour votre PR, il n’est pas inhabituel d’attendre quelques semaines pour qu’un responsable examine votre travail, en raison d’autres engagements internes. Si vous avez attendu plus d’une semaine pour une révision de votre PR, n’hésitez pas à marquer le responsable pertinent dans un commentaire pour leur rappeler poliment de revoir votre travail.

Soyez patient, s’il vous plaît ! Les responsables de la maintenance ont un certain nombre d’autres priorités à traiter, de sorte qu’il faudra peut-être un certain temps pour que votre travail soit revu et fusionné. Les PRs qui sont en bon état (c.-à-d. après la « liste de contrôle » :ref:) sont plus faciles à examiner et plus susceptibles d’être fusionnés rapidement. S’il vous plaît assurez-vous aussi de toujours être aimable et respectueux dans vos interactions avec les responsables et les autres contributeurs, vous pouvez lire ` e code de conduite Qiskit <https://github.com/Qiskit/qiskit/blob/master/CODE_OF_CONDUCT.md>` __.

Accord de licence Contributeur

Avant de soumettre un nouveau code, tous les contributeurs doivent signer un Accord de Licence (contributor license agreement -CLA-). En signant ce CLA, vous attestez que vous êtes l’auteur de la contribution et que vous contribuez de manière gratuite, en suivant les termes de la licence Apache-2.0.

Lorsque vous contribuez au projet Qiskit via une nouvelle demande d’ajout, un robot vérifie si vous avez signé le CLA. Si ce n’est pas le cas, vous serez invité à signer cet accord, via un lien généré automatiquement. Le document individual CLA est disponible au format PDF.

Note

Si votre contribution est liée à votre emploi ou qu’elle est la propriété de votre employeur, vous devrez très probablement signer en plus l’accord suivant: corporate CLA et envoyer cet accord par eMail à: <qiskit@us.ibm.com>.