Berlin hackathon (1–3 June 2012, Berlin, Germany) — The 120 tickets available for this three-day "inreach" hackathon disappeared as the event sold out in April. The Wikimedia technical community, including MediaWiki developers, Toolserver users, bot writers and maintainers, Gadget creators, and other Wikimedia technologists, showed substantial interest in the hackathon. The event, hosted by Wikimedia Deutschland, will mostly involve focused sprints, bugbashing, and other coding, with a few focused tutorials and trainings on Git, Lua, Gadgets changes, security, and performance optimization. Wikimedia Deutschland will also use this event to consult on and discuss the Wikidata structured data project.
Servers — We added additional servers to bits.wikimedia.org in our Virginia data center for network capacity growth and redundancy. We also deployed a new udp2log server (in EQIAD) thus providing added extra capacity to collect new data for the Analytics team.
Search — After months of preparation and refactoring work with our dated Lucene implementation at the Tampa data center, we are glad to report that Peter Youngmeister (with help from Asher Feldman, Robert Stojnic and Jeff Green) successfully built and deployed the new Search infrastructure at our EQIAD data center. The performance improvement is quite amazing, at the 99th percentile level, search latency dropped from a high of 9 seconds to 1 second, and the average search is only 100ms, down from 700ms. In addition, the new infrastructure addresses some of the previous single point of failures and capacity limitations.
Databases — Asher Feldman completed the database migration/upgrade to support SHA-1 hashes in the coming MediaWiki release.
Caching — Varnish is now used in EQIAD to serve all upload (images & media) traffic (other than Europe, which has its own servers). Mark Bergsma implemented Varnish to replace our Squid instances running in Tampa. In addition to having consistent hashing, Mark ran half of the EQIAD Varnish instances with the experimental persistent storage back-end. Unfortunately, after a few days, he found showstopper bugs and reverted it to the stable version.
Networking — A secondary network transit link has been added to our EQIAD network, providing us redundancy and capacity; it comes with IPV6 enabled.
Media Storage [?] — April saw two areas of progress: the MediaWiki code to allow original media storage in Swift was deployed to production (though it is not yet in use), and further investigation into old corrupted objects continued with new evidence and cleanup. During May, we hope to begin the data migration from the older storage system into Swift, and to deploy improved monitoring and metrics.
Wikimedia Labs [?] — A new version of OpenStackManager was released, adding project filters for all interfaces, usability fixes and a number of bug fixes. OpenStackManager and LdapAuthentication were switched to Git, allowing a few more changes to be pushed thanks to being able to keep a stable master branch. Notable changes were per-project sudo management, allowing sysadmins in a project to manage who gets which sudo permissions in a fine-grained manner for their projects, and a change in how groups are added to LDAP for projects. A compute node (virt5) was added to the compute cluster, allowing for another 40 instances of capacity. We had an outage towards the end of the month, again due to glusterfs. We will start looking for alternatives to glusterfs soon. Sara Smollett added per-project ganglia monitoring, displaying resource graphs for instances in projects. Andrew Bogott finished work on a plugin framework for OpenStack Nova, and has added an example plugin for a SharedFS driver, which would allow us to manage gluster volumes via an API.
Data Dumps [?] — The gluster share with the last 5 or so good dumps for all projects is ready for use by Wikimedia Labs projects. A first copy of uploaded media, accessible via rsync, was announced, and some work was done on tine infrastructure to generate downloadable bundles of media per project. We're working with the Internet Archive to produce media bundles that they can host for download as well. A new version of the dump scripts was deployed with some minor bug fixes. Christian Aistleitner wrapped up work on the PHPUnit tests for the dump maintenance scripts, and discovered a problem with the database schema, which we will need to discuss with the user community in order to find a resolution that works for everyone.
There was a short site incident at our Amsterdam site on April 26th at around 6:00 (UTC), which lasted for 30 minutes and impacted some of our European users. We experienced an unusual traffic surge that overwhelmed some resources. That was quickly addressed once we found the cause.
Visual editor — Roan Kattouw and Trevor Parscal are rewriting the underlying data model (ve.dm) to achieve feature compatibility with the parser and correct a variety of problems that have been previously deferred. Inez Korczynski and Christian Williams have been continuing their work to stabilize and integrate the content editable layer (ve.ce) and have been working with Rob Moen, who has focused on getting the user interface elements working with the content editable layer (ve.ui). Gabriel Wicke has been working on improving the parser's ability to parse pages more quickly as well as increasing compatibility with existing features such as thumbnails. A big template-heavy page like Barack Obama can now be expanded in similar time as the production parser (80 seconds on a puny laptop) and 340MB of memory. It previously ran out of memory after consuming 1.6G and running for ~30 minutes.
2012 Wikimedia fundraiser — The fundraising team deployed GlobalCollect recurring functionality, and started transition to using Git and Gerrit for its software development process. They wrote the burn up chart for the next fundraising round. The team is still working on adding staff.
Internationalization and localization tools — The team has completed the first round of UI designs for a Universal Language Selector (ULS) for desktop and mobile. UI/UX team members (Pau Giner and Arun Ganesh) are now implementing a prototype to showcase the first version of ULS. The team also added keymaps for language support to Narayam, added notification support to Translate, fixed bugs, reviewed code for localization support in MediaWiki 1.19, and discussed language support metrics.
Editor engagement experiments — Karyn Gladstone, Steven Walling, Maryana Pinchuk and Ryan Faulkner conducted the Necromancy experiment, emailing lapsed editors to encourage them to edit Wikipedia again. Work on the Template A/B testing project is wrapping up; a full report is expected in May. The E3 team will also be publishing details on each experiment on meta and the English Wikipedia. The technical specifications for each implementation will be posted on mediawiki.org. The team also began recruiting for its open positions; the first software engineer for the team will be joining mid May.
Mobile Contact US — Arthur Richards and Jon Robson finished the first beta version of the new "Contact us" form. It's been deployed to our beta infrastructure and we're collecting user feedback both in and about the tool. We'll be letting this sit for two weeks to collect feedback and then will re-assess for next steps.
Wikimedia Apps — Yuvaraj Pandian released new versions of our Android app and our first ever PhoneGap version of the iOS app. Issues were identified with iOS 4.x and we released an update to fix them. Yuvaraj also continued work on the API move branch. Brion Vibber pushed out a final build of the Wikipedia App to the BlackBerry market, and started experimenting with a Windows mobile version.
MobileFrontend/Photo upload — Development was paused in favor of the new mobile navigation. We explored how to collaborate with Wiki Loves Monuments (WLM), and we have decided that a standalone app for WLM is the best way to go. Our initial development will be for Android, and iOS pending progress. Brion Vibber created a rough demonstration of some of the required features on github.
Wikipedia over SMS & USSD — Patrick Reilly wrapped up work packaging Vumi and we're just waiting on the operations team to install the production system. Next, we'll invite users to test it over Jabber, while we work with our various partners to connect it to mobile phone networks. This will wrap up our initial implementation of this project.
Wikipedia Zero — Patrick Reilly and Dan Foy have continued to support our Zero partner roll-outs. We're testing in new countries and are updating the Zero software as necessary. Due to our partners' confidentiality requirements, we haven't been able to highlight the specific areas where testing is happening. Moving forward, we are going to work with our partners to be able to disclose more.
Mobile QA — We've narrowed down our candidate list and are doing final interviews.
Mobile support in MediaWiki core — Max Semenik has rewritten MobileFrontend to use MediaWiki's skin infrastructure. We're continuing to further remove any Wikimedia-specific code from the extension in preparation for a migration to core. Future work will involve an easy way to create custom output based on the view (mobile, desktop, tablet).
MediaWiki 1.20/Roadmap — As of April 2012, core software deployments to Wikimedia sites are done from git (instead of Subversion) through incremental "wmf" branches. The first deployment of the 1.20 release cycle, labeled 1.20wmf1, was deployed to all Wikimedia sites this month; it notably brought new diff colors for improve readability. The 1.20wmf2 deployment cycle began on April 30. The 1.20.0 stable tarball is expected to be released in fall of 2012.
Continuous integration — Jenkins has been upgraded, providing a nicer GUI. Progress was made on implementing a universal linter for all gerrit changes, and not just those with modified PHP files. The TestSwarm connection with Jenkins has been established, and TestSwarm is now running MediaWiki's QUnit test suite again. Christian Aistleitner created a test suite for the (rewritten) MWDumper system, and the tests are monitored live on Jenkins.
Git conversion — MediaWiki core and all extensions deployed on Wikimedia sites are getting into regular development cycles. The second group of extensions were migrated on April 27. We've also branched and released 1.20wmf1 to most Wikimedia sites. The priorities for Gerrit are currently fixing our UTF-8 problem, improving Gerrit integration with IRC and e-mail, making project/user information morediscoverable, and upgrading Gerrit to 2.3 in the next week or so.
Multimedia — Michael Dale and Jan Gerber are looking into transcoding bugs in TimedMediaHandler. A lot of issues on beta are hardware- or configuration-related (virtual instances are running out of resources) and more hardware will be going online soon. In the meantime, the client-side playback parts of the test plan are being run by Chris McMahon and Tauhida Parveen. Ben Hartshorne and Leslie Carr have been running a script to clean up corrupted thumbnails in Swift. Aaron Schulz has been fixing bugs, and is now focusing on adding concurrent file operation support to PHP cloudfiles (the PHP interface to Swift) and to MediaWiki's FileBackend code. This should help alleviate bug 34717.
Analytics/Reportcard — David Schoonover and Fabian Kaelin continued work on the new Report card, whose prototype is available on Wikimedia Labs. Andrew Otto has been working with the Operations team to puppetize existing services, and to add a third server (Oxygen) to run filters; we are in the process of migrating bayes to stat1. Andre Engels, Erik Zachte and Diederik van Liere have worked on new mobile reports that will be integrated into the new report card.
Summer of Code 2012/management — Wikimedia engineers have chosen nine students for this year's program. For the next few weeks, until May 21st, the students and their mentors are working together to train the students in MediaWiki development, so that they'll have all the basic domain knowledge they'll need to succeed during the summer.
The engineering management team continues to update the Software deployments page weekly, providing up-to-date information on the upcoming deployments to Wikimedia sites, as well as the engineering roadmap, listing ongoing and future Wikimedia engineering efforts.