MediaWiki Developer Summit 2015

(Redirected from MWDS)

Lessons learned from the 2015 MWDS

Monday, January 26 and Tuesday, January 27, 2015

Mission Bay Center
1675 Owens Street
San Francisco, California, USA

The MediaWiki Developer Summit is an invitation-only event with an emphasis on the evolution of the MediaWiki architecture and the Wikimedia Engineering goals for 2015. This summit is a combination of three events organized in San Francisco in the past: the Architecture Summit, the yearly Wikimedia Foundation Engineering All-Hands/Tech Days event, and the San Francisco Hackathon.

The MediaWiki Developer Summit will be taking place the week after the Wikimedia Foundation's all-hands event. Participants of this event agree to follow the friendly space policy.

  • Associate your tasks to the MediaWiki Developer Summit 2015 project in Phabricator.
  • Upload your pictures to Category:MediaWiki Developer Summit 2015 in Commons.
  • Use the #MWDS15 hashtag in social media.
  • Use the #wmhack connect channel on Freenode.


Registration is closed! Please email if you have any questions.

Registration for scholarships is closed as of Oct 19, 2014.

The MediaWiki Developer Summit is an invitation-only event—we just want to organize an efficient summit with a sane budget. MediaWiki contributors willing to participate must request an invitation. Profiles likely to be accepted include:

  • Wikimedia maintainers and other reviewers with +2 permissions;
  • maintainers and other key contributors in upstream projects;
  • top stakeholders involved in MediaWiki development; and
  • Wikimedia Engineering employees.

Travel sponsorship[edit]

Participants can request travel sponsorship when requesting an invitation. Invitation requests will be evaluated by merit, whereas travel sponsorship requests will be limited by our budget. This means that some participants might be invited but at their own expense.

  • Scholarship registration was open from September 18 through October 19, 2014.
  • We will do our best to make a decision on all scholarships by the end of October and email everyone who applied with a decision during the first week in November at the latest.
  • If you have any thoughts on community members that should be attending this event because of their contributions to MediaWiki and you would like to recommend them please email with their email address and a short written recommendation.


The Mission Bay Conference Center can be reached by a 25-minute bus or Muni ride from Wikimedia Foundation headquarters.

  • Muni line T from Montgomery to UCSF/Mission Bay (take "inbound" T towards Sunnyvale), or
  • Bus 10 from 2nd & Howard to 17th & Connecticut (take 10-Townsend towards General Hospital / Potrero & 24th)

The Mission Bay Center can be reached by a 30-minute bus or Muni ride from the Club Quarters Hotel.

  • Muni line T from Embarcadero to UCSF/Mission Bay (take "inbound" T towards Sunnyvale), or
  • Bus 10 from Sansome & Clay to 17th & Connecticut (take 10-Townsend towards General Hospital / Potrero & 24th)

We are on the second floor of the Mission Bay Center.


This is how we are scheduling the Summit:

There are three themes that welcome activities to improve awareness, collaboration, and results:

  • Mobile (main topic of the event, lead by Tomasz Finc)
  • Editing (James Forrester)
  • Service Oriented Architecture (Gabriel Wicke)

Some slots have been reserved for these themes, just in case.

Some other sessions have been pre-scheduled following the recommendation of the Architecture Committee and the Product team, also corresponding to complex topics in search of progress and results during the Summit.

How to schedule a session[edit]

  • Find an available slot based on the estimated size of the session and room setup (theater / workshop), trying to avoid overlaps of topic/audience with other sessions at the same time.
    • You can negotiate changes of slots with other sessions scheduled, as long as all of you agree.
  • Add the title of the session and your name to the corresponding cell in the tables below.
  • Create a task associated to the MediaWiki Developer Summit 2015 project in Phabricator, adding the corresponding description.
    • Others can subscribe to your session to receive notifications, ask questions, start the debate...
    • Discussion before and after your session is encouraged!

