On 6/24/07, Rob Church robchur@gmail.com wrote:
Certain configuration changes will require maintenance scripts and the like to be run, e.g. messing about with namespaces...it might not be the best idea in the world to expose this via the web interface.
It goes without saying that all such options would have to be tweaked until they worked without breaking things, just as the rest of the software does. If something is only available to sysadmins anyway, of course we're not going to bother putting in safety catches and padded walls, because a) they presumably know what the script actually does on the level of the backend and have a very real idea of what any issues should be with running it; b) trust that the tool will not be used maliciously is absolute, because sysadmins who were inclined to go on a rampage would have vastly more destructive paths open to them anyway; and c) if they break something, they should have the skills and access to fix it.
So currently, changing namespaces looks like
1) Edit LocalSettings.php. No checks whatsoever; if you make a typo, you just screwed up the wiki. 2) Run namespaceDupes.php or whatever to move a bunch of pages around. If there are conflicts, say because you're recycling a namespace ID because things like IDs aren't transparent to you, oh well, move them somewhere and hope they get sorted out.
If it were done through the GUI, it would be more like
1) Add the namespace through a nice shiny GUI, no possibility for significant mistakes. Hit Save. 2) Bring up a confirmation dialog reiterating the exact namespace name chosen and giving the number of pages that will be automoved to the new namespace. (Very fast, indexed SELECT.) 3) Add the new namespace to the database, and immediately (preferably within the same transaction) move all appropriate pages. (Very fast, also indexed.) 4) Present "mission accomplished" message.
All of that is fast, easily understandable, and reversible in the case of error. It's no more dangerous or problematic than allowing sysops to delete pages. Even if some rogue bureaucrat (and we've gotten single digits of rogue sysops out of a couple thousand, whereas we only have maybe fifty or sixty bureaucrats/stewards across all projects, and they're quite a bit more heavily screened) decided to move everything to the main namespace, it could be moved back immediately, since logically the pages would keep their prefixes in such a case.
Basically the same principles apply to various other options. The only thing that we really need to worry about, as always, is reversibility. If we have that, it doesn't really matter what happens, which is the entire principle of wiki. Either way, it's ridiculous to have shell users make every single routine change to the wiki's setup, especially when it frequently takes them months to find time for it.