In October, the team worked to finish most of the re-engineering the code design of VisualEditor so that it is more modular and easier to extend. This has involved creating and documenting a number of formal APIs at each point in the architecture, so a developer does not have to understand the entire code base to be able to add new features. The early version of the VisualEditor on mediawiki.org was updated three times (wmf1
), fixing a number of bugs and replacing the entire browser selection and typing models, and much of how the user interface connects with the rest of the code.
-like system, which uses several virtual machines on Wikimedia Labs
, constantly converts articles to HTML DOM and back again to wikitext using the latest version of the Parsoid. For a little over 75% of these articles, this results in exactly the same wikitext, as we intend. For another 18% of these articles, there are some differences in the wikitext, but these are so minor that they don’t result in any differences in the produced HTML structure when it is re-parsed. In the production version
of Parsoid which will attempt to retain original wikitext as far as possible, these minor differences will only show up, if at all, around content that the user edited. Finally, just under 7% of articles still contain errors that change the produced HTML structure. These issues are the focus of the current work in preparation for the December release.
This month, we developed a few final features
for Article Feedback
, which is being tested on 10% of the English Wikipedia. Though our lead developer was loaned out to the WikiVoyage project for most of the month, we deployed a couple improvements to reduce the moderation workload for editors, including: better abuse filters
to automatically disallow swear words; new ways for moderators to filter the feedback page; and a check list to help users request oversight. These and other features can be tested on this sample article feedback page
or on the central feedback page
(please report any bugs on Bugzilla
). We also started to collect new research data to track how moderators use the feedback page
, as well as measure how many readers who post feedback become editors or registered users. Next month, we plan to make a few final improvements to address these findings, as well as complete code re-factoring to improve database performance. Once these tasks are done in coming weeks, we expect to release Article Feedback v5 to 100% of the English Wikipedia by the end of the year, and to other projects in 2013. For more information about this tool, check our project overview
This month, we made a few more improvements to our first release version of Page Curation
, which we deployed on the English Wikipedia in September 2012, with a very positive response from community editors. New features we developed based on their feedback include: showing the number of list items for selected filters; showing a notice when a page is only a few minutes old; and notifying the last reviewer if a page is ‘mark as unreviewed’. We also developed detailed metrics dashboards
for tracking the impact of this new tool. To learn more, visit our introduction page
, watch this video tour
or read this tutorial
. If you are an experienced editor, try out the final version
on the English Wikipedia, and report any bugs on Bugzilla
. We have now ended new feature development for this product and plan to upgrade it again in 2013.
Several bugfixes were deployed to existing improvements, and work began on a new “Agora” extension to make it easier to productise and deploy the team’s work, with Trevor Parscal and Rob Moen taking the lead. Vibha Bamba and Oliver Keyes have begun work on improving the templates that are displayed when the “edit” window is opened.
Editor engagement experiments
In October, the E3 team permanently deployed a confirmation message
for all editors (Extension:PostEdit
) to 16 Wikipedias, including six of the top 10 projects by size, and worked on associated maintenance of the feature. The team also deployed two iterations of tests for a new registration page
), including the beginnings of an API for client-side validation of the sign-up form. In support of current and future work, we deployed the beta EventLogging extension
, a new architecture to replace the older ClickTracking extension
. Last but not least, work started on redesigning the login
and new experiments aimed at onboarding new Wikipedians
MediaWiki infrastructure & Platform support
This month, we expanded our design and development activities for the Notifications project (code-named ‘Echo’), to prepare for a first experimental deployment in early 2013. Fabrice Florin, Howie Fung and Vibha Bamba identified product goals, key features and scope for that first release (see project slides
), and discussed them with team members, including our partners at Wikia. We also created new conceptual models and workflows for different use cases, as well as requirements and wireframes for our first features. Ryan Kaldari and Benny Situ started to develop new types of notifications (e.g. edit reversion, new page review), integrating with Andrew Garrett’s code (e.g. talkpage message, mention), with support from Alex Monk
. Aaron Schulz built a new abstracted version of the JobQueue system to support multiple queuing systems.
2012 Wikimedia fundraiser
Throughout October, the Fundraising Engineering team has been working on the final engineering push before the kickoff of the 2012 fundraiser in November. During testing, performance regressions were noticed across many wikis and geographies. The team, with support from many other groups, has identified and is attempting to resolve these issues to enhance not only fundraising, but the overall user experience on Wikimedia sites.
Wiki Loves Monuments App
The mobile team started planning the decommission of the WLM Android app. We’ll be retiring both the app and the back-end infrastructure. During the decommissioning process, our product team will analyze data from the WLM contest and prepare for Commons upload next.
Jon Robson, Brion Vibber, Max Semenik, Arthur Richards, and the product team updated the mobile website
with a new navigation bar, easy beta opt-in settings, new typography, and several bug fixes. The new navigation includes the Main page, a link to a random article, and settings functionality. The article page includes a new ‘Read in another language’ section. This is the biggest and most ambitious visual change that the mobile team has ever attempted. The new design will open the gates to new functionality by building on a cohesive new navigational infrastructure.
This month, we’ve launched Wikipedia Zero with dtac Thailand and STC Saudi. We’ve also enhanced some diagnostics to inform the users of Zero if they are not using a known partner IP address. We continued to talk with potential new partners and made internal improvements to simplify the configuration process.
We’re finishing up the final testing of the Wikipedia J2ME application. We moved from testing on a variety of phones to reviewing on the reference hardware devices. Final approval is expected in early November.
Wikipedia over SMS & USSD
The team focused on diagnostics and debugging prior to an initial launch with a partner. We’re seeking to hire an engineer
specifically to work in this area.
GeoData Storage & API
GeoData has been rewritten to support spatial searches via Solr; we are working with the Operations team to prepare for deployment.
Windows 8 app
- Brion Vibber released a native Wikipedia application for Windows 8. This app was not part of the regular Wikimedia product roadmap; instead, it was the result of a 1-day iteration that each team member gets for research time.
Mark Hershberger has released a release candidate of the 1.20 tarball.
We started the MediaWiki 1.21 series this month. We deployed MediaWiki 1.21wmf1
to all wikis, and started to deploy 1.21wmf3
. 1.21wmf2 contained a number of significant features: ContentHandler code necessary for supporting Wikidata, high-resolution image support, some refactoring of the CologneBlue skin, and a new “Sites” back-end (also used by Wikidata).
Many more extensions are now replicated from Gerrit to the MediaWiki account on GitHub
. Gerrit 2.5rc1 and rc2 were released over the course of October, and a final 2.5 is expected soon. One particularly exciting feature in Gerrit 2.5 is the new extensibility framework, which will allow us to replace our gitweb based source browser
(the latter being a far more usable code browsing option). Assuming a showstopper bug with LDAP propagation gets fixed, we’ll be able to deploy Gerrit 2.5 shortly after its release, and GitBlit shortly after that.
The deployment of MediaWiki 1.21wmf2 was an important prerequisite to the deployment of Wikidata to the Wikimedia cluster. Chad Horohoe, Sam Reed, Daniel Zahn, and Mark Bergsma have been putting together the pieces to deploy a wiki to wikidata.org, which happened on October 30
The extension review
is almost finished, and we’ve got an internal test setup on Wikimedia Labs that we’ve used to test imports and extensions. We’ve finalized the account migration strategy
and started implementing it. We’ve developed a draft agreement with Wikivoyage e.V. about the transfer of the domain names. The Wikivoyage e.V. members are currently voting to approve the migration
. It’ll be final on Friday, after which point we can transfer wikivoyage.org to Wikimedia. Our current goal is to do the actual migration next week.
At the beginning of October, we had our new Swift distributed file storage cluster in production, with copies of all original media also being made to an NFS server (ms7) that was destined to fill up in the month of October. Our original plan was to shut off copying to ms7 and rely solely on the Swift cluster. Because of hardware issues with the Swift cluster, we decided we couldn’t afford to switch off the copying of files to an NFS backup. We migrated the contents of ms7 over to a much larger NFS server (nas1), and configured nas1 to be the new live backup for images. We plan to remain in this configuration for the foreseeable future as we stabilize our distributed file store.
Tim Starling committed changes to our implementation of libxml to use the PHP memory allocator, rather than using malloc (the C standard for allocating memory directly managed by the operating system). This will allow us to have per-page limits on the complexity of pages in a way that more closely mirrors their impact on our cluster.
Admin tools development
The team made some progress on writing an interface for Stewards to mass-lock user accounts
, but spent most of their time on Wikidata
ahead of its launch, and the Wikivoyage migration
Security auditing and response
The team continued to respond to and fix reported vulnerabilities. They worked on improving the release process for security updates to supported versions of MediaWiki, and provided significant security reviews of extensions for Wikivoyage and Wikidata.
QA and testing
Newly hired Michelle Glover and Željko Filipin will be testing software and working on browser-level test automation for both mobile and web platforms. Željko has particular expertise in automated testing and will be joining Antoine Musso and Timo Tijhof in the Netherlands for a “Continuous Integration Summit” in conjunction with Wikimedia Nederland Hackathon 2012
The MediaWiki configuration on the beta cluster has still a few remaining live hacks that prevent it from being upgraded smoothly. The final bits have been tracked down
and will need a final sprint.
The continuous integration server has been upgraded to Precise, which will let us install more recent versions of various testing software. This upgrade also made it possible to deploy Zuul in production.
QA Engineer Željko Filipin has made great improvements to the existing automated browser tests and has created some new Mobile tests as well. Mobile QA Engineer Michelle Grover is creating an automatable regression test suite for MobileFrontend. These tests are currently running as builds under a hosted instance of Jenkins, with the intention of moving them to the WMF Continuous Integration environment pending upgrades to the machines hosting gerrit and Jenkins.
Kraken (Analytics Cluster)
The Analytics team has been working on: configuring and puppetizing CDH4 (Hue, Sqoop, Oozie, Zookeeper, Hive, Pig), configuring and puppetizing Kafka, benchmarking performance, drafting metadata schemas, setting up ganglia monitoring, setting up prototype pixel service endpoint, and running ad-hoc data queries for fundraising.
The migration to d3 rendering was completed. The design for the new Edit UI is complete. We are porting over the monthly metrics meeting dashboard to the new Limn and are aiming to show it off in December.
Contractor Stefan Petrea has worked on bug fixes in wikistats, which we also migrated to git. On the udp2log front, we added features in udp-filters and webstatscollector, and deployed a new banner impression filter.
New Bug Wrangler Andre Klapper
had many discussions with different stakeholders to get a better impression of how work is done, how people interact with the bug tracker, what the expectations are and what policies might be needed. He investigated the product/component organization within bugzilla, started triaging incoming and older reports, and did maintenance work (creation and partial cleanup of products and components). bugzilla.wikimedia.org was upgraded to 4.0.8 with the help of Daniel Zahn, and investigations started to determine how urgent an upgrade to 4.2 was with regard to functionality improvements. Plans for the next month include improving documentation on bug management and bug triaging, and describing interactions between the bug wrangler and the different teams.
Summer of Code 2012
The Wikimedia engineering community continues to help the 2012 GSoC students improve their projects towards the goal of release and deployment. Sumana Harihareswara aims to lead a postmortem discussion in November. Rob Lanphier and Sumana attended a GSoC Mentors’ Summit in October, and discussed mentor recruitment
, community metrics
, how to be more effective mentors, student selection strategies
and code review tools, and other related topics. As a follow-up to Summer of Code, the MediaWiki community is discussing whether to participate in Google Code-In
This activity was revived as its scope was expanded to include not only on-wiki engineering project documentation, but more generally the improvement of communications between Wikimedia contributors and the technical community (MediaWiki developers, Operations engineers, etc.). Guillaume Paumier
prepared and started a wide and open discussion with editors on some local wikis to identify issues and discussion possible solutions. Management is currently reviewing options to determine the direction this activity will follow in future months.
Volunteer coordination and outreach
continued to follow up on contacts (such as those gained at October’s Grace Hopper Celebration of Women in Computing), recruit new contributors to the Wikimedia tech community, and mentor newer contributors. She granted developer access
and Gerrit project ownership requests
, and worked on getting more volunteer developers +2
status in MediaWiki core: 8 volunteers now have MediaWiki core maintainership. Sumana also published a retrospective of the 2012 Berlin Hackathon
and updated the list of towards a better understanding of which parts of the codebase are maintained, and by whom. Hiring for a Volunteer Engineering Coordinator to work on volunteer coordination and outreach is almost finished.