Monday, January 26[edit]

  • 8:30 a.m. - 9:00 a.m.: Everyone arrives morning coffee/snacks served
  • 9 a.m. - 5 p.m.: Dev Summit at Mission Bay Center
  • 5 p.m.: Shuttles pick up participants at Mission Bay Center
  • 5:30 - 8:00 p.m.: Dinner and drinks at Buca di Beppo
  • 8:00 p.m.+: Self organized drinks/city exploring, continued hacking on 3rd floor at WMF HQ, and socializing at Club Quarters
Roberston 1 Robertson 2 Robertson 3 Conference Room 1 Conference Room 2 Conference Room 3
Monday 1/26 (200 people theatre) (50 classroom) (50 classroom) (40 theatre) (40 theatre) (24 classroom)
9:00: AM Opening - Welcome & logistics - Our challenges for 2015
10:15: AM Break
10:30: AM Preparing for a multi-device world
11:15: AM After-plenary API & misc discussion notes Experimenting with new forms of editing Etherpad MediaWiki-Vagrant install party Etherpad? MediaWiki Stakeholders' Group Meet-Up Etherpad Using EventLogging and Dashboards Etherpad
12:00: PM Lunch
1:00: PM User-facing feature releaseEtherpad Graphs and Maps and raw json/csv data on wiki.
The last push to get Graph ext to WP
. See Demo Etherpad?
Security recommendations for new services Etherpad State of CI, what we did in 2014Etherpad
1:45: PM Future of EditingEtherpad Future of CI, what we want to do in 2015Etherpad Convert extensions to use new Config features
2:30: PM Break
2:45: PM Modern, consistent user experience • Etherpad
3:30: PM After-plenary MediaWiki Farmers user group meetup Etherpad Documentation – generated & wiki Etherpad Proposed: Advanced Topics in Browser Test Automation Etherpad
4:15: PM Front-end Standardization • Etherpad Developing mobile apps! Etherpad Performance and profiling Etherpad

Tuesday, January 27[edit]

  • 8:30 a.m. - 9:00 a.m. - Everyone arrives morning coffee/snacks served
  • 9 a.m. – 5 p.m.: Dev Summit at Mission Bay Center
  • 5 p.m.: Shuttles pick up participants at Mission Bay Center
  • 5:30 p.m.+: Social event @ WMF (3rd floor and North side of 6th floor) with food and drink catered by Old Bus Brewing, music, mingling, and karaoke.
Roberston 1 Robertson 2 Robertson 3 Conference Room 1 Conference Room 2 Conference Room 3
Tuesday 1/27 (200 people theatre) (50 classroom) (50 classroom) (40 theatre) (40 theatre) (24 classroom)
9:00: AM Distribution of MediaWiki and extensions Etherpad Language and Localization Services Etherpad BounceHandler extension to handle email bounces Slides(Prezi) Etherpad?
9:45: AM Next steps along the Service Oriented Architecture path Etherpad
10:30: AM SOA and Operations Etherpad? Introduction to Web accessibility for MW devs Etherpad
Bring headphones if possible
Introduction to design research for product development Etherpad
11:15: AM Service virtualization, deployment & CI Etherpad Building websites with MediaWiki + Lua Etherpad? Improving extension management Etherpad
12:00: PM Lunch
1:00: PM How MediaWiki slows us down Etherpad Etherpad2
1:45: PM Future of the Architecture Committee Etherpad Graph extension, on-wiki JSON data Wikidata Query Service Etherpad Graphs and Maps and raw json/csv data on wiki.
The last push to get Graph ext to WP
. See Demo. Etherpad
2:30: PM Break
2:45: PM Service design goals, issues and infrastructure and SOA proliferation through specification Etherpad Update bots to handle Flow boards (workshop), Etherpad The Future of Language Converter (or, why do Red and Orange spell colo(u)r differently?) Etherpad, slides Team Practices Group talk about collaboration techniques: remote best practices, backlogs, burndown charts, etc... because communication


3:30: PM Wrap-up Etherpad


Here is a list of approved attendees and the ways in which they would like to contribute.

