As a Wikimedia depolyer
I want to use a unified extensions list with mergeMessageFileList across multiple deployments and production & testing environments
Without needing the exact set of extensions to be deployed in all deployments
So I can keep configuration management toil low while also avoiding early deployment of code and arbitrary deployment delays.
This is a very Wikimedia Beta Cluster and production deployment train coded desire and problem. In rOMWCaa11a2c0519e: Moving PerformanceInspector to extension-list a configuration file was removed that previously tracked extensions in Beta Cluster which were not yet deployed to production. A side effect of this configuration consolidation is that to be enabled in Beta Cluster an extension must be added to wmf-config/extension-list. This was explained at the time as an intermediate step towards removing the need for using mergeMessageFileList --list-file entirely. That follow up work however has not yet happened 7 years later. Instead today we not only couple the Beta Cluster and production extension-list to each other, we also couple the extension-list for all active productions branches. The net result is that before being enabled in Beta Cluster an extension's PHP code must be deployed without being activated in at least two consecutive deployment trains. Only after all active production branch deployments contain a given extension or skin can it then be safely added to wmf-config/extension-list for building localization cache in Beta Cluster and production.
Chad's original vision of replacing mergeMessageFileList --list-file with mergeMessageFileList --extension-dir in Wikimedia deployments is still possible, but it will require some changes to Beta Cluster deployments that we do not have a good plan for yet. If we loosen the constraint that all extensions and skins named in the mergeMessageFileList --list-file input must be present we can remove the necessity of all production and Beta Cluster deployments having the same files available locally via a slightly different path.
I propose that we add an --allow-missing-extensions cli option to mergeMessageFileList` which when enabled will log a warning about any missing extension or skin rather than raising a fatal error. Once this functionality is available across Beta Cluster and all active WMF production MediaWiki branches we can change scap to use it and break the deployed file coupling.