Jump to content

Nouveaux développeurs/Introduction à l'écosystème technique Wikimédia

From mediawiki.org
This page is a translated version of the page New Developers/Introduction to the Wikimedia Technical Ecosystem and the translation is 100% complete.

Cette page fournit un aperçu des logiciels et de l'infrastructure de Wikimedia pour les nouveaux contributeurs techniques. Son but est d'aider les développeurs à comprendre les zones principales où appliquer vos compétences techniques pour aider à soutenir et faire croître le Mouvement.

Principes fondamentaux et technologie

Open source

L'écosystème technique Wikimédia est guidé par les principes des logiciels libres et open source (FLOSS). Les contributeurs du monde entier donnent volontairement de leur temps pour maintenir et étendre la technologie derrière les projets Wikimedia. Cela signifie que l'écosystème technique de Wikimédia se compose de nombreux projets différents avec pour chacun leurs propres lignes directrices de contribution, modèles de conception, emplacements d'hébergement et processus de révision du code.

Les valeurs open source telles que la propriété partagée et les engagements forts en matière de confidentialité sont au cœur de l'infrastructure technique, du logiciel et des services de Wikimedia. Par exemple :

  • Pour le contrôle de version et la revue de code, la Fondation Wikimédia (WMF) utilise Git et Gerrit. Git est un système de contrôle de version distribué, libre et open source, et Gerrit est un outil gratuit de revue de code collaboratif en ligne qui s'intègre à Git.
  • Les services cloud de Wikimedia (WMCS) offrent une infrastructure de cloud, un hébergement partagé (PaaS) et des services de données aux contributeurs aux projets logiciels de Wikimedia. Vous pouvez utiliser ces services gratuitement pour héberger vos outils logiciels destinés au mouvement Wikimedia, au lieu de recourir à des services propriétaires, payants ou non libres.

Outre la mise à disposition d'outils et de services pour les contributeurs techniques, la WMF maintient l'infrastructure centrale, notamment les centres de données, la recherche, le réseau et le routage du trafic mondial. Il n'est pas nécessaire de connaître ces éléments pour contribuer aux projets wiki, mais il est important de se familiariser avec le logiciel principal qui alimente Wikipédia et les autres wikis : MediaWiki.

MediaWiki

Les projets Wikimédia, dont Wikipédia, fonctionnent grâce au moteur de wiki MediaWiki. MediaWiki est un logiciel libre et open source, conçu spécifiquement pour collecter et organiser les connaissances libres et ouvertes. Multilingue, extensible, personnalisable et fiable, MediaWiki permet aux utilisateurs du monde entier de modifier, d'organiser, de maintenir et de collaborer sur des wikis. Il gère l'affichage du contenu, comme les textes, les photos, la mise en forme et les révisions. MediaWiki est bien plus qu'un simple système de gestion de contenu : il offre également des outils pour lutter contre le spam et le vandalisme, ainsi que d'autres fonctionnalités favorisant la curation communautaire de connaissances librement réutilisables sur une plateforme ouverte.

Zones clef dans lequelles les dévelopeurs peuvent contribuer

Développer MediaWiki, les applications mobiles, et des extensions

Noyau et extensions de MediaWiki

Le logiciel MediaWiki est développé en collaboration par des personnes du monde entier. La communauté technique Wikimédia a ajouté de nombreuses fonctionnalités clés à MediaWiki et a construit un grand écosystème d'extensions au logiciel principal. En raison de sa complexité, contribuer à MediaWiki peut être plus difficile que d'autres types de contributions techniques. En tant que nouveau contributeur, concentrez-vous sur les fonctionnalités et les bugs qui ne touchent qu'une petite région de code. Vous pouvez trouver ici de bonnes premières tâches pour le noyau de MediaWiki. Évitez de créer de nouveaux thèmes et extensions pour MediaWiki : chaque nouvelle extension alourdit la charge de maintenance globale du logiciel et peut bloquer le lancement de nouvelles fonctionnalités essentielles. Envisagez plutôt de travailler sur l'une des nombreuses extensions existantes.

