Hi,
Lex and Cindy - I'm also glad you both agree that this feature should be part of a separate product. Lex, I'm looking forward to its release! I wouldn't be surprised if it improves life for a lot of people.
Cindy - I'm not sure that there has to be any dependency between these products. But we should talk about the structure (which I think is what Ad was asking about too). The way the "extension store" thing currently works, I believe, is that it directly modifies LocalSettings.php - adding wfLoadExtension() calls when a new extension is downloaded/installed, and then either removing or commenting out those lines when extensions are deleted/uninstalled. What I think it should do instead is have its own settings file. So, if this utility were called "Strudel", it would have its own file, StrudelSettings.php, which is where all the changes would be made - and then LocalSettings.php would have a line like "include_once('StrudelSettings.php');".
I am now talking about having four different settings files: LocalSettings.php, MyBeforeSettings.php, MyAfterSettings.php, and now "StrudelSettings.php". This seems like a lot, and it is potentially confusing, but it also keeps things very well organized: each file has only one owner/modifier, so that if, for example, the main Docker image is updated, neither the admin's custom settings nor the "Strudel settings" will get erased.
I have previously argued that, in addition to the regular MediaWiki /extensions and /skins directories, there should be /myextensions and /myskins directories. (Or something like that.) Does that mean that there should also be /strudelextensions and /strudelskins directories? I would say: yes. Again, it's the easiest way to guarantee that no system causes problems for any other system. And the admin might not need to be aware of all the "Strudel" stuff in the file system, anyway - they might only interact with the application through the web interface.
Cindy - authentication (i.e., making sure that only people who are allowed to access the "extension store" can do so) is a challenge. It's especially a challenge if Lex's "MediaWiki Manager" (which I like to call "Mwanagenzi"), the thing that handles MediaWik installs, upgrades and backups, has its own web interface - which also requires its own authentication. I don't know if anyone has any thoughts on how best to handle that - for either system.
-Yaron