Problem:
- From time to time, we want to undeploy certain extensions from wikis, or from all of production.
- However, doing so poses some problems:
- Logs created by extensions will suddenly disappear, breaking the concept of on-wiki auditability;
- Logs related to namespaces registered by extensions will disappear; and
- Log entries created by extensions will appear as un-rendered i18n because it's no longer registered (only when removing the extension from all of production).
- This problem makes us hesitant to remove code we want to (like UserMerge), or leave code "on" when it's off (like LiquidThreads).
- Occasionally we make the decision to drop extensions from wikis anyway (for expediency or other reasons), leaving unfixable brokenness behind.
Proposal:
- Create a series of shims for extensions in the WikimediaMessages extension that only register namespaces, logs, and i18n.
- For wikis where we're removing extension Foo, enable WikimediaMessages's Foo shim in mw-config.
- For extensions which were on all wikis and now are on none, default them on in WikimediaMessages.
Sane?