There are some extensoins that depend upon another extension or skin,
usually in different ways:
* A constant that is added in the dependency extension, and the
existence of is checked for. This is problematic because it requires a
specific load order.
* Checking whether a specific class exists. This is problematic because
it is extremely fragile, and breaks whenever the class is renamed.
* Checking ExtensionRegistry::isLoaded(). This is mostly there, but it
only checks at runtime, and doesn't provide any machine readable data.
Furthermore, developers implement each one differently, with very little
standardization.
With this, extensions may now specify what other extensions they depend
on. This is for explicit *hard* dependencies that must be installed.
For example:
"requires": {
"MediaWiki": ">= 1.25.0",
"extensions": {
"FakeExtension": "*"
},
"skins": {
"FakeSkin": "*"
}
}
This would add a minimum requirement on MediaWiki 1.25.0+ (already
implemented), as well as the requirement that the FakeExtension extension
needs to be installed, as well as the FakeSkin skin. A wildcard (*) is
used instead of an explicit version requirement as many extensions do
not actually version themselves, and there is no consistent versioning
scheme yet.
Bug: T117277
Change-Id: If1cccee1a16a867a71bb0285691c400443d8a30a
|
||
|---|---|---|
| .. | ||
| code-coverage | ||
| databases | ||
| html | ||
| kss | ||
| php-memcached | ||
| uidesign | ||
| contenthandler.txt | ||
| database.txt | ||
| deferred.txt | ||
| design.txt | ||
| distributors.txt | ||
| doxygen_first_page.php | ||
| export-0.1.xsd | ||
| export-0.2.xsd | ||
| export-0.3.xsd | ||
| export-0.4.xsd | ||
| export-0.5.xsd | ||
| export-0.6.xsd | ||
| export-0.7.xsd | ||
| export-0.8.xsd | ||
| export-0.9.xsd | ||
| export-0.10.xsd | ||
| export-demo.xml | ||
| extension.schema.json | ||
| extension.schema.v1.json | ||
| globals.txt | ||
| hooks.txt | ||
| injection.txt | ||
| language.txt | ||
| linkcache.txt | ||
| logger.txt | ||
| magicword.txt | ||
| maintenance.txt | ||
| memcached.txt | ||
| README | ||
| schema.txt | ||
| scripts.txt | ||
| sitelist-1.0.xsd | ||
| sitelist.txt | ||
| sitescache.txt | ||
| skin.txt | ||
| title.txt | ||
/docs Directory README ====================== The 'docs' directory contain various text files that should help you understand the most important parts of the code of MediaWiki. More in-depth documentation can be found at: https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Code https://www.mediawiki.org/wiki/Special:MyLanguage/Developer_hub API documentation is automatically generated and updated daily at: https://doc.wikimedia.org/mediawiki-core/master/php/html/ You can get a fresh version using 'make doc' or mwdocgen.php in the ../maintenance/ directory. For end users, most of the documentation is located online at: https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Documentation for MediaWiki site administrators is at: https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents