Wikipedia:Wikipedia Signpost/2015-06-24/Technology report

This past week saw the kick-off of the 2015 MediaWiki architecture focus of improving our content platform. The architecture committee identified three main areas needing improvement: More details are available in the announcement email.
 * Storage: To better separate data from presentation, we need the ability to store multiple bits of content and metadata associated with each revision. This storage needs to integrate well with edits, history views, and other features, and should be exposed via a high-performance API.
 * Change propagation: Edits to small bits of data need to be reliably and efficiently propagated to all content depending on it. The machinery needed to track dependencies should be easy to use.
 * Content composition and caching: Separate data gives us the freedom to render infoboxes, graphs or multimedia elements dynamically, depending on use case and client. For performance and flexibility, it would be desirable to assemble at least some of these renders as late as possible, at the edge or on the client.

Multimedia roadmap announced
Mark Holmquist, the lead engineer of the Multimedia team, announced this week a change in the strategy of the upload tool they are planning to develop. The new plan involves moving the upload API logic into MediaWiki core and creating an interface for uploading files directly from VisualEditor. A heavily summarized roadmap for the team is:
 * A mw.Api.plugin.upload JavaScript API to automatically detect what methods are available for the browser, take a File object or file input, and perform the upload
 * Tie together the various JavaScript parts into an Upload object or similar in core, so we can handle it with relative ease in our mostly-UI extension
 * An upload OOUI widget can then just use all of those things, and it can live in VisualEditor instead of having to be across a couple of extensions.

Syntax highlighting overhaul
The GeSHi library used by MediaWiki for syntax highlighting was mostly unmaintained and had a significant performance impact for all page views due to the number of stylesheets it contained. It is being replaced by Pygments, which brings support for 492 new languages, and is more actively maintained. We will lose support for 31 smaller languages, most of which are rather obscure. A full list of language changes is available here. From a performance perspective, this will decrease the amount of time that pages take to load and render (including those that don't use syntax highlighting at all!), but will increase the time it takes to save articles with syntax highlighting by about a tenth of a second. More details are available in the announcement.