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 vous plonger dans le code :

  1. Lisez le Code de conduite

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

  3. Définissez votre environnement de développement

  4. Familiarisez-vous avec la communauté Qiskit (via Slack, Stack Exchange, GitHub etc.)

Contribuer à un dépôt spécifique#

Chaque module de Qiskit a ses propres directives de contribution (conservées dans le fichier CONTRIBUTING.md) qui détaillent les instructions de contribution à ce dépôt. Assurez-vous de lire les directives de contribution spécifiques à votre dépôt avant de contribuer, car chaque projet peut avoir des exigences et des procédures légèrement différentes. Pour Qiskit Terra, le dépôt principal, les directives de contribution peuvent être trouvées ici. D’autres modules de Qiskit acceptant des contributions peuvent être trouvés comme dépôts séparés dans le Qiskit Github officiel.

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.

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 toutes les nouvelles fonctionnalités qui ont été ajoutées.

  • 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>.