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 de comment les projets de logiciel open source Wikimedia fonctionnent.
- Lisez les directives de communication.
- Configurer des comptes : Créez un compte développeur. Selon le type de contributions que vous voulez apporter, vous devriez peut-être aussi créer un compte 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 révision. Suivez le guide pour obtenir des revues pour 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 "emprunté" par tout le monde. Les exemples sont Wikimedia Git/Gerrit, GitHub, ou Wikimedia GitLab.
- Un outil de révision de code où les changements de code proposés ("patches") sont discutés et améliorés. Des exemples sont Wikimedia Git/Gerrit, GitHub, ou GitLab. Une fois que votre 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 ou réparer une fonctionnalité ? 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 quels autres. La plupart peuvent être trouvés en les cherchant sur Phabricator ou en ligne.

Un lecteur hors ligne pour le personnes sans accès internet
- Compétences requises : Java/Kotlin (Android), Swift (iOS), Qt (desktop), NodeJS (mediawiki offliner), C++
- Contact : Liste de diffusion / Slack ici
- 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 la référence API
- Voir les tâches recommandées sur lesquelles travailler : Phabricator
- Mentor(s) : xqt

Scribe fournit des claviers basés sur wikidata pour ceux apprenant un second language. Les fonctionnalités incluent la traduction, la conjugaison de verbes, et l'annotation nom-genre. Ce projet est très ouvert à ceux qui veulent apprendre les languages 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 in Zulip
- Obtenir le code source : See link in description in Phabricator
- Lire la documentation
- Voir les tâches recommandées sur lesquelles travailler : Phabricator
- Tuteur(s) : Gopa Vasanth
SignIt Firefox Extension

Lingua Libre SignIt web-browser extension translates selected written word via an elegant pop up so you learn sign language while reading online. You can add a signed video using Lingualibre.org by selecting a signed language, then video recording yourself while signing.
- Skills required : JS, web extension, OOjs
- Get in touch: contact Yug or on GitHub
- Get the source code: GitHub
- Read the documentation: m:Lingua Libre/SignIt
- Check the recommended tasks to work on: Good first issues on GitHub »
- Mentor(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 que des mentors ne soient pas disponibles 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 de MediaWiki ou sur les extensions de MediaWiki.
- Newbie guide for the Web team
- 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.
- Supporting newcomers at hackathons
- Newcomer support at hackathons and the associated mentor guide
- Newcomers section of the Hackathons Handbook, as well as the Mentoring Tips page
- How-to page for newcomers at the Wikimedia Hackathon 2022