MediaWiki Developer Summit 2015

Monday, January 26 and Tuesday, January 27, 2015

Mission Bay Center

[http://www.openstreetmap.org/node/2342299368 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.

Registration
Registration is closed! Please email rfarrand@wikimedia.org 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
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 rfarrand@undefinedwikimedia.org with their email address and a short written recommendation.

Venue
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, or
 * Bus 10 from 2nd & Howard to 17th & Connecticut

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, or
 * Bus 10 from Sansome & Clay to 17th & Connecticut

Schedule
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

 * 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

 * 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

Tuesday, January 27

 * 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.

Topics
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.

VisualEditor
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
The Frontend standards group can present their work so far. Mustache, OOjs, future directions.

Desired attendees: Frontend standards group

Principles for object-oriented architecture
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
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
To discuss RESTBase, and public and private content APIs.

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

Push notifications
PuSH, Atom, SyncML. Federation, syndication.

Desired attendees: Daniel Kinzler, Ori Livneh, Mark Bergsma

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

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

Installation and deployment
Dependency management, composer integration.

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

Structured data & search
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
How should members be selected? What role should the architecture committee have?

Desired attendees: Architecture committee

Extension management
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
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
Monday 26 January 3:30 Conference Room 2, T86050 How do we meld the two? What would the ideal Data and developer hub look like?
 * We generate documentation from code in git onto http://doc.wikimedia.org
 * We write documentation wiki pages on mw.org at Manual:Contents and elsewhere

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.

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.
 * 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 doc.wikimedia.org?

BounceHandler extension to handle email bounces
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:
 * VERP and BounceHandler
 * Typical mail relay week (very variable)

Interested:
 * 01tonythomas (talk)
 * Legoktm (talk)

Real-time collaborative editing
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?
 * cscott
 * --Mglaser (talk)

Offline content
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.
 * cscott

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

Thumbnailer as a service
Split out the image thumbnailer code into a separate service, implemented in PHP.
 * cscott

Convert extensions to use new Config features
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!
 * Legoktm (talk)
 * Yurik (WMF) (talk)
 * Mattflaschen (WMF) (talk)
 * Parent5446 (talk)
 * Addshore (talk)
 * -— Isarra ༆
 * --Mglaser (talk)
 * your name here
 * and here

Update bots to handle Flow boards
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.
 * SPage (WMF) (talk)
 * Mmullie (WMF) (talk)
 * Mattflaschen (WMF) (talk)
 * Addshore (talk)
 * Quiddity (WMF) (talk)
 * BSitzmann (WMF) (talk)
 * your name here
 * and here

MediaWiki-Vagrant Install Party
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.
 * BDavis (WMF) (talk)
 * Yurik (WMF) (talk)
 * KMistry (WMF)
 * -— Isarra ༆
 * --Mglaser (talk)
 * MZMcBride (talk)

Using Graphs
How to use Graph extension on MediaWiki
 * Yurik (WMF) (talk)
 * I have a potential use case in mind where I'd like to try graphs. --Nikerabbit (talk)
 * MZMcBride (talk)

Lua for fun and profit
Research options to use Lua for data pre-processing (e.g. for Graphs), or custom actions.
 * Yurik (WMF) (talk)
 * Duesentrieb ⇌
 * Mattflaschen (WMF) (talk)
 * MZMcBride (talk)

Using Elasticsearch
Introduction to Elasticsearch at Wikimedia. We'll do a quick high level look at how Elasticsearch is setup as a service at Wikimedia and the ways you can talk to it (RESTful API, Elastica library provided in MediaWiki). We'll then work as a group to try and prototype a basic extension fetching some data from this service. Recommended that you already have MW-Vagrant setup so you can just enable the CirrusSearch role to start hacking
 * ^demon[omg plz]
 * Parent5446 (talk)
 * -— Isarra ༆ (if this happens after the installation one)
 * MZMcBride (talk)
 * Yuvipanda (talk) 12:24, 14 January 2015 (UTC)
 * BSitzmann (WMF) (talk)

Developing mobile apps!
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!


 * Dan Garry, Wikimedia Foundation (talk)
 * BSitzmann (WMF) (talk)
 * DBrant (WMF) (talk)
 * Addshore (talk)

Using EventLogging and Dashboards
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.
 * KLeduc (WMF) (talk)
 * Dan Garry, Wikimedia Foundation (talk)
 * Grace Gellerman
 * Marcel Ruiz Forns
 * Halfak (WMF) (talk)
 * Pau Giner
 * Jared Zimmerman (WMF)

Introduction to web accessibility for MW devs
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.
 * —Th e DJ (Not WMF) (talk • contribs)
 * Quiddity (WMF) (talk)
 * -— Isarra ༆
 * MGalloway (WMF) (talk)
 * --Elitre (WMF) (talk)
 * MZMcBride (talk)
 * Pau Giner
 * BSitzmann (WMF) (talk)

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

Language Converter: love it or leave it?
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?
 * cscott
 * BSitzmann (WMF) (talk)
 * JSahleen (WMF)

Language and Localization Services
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.
 * JSahleen (WMF)

Contact
Organizer: rfarrand@undefinedwikimedia.org