Jump to content

Manual:Composer.json best practices/fi

From mediawiki.org
This page is a translated version of the page Manual:Composer.json best practices and the translation is 21% complete.
Outdated translations are marked like this.

When creating a composer.json file for your extension/library/etc that will be used inside MediaWiki, here are a few best practices to follow. You should also run composer validate, which will point out schema errors.

Konfiguriointi

  • prepend-autoloader: false. Composer's autoloader is slower than MediaWiki's, and most of the classes being loaded are likely to be found inside MediaWiki, so append the Composer autoloader instead of prepending it. Katso tämä lisätietoja varten.
  • optimize-autoloader: true. No reason not to optimize.

Hyvä esimerkki: mediawiki/core

Riippuvuudet

Dependencies should be pinned to a specific version number or sha1 commit if a tag isn't available.

Hyvä esimerkki: mediawiki/core

Nimeäminen

Libraries hosted in Gerrit or by the Wikimedia GitHub account should typically be published under the "wikimedia" namespace (e.g. "wikimedia/cdb", "wikimedia/simplei18n"). The use of the "mediawiki" namespace should be reserved for extensions and other intrinsically MediaWiki related components (bot frameworks, etc). Projects hosted at GitHub under an independent organization are encouraged to adopt a similar convention of an organization namespace to be applied consistently across the libraries published by the group.

Authors

Major authors to the project should be documented in the "authors" property. At least the name and email fields should be filled out.

Extensions and skins

Laajennukset

Extension names should be all lowercase with hyphens as word separators. For example:

  • Extension:WikiEditor → mediawiki/wiki-editor
  • Extension:MassMessage → mediawiki/mass-message

To make themselves installable, a dependency upon "composer/installers" with version >= 1.0.1 is required (a reasonable value for this field is "^2|^1.0.1"), and the type needs to be set to "mediawiki-extension".

Hyvä esimerkki: mediawiki/extensions/Bootstrap

Teemat

Mainly the same as extensions, except the type should be "mediawiki-skin". The names should end with a suffix of "-skin".

Because Composer uses lowercase names for packages (e.g. mediawiki/vector-skin), the extra.installer-name property must be set to the uppercase name (e.g. Vector) so it is cloned in the right directory.

Hyvä esimerkki: mediawiki/skins/Vector

Overlaps with extension.json and skin.json

Extensions and skins register information about themselves using an extension.json or skin.json file. Some metadata fields in these files overlap, including:

  • homepage vs. url
  • license vs. license-name

The redundancy of data between extension/skin.json and composer.json has been discussed (see task T89456), but current consensus is that it is unavoidable.