Wikimedia Developer Summit/2017/Global preferences


Chronology: Ryan is kicking off

  • Extension lego built:
    • This extension is currently in-use at ShoutWiki. E.g.
    • 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


  • 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? :)


  • Research UI ideas, ask people who voted.

If you set a global preference, it shows this at a local special:preferences page: 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