Hey all,
As hopefully most of you have heard, I'm working on changing the system we use to configure Wikimedia production. The main purpose is to make it output static files and reduce the amount of "code" executed on each page request as much as possible. This means that much of the way that people on this list write and deploy configuration patches will have to change.
You can read some details at T223602 https://phabricator.wikimedia.org/T223602, but the short version is that there'll be a YAML file for each wiki which will set unique configuration for that wiki, and a set of YAML files for "traits" that wikis can inherit from (e.g. in this demo change for bnwiki https://gerrit.wikimedia.org/r/c/operations/mediawiki-config/+/539414/4/wmf-config/config/bnwiki.yaml, I'm making it inherit a set of configuration for the "mobilemainpagelegacy" trait). There won't be an InitialiseSettings file or feature dblists any more. Much of the configuration in CommonSettings.php will be moved into these files too. Changes to configuration YAML files will be "compiled" into a static JSON file per wiki (example for bnwiki https://gerrit.wikimedia.org/r/c/operations/mediawiki-config/+/507729/18/wmf-config/config-cache/conf-production-bnwiki.json) at merge time.
I'd really appreciate thoughts/ideas/concerns/questions any of you might have.
Hi James,
Looks like a giantic ammount of work. It will also cause that the number of individual config files will increase a lot. Is it worth the effort?
Best regards.
On Fri, 4 Oct 2019 at 09:57, MarcoAurelio strigiwm@gmail.com wrote:
Hi James,
Looks like a giantic ammount of work.
I'd say that the main work right now is validating config changes, which will become massively simpler and more assured.
The actual migration will be trivially obvious in terms of validation (compiled content output files will remain unchanged, so you'd know that it's safer), and very scriptable.
It will also cause that the number of individual config files will increase a lot. Is it worth the effort?
It will, yes; we'll go from config spread around ~7 executable files to being in 1 executable file (CommonSettings) and ~1000 static files, of which as many as a dozen might be involved in a single wiki's config (but production will read from the single static 'compiled' file).
J.
Hello,
If the deployers and/or ops people think that'd improve reliability, safety, etc. I guess I'm nobody to oppose it, even if the idea of having a thousands of new files scare me profoundly :-) But I have limited knowledge here so if anyone has any objections I guess raising them here or in the Phabricator ticket would be appropriate.
Best regards, M.