Feel free to add and sign up for topics that should be discussed at the 2015 MediaWiki Developer Summit.

Discussion sessions[edit]


A discussion session on VisualEditor. What are the next steps for its development? We would like to discuss HTML storage and the future of wikitext; citation editing and sharing; the future of templates and Lua modules; SOA and structured data.

Desired attendees: Trevor Parscal, Brion Vibber, Roan Kattouw, Gabriel Wicke.

Frontend standards[edit]

The Frontend standards group can present their work so far. Mustache, OOjs, future directions.

Desired attendees: Frontend standards group

Principles for object-oriented architecture[edit]

Dependency injection, testability, "dumb" objects and service objects.

Desired attendees: Daniel Kinzler, Brad Jorsch, Nik Everett, Tim Starling, Brion Vibber, Kunal Mehta.

SOA design principles[edit]

Common required design goals/aspects for SOA services. A system for demand management or "back pressure" would be desirable, to reduce the effects of overload. We would also like to discuss SOA authentication.

Desired attendees: Gabriel Wicke, Services team, Faidon Liambotis, Sean, Chris Steipp.

Content API service[edit]

To discuss RESTBase, and public and private content APIs.

Desired attendees: Gabriel Wicke, Services team, Faidon Liambotis, Sean, Chris Steipp.

Push notifications[edit]

PuSH, Atom, SyncML. Federation, syndication.

Desired attendees: Daniel Kinzler, Ori Livneh, Mark Bergsma

Multimedia storage[edit]

Storage, caching, purging, etc. Frontend caching logic.

Desired attendees: Brandon Black, Faidon Liambotis, Ori Livneh, Mark Bergsma, Multimedia team.

Installation and deployment[edit]

Dependency management, composer integration.

Desired attendees: Markus Glaser, Daniel Kinzler, Katie Filbert, Kunal Mehta

Structured data & search[edit]

Brainstorming use cases for querying Wikidata, Commons, and any other Wikibase. Wikidata Query Service is just the start. The sky is the limit.


Desired attendees: Daniel Kinzler, Sean Pringle, Nik Everett, Aaron Schulz, Stas Malyshev, analytics?

Future of the Architecture Committee[edit]

How should members be selected? What role should the architecture committee have?

Desired attendees: Architecture committee

Extension management[edit]

How can we design an easy-to-use extension management where extensions can be installed and deactivated via a web frontend without breaking the whole mediawiki installation?

Desired attendees: Adam Shorland, Mark A. Hershberger, Kim Schoonover, Marius Hoch, Markus Glaser, Niklas Laxström, Daniel Kinzler, Kunal Mehta, anyone interested

Performance and profiling[edit]

Share tips and tricks for profiling (e.g. xhprof) and discuss about performance, especially as concerns Wikidata.

Desired attendees: aude, DanielK, hoo, bd808, ori, aaron, others interested

Documentation – generated & wiki[edit]

Monday 26 January 3:30 Conference Room 2, phab:T86050

How do we meld the two? What would the ideal Data and developer hub look like?

Demo some compelling pages, then discussion. Other topics:

  • Can we make SOFIXIT for generated documentation as easy as editing a wiki page?
  • Can we link talk page comments back to generated documentation?
  • How to push or pull excerpts of source code into wiki pages for code snippets, e.g. HTMLForm/tutorial2.
  • Automatically show generated documentation and wiki pages while browsing?
  • Automatically update generated documentation while editing (e.g. grunt watch)
  • Can we have demo MediaWiki code (e.g. HTMLForm/tutorial2) running on

Desired attendees: S Page, anomie, hashar, James Forester, Jon Robson, User:MarkTraceur, Nemo_bis, Quim Gil, Timo Tijhof, ... anyone who's ever written a comment in code, generated code, or edited a developer wiki page.


BounceHandler extension to handle email bounces[edit]

Recently we came up with the BounceHandler extension to handle email bounces effectively. It would be great if we could get more inputs from fellow developers and maintainers on the technique we used and fetch more inputs on its capability to distinguish hard and soft bounce. Various test cases can come up in the event, and will help us improve the extension very much - which ( we expect ) will be in production by then.