Exemple d'extension : traduire du texte et gérer des wikis multilingues

L'extension Translate permet la localisation de MediaWiki et la traduction de tout type de texte.

Elle prend en charge la traduction, la relecture et la collaboration en ligne entre traducteurs du monde entier, tout en simplifiant au maximum l'intégration du code source.

Capture d'écran d'une page de traduction générée par l'extension Translate.

Pour en savoir plus, visitez Comment devenir un hackeur de MediaWiki .

Applications mobiles Wikimedia

Les applications mobiles étendent la portée du contenu de Wikimedia en permettant aux utilisateurs d'interagir avec Wikimedia sans passer par un navigateur. Il existe des applications pour les plateformes Android, iOS et KaiOS, des applications pour différents projets Wikimedia comme Commons, Wikipédia et Wiktionnaire, ainsi que des applications pour des activités telles que la lecture, la contribution, etc. De nombreuses applications bénéficient de communautés de développeurs dynamiques et accueillent volontiers de nouveaux contributeurs.

Exemple d'application mobile : lire Wikipédia sans accès internet

Kiwix est un lecteur hors-ligne – il rend Wikipédia accessible aux personnes sans accès internet.

Il fournit du contenu dans plus de 100 langues, depuis Wikipédia, Wikiquote, le Wiktionnaire et d’autres ressources en ligne.

Le développement de Kiwix utilis Java/Kotlin (Android), Swift (iOS), Qt (ordinateur de bureau), NodeJS (MediaWiki hors ligne) et C++.

Pour en savoir plus, visitez Applications Wikimedia .

Personnaliser MediaWiki via des développements sur le wiki

Modèles et modules

Les modèles permettent à un même contenu d'apparaître sur plusieurs pages wiki (transclusion). De nombreux wikis s'appuient fortement sur les modèles : il en existe des milliers, ils sont utilisés sur presque chaque page et ils sont essentiels au fonctionnement du wiki. Vous pouvez transmettre des paramètres aux modèles pour personnaliser la façon dont le contenu est géré dans différents contextes.

Exemple de modèle : formatage des blocs de citation

Le modèle Citation bloc fournit une mise en forme pour les citations en bloc et inclut des paramètres d'attribution préformatés pour l'auteur et la source d'une citation.

Cela permet aux éditeurs d'utiliser le balisage du texte wiki pour modéliser facilement et de manière cohérente la façon dont les blocs de citation sont affichées sur les pages wiki.

Capture d'écran de la documentation de Template:Blockquote montrant son fonctionnement.

Vous n'avez pas besoin de compte développeur pour modifier ou créer un modèle, et ceux-ci sont rédigés en wikitexte. Les modèles constituent donc un moyen simple de commencer à personnaliser le comportement d'un wiki.

Les modules sont similaires aux modèles, mais au lieu d'être écrits en wikitexte, ils utilisent le langage de programmation Lua. Alors que les modèles font partie de l'application MediaWiki de base, le support pour les modules est mis en œuvre par une extension appelée Scribunto .

Exemple de module: formatage de cartes ferroviaires complexes

Le module Routemap utilise un langage personnalisé complexe pour l'affichage des cartes ferroviaires. Il est utilisé dans des milliers d'articles sur les chemins de fer, en plusieurs langues. L'utilisation de Lua permet à ce module de remplacer les anciens modèles de diagrammes ferroviaires par une implémentation plus rapide et plus adaptée aux mobiles.

Capture d'écran d'un article utilisant le module Routemap sur la Wikipédia en coréen.
Exemple de code et rendu depuis la documentation de Routemap.

Pour en savoir plus sur les modèles, visitez Modèles . Pour en savoir plus sur les modules et sur la façon dont Lua est utilisé sur MediaWiki, consultez le manuel Scribunto Lua.

