Hello,
When adding an extension requirement in extension.json, CI would most probably complain since it does not clone the extension. It has to be added to the CI configuration:
https://gerrit.wikimedia.org/r/integration/config.git edit zuul/parameters_functions.py
Add the requirement to the 'dependencies' mapping, then send for review. Unfortunately one of the CI maintainers would have to approve and deploy it.
As a twist, I wrote a few bits that should make it possible for CI to automatically process and clone the requirements and thus let us phase out the central config. But that takes a bit of time to accomplish it properly.
The long story:
MediaWiki extension registration lets one define a requirement upon other extension/skins. If one writes an extension that extend VisualEditor, most probably VisualEditor is required, the extension.json would thus have:
{ "requires": { "extensions": { "VisualEditor": "*" } } }
Due to a bug, CI was no more failing when a requirement was not fulfilled. In fact the extension would not even be enabled when running maintenance/install.php --with-extensions
That has been fixed via: https://gerrit.wikimedia.org/r/#/c/mediawiki/core/+/533239/
From now on, on master branch, CI would fail when a requirement is missing. Unfortunately, CI does not magically clone the requirements yet, so you would have to also add them to the CI config (see above).
[requirements] https://www.mediawiki.org/wiki/Manual:Extension_registration#Requirements_(d...)
wikitech-l@lists.wikimedia.org