Wikimedia Developer Summit/2017/Global preferences

Chronology: Ryan is kicking off
 * Extension lego built: https://www.mediawiki.org/wiki/Extension:GlobalPreferences
 * This extension is currently in-use at ShoutWiki. E.g. http://commandos.shoutwiki.com/wiki/Special:GlobalPreferences
 * It creates a new page, Special:GlobalPreferences and leaves the normal Special:Preferences alone, except for adding a single new option in the "User Profile" tab, for "Set your global preferences".
 * You have to check every setting to mark them as global. This means hundreds of clicks, if I want almost everything to be global and non-default.
 * Would it be better to have 1 button to make everything global, with "don't make this global overrides" ?
 * Needs some design work :)
 * Kunal suggested doing a pass at the preferences structure
 * Has some downsides
 * Could spiral out of control (manageability-wise).


 * What are some use cases for global preference
 * Max: When travelling it is really annoying to have to change my timezone on every wiki
 * Roan: I want my interface English in every wiki except those where I speak/understand the content language
 * Ryan: Right, so then this extension would currently not suit your needs.
 * Ryan: I'd like to turn off global notifications on all wikis except my local wiki....
 * Erica: I'd like global preferences to turn on/off products and beta features on all wikis.
 * Quiddity: Watchlist for enhanced etc
 * Quiddity: Preferences for searching namespaces, which (the namespaces available) can be different on every single wiki

Problems:
 * Not all preferences exist on all wikis, e.g. Education extension. or PageTriage
 * Ryan: It quickly becomes really complicated...
 * TheDJ: What if we show a pop-up/dialog where we tell them existing global settings and ask them if they want to switch?
 * MaxS: How about killing off most preferences? :)

Ideas:
 * Research UI ideas, ask people who voted.

If you set a global preference, it shows this at a local special:preferences page: https://i.imgur.com/nOvlTfX.png The problem here, is you can set a global preference, but cannot override it per-wiki. It does cover the simplest use-case, which is perhaps the majority of the needs? But it might not cover the most far-reaching edge-cases. E.g. polyglot users who want one global language preference in most places, but overrides at 1 or more wikis.

We don't currently create new projects very often (last was WikiVoyage in 2013). New languages are frequently created, but are primarily visited by stewards/SWMT folk.

Maybe we should experiment with this using a much more limited form of implementation in Gadget UI, just copying preferences to every wiki using JS and api.
 * Gets us data about how much this is actually used
 * Not disruptive
 * Link from the Special:Preferences page (use a hook )
 * More freedom to experiment with UI concepts for this, which seems to be a rather complex part.
 * Could have 'sets of preferences' that users could override and allow you to specify on which wikis