Scripts utilisateurs et gadgets

MediaWiki prend en charge la personnalisation de l'interface utilisateur, ou le développement « sur wiki », afin d'améliorer les fonctionnalités de base du logiciel. Les « scripts utilisateur » sont des morceaux de JavaScript et/ou du CSS qui fournissent des fonctionnalités supplémentaires à MediaWiki. Le code vit sur le wiki et est injecté du côté client sur MediaWiki via les préférences de l'utilisateur. Vous pouvez modifier votre JavaScript local et CSS pour changer l'apparence et le comportement de votre propre interface. Les utilisateurs individuels peuvent ajouter des fonctionnalités pour eux-mêmes tant qu'ils suivent les attentes et les directives sur le sujet. Si vous faites quelque chose que d'autres peuvent utiliser, vous pouvez partager vos scripts de manière informelle, ou travailler avec une communauté wiki pour évaluer la pertinence de mettre à disposition de vos personnalisations pour d'autres utilisateurs et projets dans un « gadget ».

Exemple de script utilisateur : afficher un contenu calculé

Ce script utilisateur calcule le temps de lecture d'un article et l'affiche sur la page.

var numWords = $("#mw-content-text > div").text().split(" ").length;
var headerWords = $("h1").text().split(" ").length;
var totalWords = numWords + headerWords;
var timeInMinutes = totalWords / 200;
var header = $("h1").text();
$("h1").text(header + " (it will take you " + timeInMinutes + " mins to read this article)");
Capture d'écran d'un article de Wikipédia en anglais affichant le temps de lecture.

Les gadgets sont des personnalisations créées par les utilisateurs et installables sur un wiki via l' extension MediaWiki Gadgets. Nombre d'entre eux proviennent de scripts utilisateurs devenus populaires sur leur wiki d'origine, et les administrateurs ont souhaité les rendre plus accessibles à tous. Ils peuvent configurer les gadgets disponibles et activés par défaut pour l'ensemble d'un site ou d'un thème MediaWiki.

Exemple de gadget : aider les contributeurs à catégoriser des contenus

HotCat aide les utilisateurs à supprimer, modifier et ajouter facilement des catégories aux pages Wikipédia.

Il dispose d'une liste de suggestions proposant des catégories existantes pour l'autocomplétion.

Capture d'écran de la fonctionnalité HotCat sur la Wikipédia en français.
Exemple de gadget: aider les modérateurs à corriger le contenu

Ce gadget déployé sur Wikipédia persan aide les modérateurs de contenu à corriger les lettres arabes, la grammaire, les chiffres, les URL, la structure des articles, et plus encore.

Capture d'écran du gadget JavaScript de la Wikipédia en persan.
Capture d'écran du gadget JavaScript de la Wikipédia en persan.

Pour en savoir plus sur les scripts utilisateurs et les gadgets, visitez Cuisine des Gadgets .

Créer des outils et des bots pour aider les projets Wikimedia

Les API de MediaWiki offrent un accès direct aux données de sa base de données. Celles-ci incluent le contenu wiki, les métadonnées, les données analytiques, etc. Vous pouvez les utiliser pour créer des applications qui enrichissent l'écosystème Wikimedia de contenu ou de nouvelles fonctionnalités. Les modules d'API permettent d'accéder par programmation à une grande partie des fonctionnalités offertes par l'interface web de MediaWiki.

Robots

Les robots, ou simplement bots, sont des programmes automatisés qui aident les wikis en accomplissant des tâches cruciales mais répétitives. Les robots économisent de l'effort humain en corrigeant des espaces manquants ou supplémentaires, en suggérant des articles aux nouveaux arrivants, en réparant des liens cassés, et plus encore. L'automatisation des robots soutient les bénévoles de Wikimedia en leur permettant de passer plus de temps à effectuer des tâches qui nécessitent une intelligence humaine, comme écrire des articles, trouver des sources, vérifier des faits et synthétiser plusieurs points de vue.