Background material:


Real-time collaborative editing[edit]

I've been working on code to support real-time collaborative editing in VE for a while. Any one else interested in hacking on this?

Offline content[edit]

The Offline Content Generator service could use some love. Help improve our PDF rendering, implement ZIM or ePub support, or do something really crazy like offline editing.

Auth as a service[edit]

Authn/Authz as a service. Perhaps Chad can flesh this description out some?

Thumbnailer as a service[edit]

Split out the image thumbnailer code into a separate service, implemented in PHP.


Convert extensions to use new Config features[edit]

We recently added a set of Config classes to core to be used when accessing configuration variables, instead of using global scope. A lot of core has been converted to use these classes, but very few extensions have. We'll go over how to properly access Config options and to convert most uses of global variables. Then we'll pick extensions and start hacking!

Update bots to handle Flow boards[edit]

Flow is slowly being enabled on more pages. Bots (or the libraries they use) will need updating to handle a page that isn't a wiki article. Flow developers will help you use Flow API calls to detect a Flow board, make changes to its header or create a new topic, etc. We may also develop shim code to, e.g. emulate action = 'edit', section = 'new' .

MediaWiki-Vagrant Install Party[edit]

Introduction to using MediaWiki-Vagrant to manage a development environment for hacking on MediaWiki. We'll do a really quick high level look at what Vagrant is and how MediaWiki-Vagrant uses and extends it. Then we'll get hands on by installing MediaWiki-Vagrant on everyone's laptops.

Using Graphs[edit]

How to use Graph extension on MediaWiki

Lua for fun and profit[edit]

Research options to use Lua for data pre-processing (e.g. for Graphs), or custom actions.

Developing mobile apps![edit]

An introduction to mobile app development at the Wikimedia Foundation. If you have experience with Objective C or Java, or just have a passion for developing iOS/Android apps which interact with MediaWiki sites through the API, we'll help you set up your development environment to contribute to the Wikipedia app and get you started!

Using EventLogging and Dashboards[edit]

The Analytics Engineering team will run through setting up EventLogging on your project, testing it on the beta cluster and setting up a dashboard to visualize the results. This is also an opportunity to give feedback to the Analytics Engineering team on pain points along the process and what would make it better. They will also answer questions about the process and if appropriate troubleshoot your EventLogging pipeline. The workshop will last 45 minutes.

Introduction to web accessibility for MW devs[edit]

An introduction to making MediaWiki more accessible. TheDJ will give a brief overview of the why and how of accessible web technology, the basics of using screenreader technology, how to do accessibility reviews yourself, and what techniques to use and to avoid when programming for MediaWiki. If there is anything particular you want to learn about, please do drop me an email. The workshop will last 60 minutes.

Bring headphones if possible

OOjs / OOjs UI[edit]

A primer on using the new OOjs UI framework in MediaWiki.

Language Converter: love it or leave it?[edit]

A discussion on how to best handle the wikis in multiple writing systems, like Chinese (zhwiki) and Serbian (srwiki). There are two proposed options, both of them a lot of work:

  1. Deprecate language converter and split these wikis. Use the Content Translation tool to maintain parallel content.
  2. Add Language Converter support to Parsoid and Visual Editor. Convert hard-to-edit inline conversion dictionaries to Glossaries. Add language/variant tagging and tracking to Visual Editor.

Are there better ways? Are we willing to invest the resources necessary to make one or the other of these happen?

Language and Localization Services[edit]

This session will focus on the feasibility and usefulness of developing new language and localization services for use on Wikimedia projects. Possible topics for discussion include:

  • Expanding the machine translation and annotation mapping services currently available through cxserver and making them more widely available.
  • Developing a secure, internal web service for the collection and distribution of localization resources (e.g., interface message strings) that can be used together with a in-memory cache like APC or memcache to provide easier and more agile localization updates.
  • Script conversion (transliteration) services.
  • Other language and/or localization services.

API ideas[edit]