Pôle des développeurs
Ceci est une vue d’ensemble très générale du développement MediaWiki, incluant des liens vers les documents clés, ressources et outils disponibles aux développeurs MediaWiki. Elle est écrite pour les développeurs LAMP qui ont déja expérimenté MediaWiki.
- Si vous souhaitez « utiliser » les API web de Wikimedia, consultez le portail du développeur.
- Si vous voulez contribuer au développement du logiciel Wikimedia, voyez Nouveaux développeurs .
- Pour un guide d'introduction au développement de MediaWiki et des extensions MediaWiki, veuillez vous reporter à la page Comment devenir un hackeur de MediaWiki .
- Si vous voulez contribuer avec d'autres utilisateurs tiers de MediaWiki, le Groupe MediaWiki Stakeholders (MWStake) est un groupe d'utilisateurs MediaWiki constitué de développeurs MediaWiki, d'administrateurs système, d'utilisateurs, de consultants, et de fournisseurs d'hébergement.
Résumé
MediaWiki est le logiciel qui fait tourner Wikipedia, ses projets fères et des milliers de wikis de par le monde.
MediaWiki est écrit dans le langage de programmation PHP[1]. Il utilise jQuery comme bibliothèque client JavaScript.
MediaWiki a d'abord été écrit pour la plateforme LAMP[2] et s'exécute sur la plupart des systèmes d'exploitation. MediaWiki utilisait à l'origine les serveurs de bases de données MySQL et MariaDB.[3]
Le développement se fait dans un style à source ouvert [4], essentiellement coordonné en-ligne, et soutenu par la Fondation Wikimedia, bien que la communauté des développeurs bénévoles joue également un rôle important.
- Des discussions sur le développement ont lieu sur différentes listes de diffusion et canaux IRC. La liste principale pour les développeurs est wikitech-l. Le canal IRC principal pour les développeurs est #mediawiki connecter.
- Le code source est géré via le logiciel de gestion de version Git.[5]
- La revue de code pour la plupart des projets est effectuée sous Gerrit . Suivez ce tutoriel pour configurer Git et Gerrit afin de soumettre des correctifs.
- Le signalement de bogues et les tâches de la plupart des projets sont gérés sur Phabricator .
- Les développeurs qui œuvrent sur les extensions ou sur les interfaces de MediaWiki (au lieu de travailler directement sur le noyau du code) disposent de plusieurs mesures de commodité pour l’extension, comme l'API, les accroches et les habillages – voir la section Étendre MediaWiki de cette page pour une vue d’ensemble.
Documents clés
Code, développement et style
- Règles de développement – un aperçu des principales politiques de développement.
- Conventions de codage – apprendre à écrire du code dans le style MediaWiki.
- Sécurité pour les développeurs – apprenez à protéger MediaWiki.
- Liste des vérifications avant validation – lisez cette liste de contrôle avant de valider le code.
- Guide de relecture – un guide pour les relecteurs de code source MediaWiki.
- Technical Decision Making Process – lire le processus avant de décider de faire des modifications techniques plus larges.
Correction de bogues et tests
- Comment corriger les bogues – un guide pour la résolution des problèmes dûs au code MediaWiki.
- Manual:Errors and symptoms – une vue d’ensemble des erreurs fréquentes lors des développements avec MediaWiki et corrélation avec leurs symptômes.
- Test du navigateur – apprendre à écrire des tests d'interface utilisateur pour MediaWiki avec Selenium.
- Tests unitaires – apprendre à écrire des tests unitaires pour MediaWiki avec PHPUnit.
- Tests d'intégration d'API – apprendre à écrire des tests d'intégration d'API pour MediaWiki en utilisant Mocha.
- Sécurité pour les développeurs – apprendre à écrire du code sécurisé.
Architecture
- Architecture de MediaWiki – introduction sur l'architechure de MediaWiki.
- Code – vue d’ensemble des éléments clés du code source MediaWiki.
- Schéma de base de données – résumé des schémas de la base de données MediaWiki.
- Variables d'objets globales – une liste partielle de variables clés globales.
- Internationalisation – découvrir le système d'internationalisation de MediaWiki.
- L’espace de noms Manuel de ce wiki est dédié à la documentation destinée aux développeurs.
- MediaWiki Class Reference – documentation technique générée à partir du code source de MediaWiki. (Note : La référence de classe est une page volumineuse et lente à charger).
Sous-systèmes
- API – l’API Mediawiki fourni un accès haut-niveau et direct aux données contenues dans les bases de données Mediawiki.
- ContentHandler – L’infrastructure logicielle MediaWiki pour l’intégration de types personnalisés de contenus de page.
- Accès à la base de données – un panorama de l'utilisation des bases de données dans MediaWiki, dont un bref guide sur la couche d’abstraction de la base de données.
- File d’attente des travaux – infrastructure logicielle MediaWiki pour lancer des tâches au long cours s’exécutant de façon asynchrone.
- API Messages – infrastructure logicielle MediaWiki permettant de fournir des messages d'application localisés avec PHP ou JavaScript.
Étendre MediaWiki
Mediawiki a été conçu de façon à ce qu’il puisse être étendu sans avoir à modifier le code de son noyau. Cela facilite les mises-à-jour vers les nouvelles versions de Mediawiki sans nécessiter de fusion manuelle des modifications de code des anciennes extensions.
Il y a six principaux types d'extensions qui permettent aux développeurs d'étendre ou modifier les fonctionnalités de MediaWiki. Ces principaux types sont :
- API - accède aux données et aux métadonnées des instances MediaWiki via son API web.
- Accroches – chaque fois qu’un événement donné se produit, déclencher les actions.
- Fonctions d'analyse – créer une nouvelle commande comme :
{{#if:...|...|...}}
. - Habillages – modifier l’apparence et le comportement de MediaWiki.
- Pages spéciales – ajouter une nouvelle page spéciale.
- Extensions de balise – créer une nouvelle balise « newtag » comme :
<newtag>...</newtag>
. - Etendre le balisage wiki – ajouter une accroche d'analyseur pour modifier le contenu du texte wiki.
Aide pour les développeurs d'extensions
- Développement d'extensions – guide de développement des extensions.
- FAQ des extensions
- Voir Catégorie:Extensions , pour la liste exhaustive des extensions.
- Extension:BoilerPlate - modèle d'extension vierge.
Aide aux développeurs d’habillages
- Manuel:Comment créer un habillage MediaWiki – instructions expliquant comment créer un habillage MediaWiki.
- Manuel:Configuration des habillages – guide de configuration des habillages pour un wiki.
Aide sur la réutilisation de bibliothèques de code
- Manuel:Développer des bibliothèques – un guide sur la création bibliothèques tierces en vue d’une utilisation avec MediaWiki
Notes
- ↑ mais non en totalité. Certains outils supportés sont écrits dans d'autres langages, y compris les fichiers batch, les scripts shell, les makefiles et Python.
- ↑ MediaWiki s'exécute sur la plupart des plateformes qui supportent PHP, bien que, le manque de certains utilitaires ou fonctionalités du système d'exploitation puisse limiter la fonctionalité ou la performance de MediaWiki sur les plateformes non-LAMP.
- ↑ MediaWiki supporte des DBMS autres que MySQL et MariaDB, comme PostgreSQL et SQLite.
- ↑ Les développeurs sont un ensemble diversifié de bénévoles et de personnel payé (ou de consultants) pour diverses organisations. Pour une liste complète de qui travaille sur le code de MediaWiki, lisez l'article Développeurs .
- ↑ Explorez les fichiers source et les révisions des dépôts de code sur Gegrrit ou téléchargez les fichiers source sur votre système en utilisant Gerrit .