Nouveaux développeurs
Cette page explique comment démarrer en tant que développeur qui souhaite contribuer aux projets techniques de Wikimedia.
Bienvenue !
La communauté technique de Wikimedia accueille toujours de nouveaux contributeurs !
Faites partie d'une communauté mondiale et contribuez à faciliter l'accès à la connaissance gratuite plus facile pour chacun !
Comment commencer à contribuer
Les étapes suivantes sont un aperçu général sur la manière de commencer à contribuer :
- Apprenez les bases du fonctionnement des projets logiciels open source Wikimedia.
- Lisez les directives de communication.
- Configurer les comptes: créer un compte développeur. Selon le type de contribution que vous souhaitez apporter, vous devrez peut-être également créer des comptes dans Phabricator, et configurer Git et Gerrit.
- Choisir un projet logiciel
- Choisir et résoudre une tâche (écrire et tester votre code)
- Soumettez vos modifications de code pour relecture. Suivez le guide pour faire relire votre code et soumettez un patch.
Le reste de ce guide fournit des détails supplémentaires à propos du processus.
Bases du fonctionnement des projets logiciels Wikimedia
Wikimedia a des projets logiciels dans de nombreux domaines différents.
Les mainteneurs de chaque projet logiciel choisissent l'infrastructure qu'ils préfèrent. En général, la plupart des projets logiciels ont :
- Un outil de suivi des tâches où les bogues logiciels et les demandes d'amélioration sont signalés, gérés et discutés. Les exemples sont Wikimedia Phabricator, GitHub, ou Wikimedia GitLab.
- un dépôt de code où le code source peut être extrait par chacun. Les exemples sont Wikimedia Gerrit, GitHub, ou Wikimedia GitLab.
- Un outil de révision de code où les changements de code proposés (les "patches") sont discutés et améliorés. Des exemples sont Wikimedia Git/Gerrit, GitHub, ou GitLab. Une fois que le patch proposé est approuvé et fusionné dans le dépôt de code, vos modifications de code deviennent disponibles pour tout le monde.
- Des lieux de discussion généraux sur le projet de logiciel, ainsi que des lieux d'aide et de soutien. Ces endroits peuvent être des listes de diffusion, des canaux de discussion IRC, des pages wiki ou d'autres endroits. Les endroits exacts dépendent de chaque projet.
À tout moment, si vous rencontrez des problèmes ou avez besoin d'aide, n'hésitez pas à demander. Pour poser les bonnes questions aux bons endroits, suivez les "conseils de communication".
Aperçu des domaines techniques
Pour un aperçu de la technologie Wikimedia et des exemples de domaines dans lesquels des développeurs peuvent contribuer, visitez l'Introduction à l'écosystème technique de Wikimedia.
Contribuer au logiciel dans MediaWiki
Êtes-vous un utilisateur de MediaWiki voulant ajouter une fonctionnalité ou corriger un bogue ? Voyez Comment devenir un hackeur de MediaWiki pour apprendre comment trouver et contribuer à la partie du projet logiciel de MediaWiki que vous cherchez.
Choisir un projet logiciel
Les projets suivants offrent des ressources, des tutorats, et cherchent de nouveaux développeurs pour contribuer. Choisissez l'un des projets suivants et suivez la documentation du projet pour configurer votre environnement de développement, choisir une tâche sur laquelle travailler, résoudre la tâche et soumettre vos modifications de code pour examen. Vous êtes libres de contribuer à ces projets ou à n'importe quel autre qui vous intéresse et qui est lié à Wikimedia. La plupart peuvent être trouvés en cherchant sur Phabricator ou en ligne.
Un lecteur hors ligne pour les personnes qui n'ont pas d'accès internet
- Compétences requises : Java/Kotlin (Android), Swift (iOS), Qt (desktop), NodeJS (mediawiki offliner), C++, Python (WP1)
- Contact : Liste de diffusion / Slack
- Obtenir le code source : GitHub
- Lire la documentation générale et le fichier README.md du projet correspondant
- Voir les tâches recommandées sur lesquelles travailler : Android,iOS, JS, mwoffliner sur GitHub
- Mentor(s) : Matthieu Gauthier, Emmanuel Engelhart, Stephane Coillet-Matillon
Applications Commons pour Android
application pour les appareils Android permettant de téléverser vos images sur Wikimedia Commons
- Compétences requises : Java
- Contact : Google Groups
- Obtenir le code source : GitHub
- Lire la documentation
- Voir les tâches recommandées sur lesquelles travailler : GitHub
- Mentor(s) : Josephine Lim
Tableau de bord Wiki enseignement
Une application web qui prend en charge la logistique Wikipedia pour l'enseignement, fournit les données et la gestion des cours pour les instructeurs et les étudiants.
- Compétences requises : Ruby, JavaScript
- Contact : #wikimedia-ed connecter sur irc.libera.chat
- Obtenir le code source : GitHub
- Lire la documentation
- Voir les tâches recommandées sur lesquelles travailler : GitHub
- Mentor(s) : Sage Ross
Pywikibot
Une bibliothèque Python et une collection de scripts qui automatisent le travail sur les sites MediaWiki.
- Compétences requises : Python
- Contact : #pywikibot connecter on irc.libera.chat / Mailing list
- Obtenir le code source : utiliser Git pour obtenir le code source
- Lire la documentation et référence API
- Voir les tâches recommandées sur lesquelles travailler : Phabricator
- Mentor(s) : xqt
Scribe
Scribe fournit des claviers basés sur wikidata pour ceux qui apprenent une seconde langue. Les fonctionnalités incluent la traduction, la conjugaison des verbes, et l'annotation nom-genre. Ce projet est très ouvert à ceux qui veulent apprendre les langues nécessaires et comment travailler avec Wikidata !
- Compétences nécessaires : Swift pour iOS; Kotlin pour Android; Python et/ou Service de Requêtes Wikidata pour requêtes et formatage Wikidata
- Garder le contact : GitHub ou courriel
- Obtenir le code source : GitHub
- Lire les directives de contribution: iOS ou Android
- Regarder les tâches recommandées : iOS ou Android
- Tuteur(s) : Andrew McAllister
VideoCutTool
Un outil pour éditer les vidéos sur Wikimedia Commons.
- Compétences requises : React JS, Node JS.
- Contact : #VideoCutTool dans Zulip
- Obtenir le code source : Voir le lien de la description dans Phabricator
- Lire la documentation
- Voir les tâches recommandées sur lesquelles travailler : Phabricator
- Tuteur(s) : Gopa Vasanth
SignIt Firefox Extension
L'extension du navigateur web Lingua Libre SignIt traduit un mot écrit sélectionné, via une pop-up élégante pour que vous appreniez le langage des signes en lisant en ligne. Vous pouvez ajouter une vidéo en langue des signes utilisant [$url Lingualibre.org] en sélectionnant une langue signée, et en enregistrant la vidéo de votre interprétation.
- Compétences requises : JavaScript, extension web, OOjs
- Contactez-nous: contactez Yug ou sur GitHub
- Obtenir le code source : GitHub
- Lire la documentation : m:Lingua Libre/SignIt
- Vérifier les tâches recommandées sur lesquelles travailler : bons premiers problèmes à résoudre sur GitHub »
- Tuteur (s) : Yug
Vous assurez la maintenance de votre projet et vous voulez qu'il soit inclus dans la liste des projets logiciels ci-dessus ? Voir ici et rejoignez-nous !
Programmes de sensibilisation et tâches uniques
A part les projets recommandés ci-dessus, il existe d'autres manières de choisir un projet ou une tâche sur laquelle travailler :
Programmes de sensibilisation
Premières tâches pour bien commencer
Cependant, il se peut qu'il n'y ait pas de tuteurs pour ces tâches, et que les correctifs que vous proposez ne soient pas examinés rapidement.
Conseils de communication
Suivez ces conseils pour communiquer efficacement et obtenir de l'aide de la part des membres de la communauté.
Utiliser efficacement les tâches Phabricator
Si vous envisagez de travailler sur une tâche de Phabricator :
- Il est inutile d'en demander la permission : Vous pouvez travailler sur les tâches non assignées sans demander que quelqu'un vous les assigne. Il n'existe aucune autorité qui assigne les tâches ou qui doit être consultée en priorité.
- Si une tâche possède déjà une correction récente dans Gerrit, choisissez-en une autre à la place, sur laquelle vous allez travailler.
- Si un patch dans Gerrit n'a pas été fusionné et n'a pas évolué depuis un long moment, vous pouvez l'améliorer en vous basant sur les commentaires qu'il aura reçus dans Gerrit et dans la tâche.
- Faites d'abord votre recherche : Quand vous aurez décidé de travailler sur une tâche, faites certaines investigations avant de commencer à coder. Analysez le code, essayez de comprendre ce qu'il est supposé faire, lisez la documentation associée et essayez d'identifier les parties de code à modifier.
- Dans une tâche Phabricator , utilisez les balises du projet dans la barre latérale pour trouver le dépôt de code correspondant à la tâche.
- Si vous n'avez aucune idée sur la manière de corriger le bogue, essayez d'en trouver un autre, plus simple.
- Il n'est pas utile de décrire vos plans avant de commencer à travailler sur une tâche, mais au moins signalez votre intention de travailler sur celle-ci.
- Lorsque vous commencez à travailler, déclarez-vous responsable de la tâche en cliquant sur Edit Task… dans Phabricator, et en entrant votre nom d'utilisateur Phabricator dans la champ Assigned To. Ceci indique aux autres que vous travaillez dessus, afin qu'il n'y ait pas de doublon.
- Si vous venez à modifier vos plans ou vos centres d'intérêt : Si vous arrêter de travailler sur une tâche, désassignez-vous de cette tâche. Ceci permet aux autres de savoir qu'il peuvent reprendre cette tâche et que vous n'allez plus travailler dessus.
- Suivez l'étiquette de Phabricator.
- Dans les tâches Phabricator, ne débatez que des questions spécifiques concernant le sujet de la tâche actuelle. N'utilisez pas Phabricator pour poser des questions d'ordre général, comme sur la façon de configurer un environnement de développement, ou comment corriger des problèmes avec Gerrit.
Rédiger des questions valides
- Ne demandez pas simplement dans le but de poser une question !.
- Soyez concis et fournissez le contexte : Au lieu de dire simplement « Pouvez vous me donner d'autres informations ? », « Aidez-moi ! » ou « Pouvez-vous me dire comment commencer ? », ajoutez l'information suivante à votre question :
- Qu'essayez-vous de faire ?
- Qu'avez-vous déjà essayé ? Copiez et collez vos commandes avec leurs résultats (si ce n'est pas trop long) au lieu de paraphraser avec vos propres mots.
- Qu'avez-vous déjà découvert durant vos investigations ? Incluez les liens vers le code, la documentation ou les autres ressources que vous avez déjà consultées.
- Utilisez les titres spécifiques et les lignes de sujet dans vos communications. Essai de proposition ou Aide demandée n'est pas spécifique.
- Garder la conversation lisible : Lorsque vous répondez dans Zulip, dans les tâches Phabricator, ou sur les listes de diffusion, ne faites référence qu'aux sections des commentaires précédents qui ont un rapport avec votre réponse. Si vous citez un commentaire antérieur complet, cela peut rendre difficile la lecture des fils de discussion.
Suivre les règles de communication et les meilleures pratiques
Avant d'envoyer ou de publier votre question :
- Lisez et suivez le code de conduite des espaces techniques Wikimedia.
- Utilisez le Langage inclusif : Au lieu d'utiliser des termes longs qui supposent une identité de genre (tels que Les gars, Madame, ou Monsieur) remplacez-les par le nom de la personne.
Demander au bon endroit
- Posez vos questions de manière publique : n'envoyez pas de messages privés si le sujet de votre conversation n'est pas personnel. Les messages privés n'aident pas les autres.
- Demandez et discutez à l'endroit qui est conçu pour cela :
- Dans les tâches Phabricator, ne discutez que des questions liées au sujet de la tâche.
- Posez vos questions générales techniques, comme sur la manière de configurer un environnement de développement ou de corriger les problèmes avec Gerrit, aux endroits indiqués sur Communication .
- Si vous participez à un programme de sensibilisation, alors Zulip est à utiliser pour discuter des questions concernant les programmes de sensibilisation eux-mêmes.
Soyez patient
Après avoir publié votre question :
- Ne demandez pas la relecture du code dans un message séparé. Les personnes qui recevront les notifications de Gerrit et de Phabricator y répondront quand elles pourront.
- Si vous cherchez des réponses ou des commentaires, particulièrement durant les week-ends ou les vacances, il est possible que vous ayez à attendre jusqu'à l'heure d'ouverture des bureaux. Sur les canaux tels que IRC: si personne ne répond, essayez à nouveau à un autre moment; n'abandonnez pas simplement!
- Si vous n'obtenez pas de réponse même après avoir attendu patiemment, voyez si d'autres canaux de communication ne seraient pas préférables pour poser votre question.
Ressources supplémentaires
- Introduction à l'écosystème technique de Wikimedia fournit un aperçu de la technologie Wikimedia, concentré sur les domaines majeurs où les développeurs peuvent contribuer.
- Comment contribuer contient une liste des nombreuses autres façons de contribuer, y compris des domaines comme la documentation, les tests, et plus encore.
- Comment devenir un hacker MediaWiki : pour les développeurs qui veulent travailler sur le noyau MediaWiki ou sur les extensions MediaWiki.
- Portail des développeurs : plus de ressources pour les développeurs établis de Wikimedia.
- Pour poser vos questions ou rejoindre des discussions générales, regarder les endroits énumérés sur Communication.
- Tutoriels Wikimedia : un index des tutoriels représentant les différents langages, APIs, et environnements de la pile des technologies de Wikimedia.
- Soutien aux nouveaux arrivants lors des hackathons
- Support aux nouveaux arrivants aux hackathons et guide des tuteurs
- Section des Nouveaux venus du Manuel des hackathons, ainsi que la page des Conseils de tutorat.
- Page how-to des nouveaux arrivants au Hackathon Wikimedia 2022