Manual:Composer.json best practices/fr

Lorsque vous créez un fichier composer.json pour votre extension/bibliothèque/etc qui sera utilisée dans MediaWiki, voici quelques bonnes pratiques à suivre. Vous devriez aussi lancer le validateur de Composer qui vous pointera les erreurs de schéma.

Configuration

 * "prepend-autoloader": false. L’auto-chargeur (autoloader) de Composer est plus lent que celui de MediaWiki et la plupart des classes chargées sont susceptibles d’être trouvées dans MediaWiki, donc ajoutez après, plutôt que avant l’auto-chargeur de Composer. Voyez ceci pour les détails supplémentaires.
 * "optimize-autoloader": true. Il n’y a pas de raison de ne pas optimiser.

Bon exemple : mediawiki/core

Dépendances

 * Les dépendances devraient être fixées à un numéro de version ou un commit sha1 spécifique si un tag n’est pas disponible.
 * Pour les outils de développement tels que phpunit ou phpcs, "dev-master" ou "*" est acceptable.

Bon exemple : mediawiki/core

Nommage
Les bibliothèques hébergées dans Gerrit dans par le compte GitHub Wikimedia devraient typiquement être publiées dans l’espace de noms « wikimedia » (par exemple « wikimedia/cdb », « wikimedia/simplei18n »). L’utilisation de l’espace de noms « mediawiki » devrait être réservée aux extensions ou autres composants intrinsèquement liés à MediaWiki (les cadriciels de bots, etc.). Il est suggéré aux projets hébergés sur GitHub dans une organisation indépendante d’adopté une convention similaire qu’un espace de noms d’une organisation soit utilisé de façon égale entre les différentes bibliothèques publiées par le groupe.

Auteurs
Les noms des auteurs principaux du projet doivent être documentés dans la propriété « auteurs ». Au minimum, les champs du nom et du courriel doivent être remplis. Pour les bibliothèques, cela sera affiché sur Special:Version dans la section des « bibliothèques installées ».

Extensions
Les noms des extensions doivent être en minuscules avec des tirets  comme séparateurs de mots. Par exemple :


 * Extension:WikiEditor &rarr; mediawiki/wiki-editor
 * Extension:MassMessage &rarr; mediawiki/mass-message

Pour les rendre installables, une dépendance à « composer/installers » version version >= 1.0.1 est requise, et le type doit valoir « mediawiki-extension ».

Bon exemple : mediawiki/extensions/Bootstrap

Habillages
Principalement comme les extensions, à la différence que le type devrait être « mediawiki-skin ». Les noms devraient finir avec le suffixe « -skin ».

Parce que Composer utilise les noms en minuscules pour les paquets (par exemple ), la propriété   doit être le nom en majuscules (c'est à dire  ) afin qu'il soit copié dans le bon répertoire.

Pour qu'ils soient installables, une dépendance avec « composer/installers » de version >= 1.0.13 est nécessaire, et le type doit être initialisé à « mediawiki-skin ».

Bon exemple : mediawiki/skins/Vector

Aussi extension.json
Extensions and skins register information about themselves using an  or   file. Some metadata fields in these files overlap (discussed in T89456), including
 * and
 * and