Exemple de robot : lutte contre les liens morts
InternetArchiveBot (IABot) est un robot avancé qui identifie et remplace les liens externes brisés.

Il complète également les modèles de référence et ajoute des liens vers les ressources, quand cela est pertinent.

Ce robot est exploité en tant que service de l'Internet Archive en partenariat avec la communauté Wikimedia.

En octobre 2022, IABot est utilisé sur plus de 150 wikis Wikimedia.

IABot dispose également d'une interface dans un navigateur (application web) qui offre un accès facile à certains des services et de la configuration du bot.

Les robots peuvent demander des pages et soumettre des modifications aux wikis comme les utilisateurs humains font les mêmes tâches dans un navigateur Web. Parce que les robots accèdent aux pages de la même manière que les gens, ils peuvent être pris dans des conflits de modification, avoir des problèmes de temps de chargement des pages ou rencontrer d'autres complications inattendues pendant en chargeant des pages ou en effectuant des modifications. Comme les robots effectuent généralement un volume important d'actions, vous devez prendre en compte ces situations lors de l'écriture d'un bot.

Pour en savoir plus sur les robots, visitez Manuel:Créer un robot .

Outils

Les outils sont des logiciels qui facilitent le travail des contributeurs aux projets Wikimedia. Ils permettent d'effectuer diverses tâches, comme aider les contributeurs à trouver du contenu à améliorer, simplifier l'organisation d'ateliers d'édition, visualiser le contenu du wiki, lutter contre le vandalisme, et bien plus encore.

Exemple d'outil : améliorer les images

CropTool est un outil MediaWiki permettant de recadrer des images sur Wikimedia Commons et d'autres sites Wikimedia.

Il prend en charge les fichiers JPEG, PNG, TIFF et GIF (animés) et peut également extraire des pages uniques à partir de fichiers DJVU et PDF en JPEG pour le recadrage.

Capture d'écran de l'entrée de menu pour CropTool sur un wiki.

L' API Action de MediaWiki vous permet d'accéder par programmation au contenu de n'importe quel wiki Wikimedia. Vous pouvez l'utiliser pour rechercher et afficher des pages wiki, obtenir des fichiers multimédias, modifier des pages et gérer les wikis. Des bibliothèques clientes implémentant l'API MediaWiki sont disponibles dans de nombreux langages, notamment Python et JavaScript.

Exemple d'outil : connecter les articles de Wikipédia et les éléments Wikidata

L'outil Duplicity choisit un article de Wikipédia aléatoire qui n'a pas d'élément Wikidata associé et propose quelques correspondances possibles sur Wikidata.

Il est facile d'ajouter des données structurées pour saisir les sujets, les concepts ou les entités abordés dans un article.

Capture d'écran de l'interface de l'outil Duplicity.
Capture d'écran de l'interface de l'outil Duplicity.

Pour explorer plus d'outils Wikimedia, visitez Toolhub. Or, learn about hosting your tools and bots for free on Toolforge.

Rejoindre la communauté technique de Wikimedia

Un excellent moyen de contribuer est de rejoindre la communauté technique. Vous pouvez rencontrer des personnes et discuter de développement sur différents canaux de communication et lors d'événements comme les hackathons. La Fondation Wikimedia propose également des programmes de mentorat pour accompagner les nouveaux développeurs.

Participants au Hackathon Wikimedia à Prague en 2019.
Participants au Hackathon Wikimedia à Prague en 2019.

Commencer en tant que nouveau contributeur

  • Visitez la page des nouveaux développeurs pour en savoir plus sur la façon de commencer à développer et de contribuer aux logiciels libres Wikimedia.
  • Utilisez le Developer Portal pour trouver des ressources et des tutoriels pour votre domaine d'intérêt.