Roadmap

Background: In recent years, Wikimedia Foundation's engineering planning has primarily taken place in a combination of internal goals documents and public project-level documentation. The purpose of this page is to establish a practice of sharing holistic engineering goals, initially primarily with a short term horizon, as a public document with open participation.

See also:
 * Product Whitepaper for Wikimedia Foundation product priority justifications; Strategic Plan for long-term WMF  goals, some of which are engineering goals
 * Roadmap/Archive for an earlier effort to create a roadmap more focused on point releases of the MediaWiki software

Previous months:
 * /2011/September
 * /2011/October
 * /2011/November
 * /2011/December
 * /2012/January
 * /2012/February
 * /2012/March
 * /2012/April
 * /2012/May

Item syntax:
 * Project name
 * [Qualifier keyword] Action item [Owner(s)] [Completion keyword]

Examples:
 * New unicorn engagement
 * [Needs consensus] Deploy unicorns [Brion/Tim]
 * Deploy unicorns [Brion/Tim] [DONE]

TechOps

 * IPV6 rollout [Mark, Asher, Faidon, Ryan] - [DONE]
 * SWIFT software stack upgrade [Ben] - wip
 * SWIFT Originals [Ben/Aaron] - delayed
 * Precise build of Apache [Peter] - done; puppetizing it now.
 * Convert External Store databases (text) from Myisam engine to Innodb - [DONE]
 * rollout download of  tarballs of media for their particular   [DONE]
 * Test Varnish new enhancement (persistent & streaming) [Mark]
 * Pybal automatic failover for ipv6
 * * Refactor PyBal to include BGP support for ipv6 [Mark] [DONE]
 * * rolllout- limited rollout (on 1 lvs server in EQIAD)
 * Fundraising infrastructure buildup@ EQIAD
 * own firewall
 * provision payment clusters


 * Labs
 * replace GlusterFS with local file system [Ryan] - wip
 * stress test Ceph as a potential replacement for GlusterFS - wip
 * add new compute nodes - to reduce memory swapping [Chris, Faidon, Ryan]
 * add redundant Lab Name Server - [DONE]

Editing tools

 * Visual editor
 * Limited release onto MediaWiki [DONE]
 * more thinks off the todo list [Trevor, Rob, Roan, Christian, Inez] [ONGOING]
 * mediawiki: in-place editing integration [Rob]
 * [Aug] API for Visual Editor (via 2 extensions/templates support)
 * Parsoid
 * Parsoid-VE integration [DONE]
 * Bug fixes to pass tests on Parsoid [ONGOING]

Participation and editor engagement

 * Article feedback
 * Deploy Metrics Stage 4 [IN PROCESS]
 * Final feedback form [DONE]
 * [June] Complete development of features for AFTv5 [IN PROCESS]
 * [July] Release on 10% of enwp (+refactor of db) [IN PROCESS]
 * [Jun-Jul] Refactor AFTv5 [IN PROCESS]
 * [July] Final features for enwp release: browser support, i18n, mobile …


 * New Pages Feed (fka Page Triage)
 * Curation Toolbar
 * Finalize design, including review of interaction model [DONE]
 * Dark launch curation toolbar to enwp [DONE]
 * Continue to add features to curation toolbar (deletion tags) [IN PROCESS]


 * Feedback Dashboard
 * Final research report [week of 6/25]


 * Echo/Flow
 * Examine hooks into current MW infrastructure for notifications [DONE]
 * Build PHP default synchronous notifications [Andrew] [IN PROCESS]
 * Finalize decision on LQT3 [Andrew]
 * Look into queue based infrastructure extension [IN PROCESS]
 * [July] Start replacing current MW notifications with common notifications infrastructure

Multimedia tools

 * TimedMediaHandler
 * Deployment Prep [IN PROGRESS]
 * Complete testing [IN PROGRESS]
 * Final code review of new changes and deployment onto Wikimedia Foundation sites
 * [TBD] Release


 * UploadWizard
 * Review and deploy round of fixes and improvements
 * First round deploy [pending]

Feature support

 * Wikipedia Education Program
 * Final code review of changes [DONE]
 * Deploy Extension [DONE]
 * DIYBox solution [IN PROCESS]
 * take input on impact of Education Extension in future (namespace, separate wiki, etc)


 * Fundraising
 * Git migration deployment [IN PROCESS]

MediaWiki infrastructure

 * FlaggedRevs/maintenance
 * Bugfixes based on enwiki deploy [ONGOING]


 * Sharding
 * Start mapping out sharding cluster [Aaron] [IN PROCESS]
 * Document sharding process and design

Core

 * Start testing Apache DeviceMap [IN-PROGRESS]
 * Continue work on core migration
 * Mobile default for sibling projects [Arthur, Patrick, Asher]
 * Community outreach [Phil] [DONE]
 * Move first batch - Wiktionary, Wikinews, Wikisource [Patrick] [DONE]
 * New Mobile UI
 * Develop language selector [DONE]
 * Develop one of the following add to watchlist, saved pages, or contrib history
 * Deploy MF with Resource Loader
 * Deploy Dynamic sections
 * Done in app [DONE]
 * Deploy GeoGPS extension

Apps

 * Wiki Loves Monuments [Yuvi, Brion]
 * Decide on metrics [IN-PROGRESS]
 * Release first testing version
 * Early alpha [DONE]
 * Finalize WLM db updates [DONE]
 * Wikipedia App
 * Release to Google Play [DONE]
 * Release to iTunes Connect [DONE]
 * Wiktionary App
 * Publish to Google Play store [DONE]
 * Blog post [DONE]
 * Capture review feedback [DONE]

Alternate Access

 * Begin work with Praekelt foundation on SMS/USSD
 * Begin work with Openpath on J2ME Wikipedia App
 * Release first testing version

MediaWiki Core

 * Lua scripting
 * Test cases [ongoing] [DONE (for now)]
 * Bugfixing and polish [ongoing] [DONE (for now)]
 * Documentation [ongoing]


 * MediaWiki 1.20/Roadmap
 * Bi-weekly deployment cycle continues
 * Complete 1.20wmf4 deployment [DONE]
 * Complete 1.20wmf5 deployment [DONE]
 * Start 1.20wmf6 deployment [DONE]


 * Continuous integration
 * Complete beta labs so that it's suitable/trusted for testing (target completion in June) [Antoine, Chris] [ongoing]
 * Continue developing framework for integration testing [Antoine, Chris McMahon]
 * possibly Selenium - see Chris's mail to wikitech-l
 * TestSwarm reintegration with Jenkins [Antoine]


 * Git/Conversion [Chad/Antoine/Sumana]
 * Moving more projects to Git [Chad - ongoing]
 * GitHub mirroring (one-way read-only mirror, no pull requests) [started]


 * SwiftMedia
 * Begin deployment work on originals
 * Bugfixing and cleanup on thumbnails [ongoing]
 * Deploy concurrent file operations - rewrite of external CloudFiles library [Aaron]


 * OAuth
 * Continue specification work [Chris Steipp] [ongoing]


 * IPv6 support
 * Prepare for IPv6 Launch (June 6th) [Aaron, Mark, Chris Steipp] [DONE]


 * MathJax [Brion/TBD]
 * Fix remaining major bugs [Brion]


 * Performance
 * Ganglia fixups [Tim]
 * PHP 5.4/Suhosin evaluation [Tim/Asher/Faidon]

Analytics

 * Report card
 * Migration from dygraphs to d3.js [David Schoonover] [in progress]
 * Reorganizing reportcard-data repository [Diederik van Liere] [in progress]'
 * Expose gerrit-stats datasets in reportcard [Diederik van Liere] [in progress]'
 * Getting Dell machines configured by Ops [Diederik van Liere] [in progress]''
 * Move Limn framework to Github [David Schoonover] [in progress]''
 * Reportcard 1.1 release (Metrics Meeting July)


 * Kraken
 * Benchmarking CDH3 and Pig [Andrew Otto] [in progress]
 * Install and Benchmark Cassandra [Andrew Otto] [in progress]''
 * Decide on key characteristics by which to compare CD3, CDH4, DES 2.1 [David Schoonover, Andrew Otto, Diederik van Liere] [in progress]''
 * Blogpost announcing Kraken [Diederik van Liere] [in progress]''


 * Analytics/Pageview logging
 * Adding accept_language and X-Carrier http headers [Andrew Otto] [in progress]'
 * Setup automatic file transfer from Oxygen, Locke, Emery to Stat1 [Andrew Otto]
 * Getting stat1001 configured by Ops [Diederik van Liere] [in progress]''
 * Sanitizing webstatscollector / udp-filters [Andrew Otto, Diederik van Liere] '[in progress]


 * Misc
 * Building collaboration with Apache Devicemap project
 * Writing specs for revtagging

Engineering Community Team

 * Assessing/moving wikitech.wikimedia.org content [Guillaume leading]


 * Wikimedia blog maintenance [Guillaume]


 * Summer of Code 2012 - Sumana
 * midterm evaluations


 * Preparation for Wikimania
 * Helping Wikimedia engineers prepare talks
 * Preparing for hackathon [Sumana, OpenHatch]


 * Tutorials for Berlin Hackathon 2012 [Sumana, Danielle Benoit]
 * Integration of videos and feedback from event [in progress, Sumana & volunteers]


 * Bug wrangling [Bug wrangler]
 * Continuing incoming bug triage [Sumana guiding volunteers]
 * Bug Squad training and growth [volunteers]

QA
[DONE], see bugs filed.]
 * Volunteer tester event 9 June, with OpenHatch [Chris]


 * Improve beta labs so that it's suitable/trusted for testing (target completion in June) [Antoine, Chris]


 * Volunteer tester event (with Weekend Testing Americas) [Chris] [DONE] retrospective

=== Internationalization/Localization === - Prototype Implementation [Santhosh, Arun] [IN PROGRESS] - UX tests on next iteration [Pau]  [IN PROGRESS] - Integration of feedback from UX tests [IN PROGRESS] - TranslationNotifications [DONE] - TranslationMemory (TTMServer) improvements [Niklas] [IN PROGRESS] - Add more languages for onscreen keymaps [Santhosh, Amir] [ONGOING] - Add fonts for more languages [Santhosh, Amir] [ONGOING]
 * Internationalization and localization tools
 * Universal language selection (ULS) project -
 * Translate extension enhancements
 * Narayam updates
 * WebFonts updates
 * Language impact assessment/metrics measurement [i18n team]; [IN PROGRESS]
 * i18n Bug Triage (Monthly) [i18n team] [DONE]
 * Office Hours: Scheduled for next week on #wikimedia-office on Wednesday May 23 [DONE]

Editor Engagement Experimentation (E3)
See job listings for the following positions: (http://hire.jobvite.com/Jobvite/Job.aspx?j=oi7iWfwn&c=qSa9VfwQ)
 * Experiment 1: Timestamp modifications: Deployed first version last week. Patches to be deployed this week.[DONE]
 * Experiment 2: Post-Edit feedback: Development in progress. Bucketing test '[week of 6/25]'''
 * Metrics measurement: Dario Tarborelli is leading the discussion to identify analytics requirements for impact measurement for these experiments. The development team (Ori Livneh) is adding funcationality to the clicktracking extension to support these requirements. [IN PROGRESS]
 * Development team hiring: [IN PROGRESS]
 * Senior Software Developer (http://hire.jobvite.com/Jobvite/Job.aspx?j=oHDiWfwi&c=qSa9VfwQ)
 * Software Developer - FrontEnd (http://hire.jobvite.com/Jobvite/Job.aspx?j=opDhWfwZ&c=qSa9VfwQ)
 * Software Developer - BackEnd

Tech Ops

 * Swift
 * Swift replicas @ EQIAD
 * Swift replaces ms5@tampa
 * Originals (multi-media) on Swift - Tampa
 * Fundraising infrastructure buildup@ EQIAD
 * deploy payment clusters
 * deploy applications
 * Deploy Memcached @TAMPA [Mark/Asher]
 * Limited Apache-on-Precise deployment [Asher/Peter/Mark]

Mobile / Offline

 * Continued work on WLM app
 * Additional Mobile Nav UI Features
 * Evaluate additional features:
 * Mobile Article Feedback feature definition [Phil]
 * Minor Editing [Phil]
 * Offline saving [Phil]

Features

 * Article feedback
 * Increase AFTv5 coverage on English Wikipeida (timetable still in flux, but will start week of July 2)
 * [Jun-Jul] Refactor AFTv5
 * [July] Final features for enwp release: browser support, i18n, mobile …


 * Article Creation Workflow
 * Template changes to draft flow [Mid/Late June]
 * Deployment of A/B to x% of new users to English Wikipedia [Mid/Late June]


 * New Pages Feed (fka Page Triage)
 * Continue developing curation toolbar features
 * Public launch of curation toolbar feature
 * Increase visibility of Special:NewPagesFeed (e.g., notice on Special:NewPages)
 * Additional socialization


 * Re-energize LiquidThreads (rename it?!) (may need refactoring for notification streams)
 * Respond to open design questions
 * Photo/media moderation tools; additional patrolling and moderation tooling


 * ResourceLoader 2 -- mostly the Gadgets-extension work which is (as of June 2012) in a branch.
 * Set up a first working setup in WMF labs [Roan, Timo] [IN PROCESS]
 * "Gadgets 3.0": Includes getting a version deployed/integrated, then a review of Salvatore's "Gadgets user preferences" work, then a merge of Salvatore's work

Platform / Dev-Ops

 * Configuration management overhaul [Chad]
 * Evaluate WikiFactory from Wikia
 * Extension management -- depends on config mgmt revamp
 * Git/Conversion [Chad/Antoine/Sumana]

MediaWiki Core

 * Lua scripting
 * Beef up the labs instance
 * Documentation


 * MediaWiki 1.20/Roadmap
 * Bi-weekly deployment cycle continues
 * Complete 1.20wmf6 deployment


 * Continuous integration


 * Git/Conversion [Chad/Antoine/Sumana]
 * Revisit Gerrit, git-review, and other code review/workflow tools (3 months after the git switch) to see whether to switch to Phabricator or another code review tool [Brion, David, Chad]
 * Replicated session handling [Tim Starling]
 * Memcache client replacement [Tim Starling]


 * SwiftMedia


 * OAuth


 * CentralAuth
 * Bugfixing [Chris Steipp] [ongoing]


 * Memcache client replacement
 * Deploy memcache client to Apaches (RT 3155) - possibly blocked on Precise deployment to eqiad
 * Configuration change (to be scheduled)

Engineering Community Team

 * Running Wikimania hackathon [OpenHatch]
 * Bug Wrangling [Bug Wrangler + volunteers]
 * Monthly report and other engineering communications [Guillaume]
 * Google Summer of Code mentoring & administration [Sumana]

QA

 * Continuing feature testing work [Chris]
 * Beta cluster & Labs improvements [Chris]

Continuous Responsibilities

 * Code review
 * RT review / ops tasks
 * Community extension review and deployment
 * Bug triages and general bug fixes
 * New extension deployment (Review queue)
 * Labs maintenance
 * Test infrastructure maintenance
 * Recruitment and encouragement of volunteers

Platform / Dev-Ops

 * Git/Conversion [Chad/Antoine/Sumana]
 * Finalize decision on Gerrit vs other tools [Brion, David, Chad]

Parking lot and todos

 * Details of git migration (extension mgmt, permissions, code review tool, Gerrit-Jenkins integration, etc.)
 * More work on product backlogs for features and mobile
 * Ops section
 * Fundraising flesh-out
 * cf Wikimedia Platform Engineering and merge as appropriate
 * Namespace hacks for development of simple language wikipedias in languages other than English without server, database, or major wiki installation provisioning
 * Most popular related articles


 * Replicated session handling
 * HipHop deployment (deferred because Facebook has a different shiny new thing)
 * Extension:Configure (merge with config management?)
 * Unicode normalization considerations
 * Schema handling improvements (Abstracted database schema description, schema updaters to make the multiple schema variants for MySQL 4.0 and 5/UTF-8 more maintainable)
 * Parallelizable, restartable dump runner (notes; Clean up the currently fragile externaldump process, make our internal backups more reliable
 * OAI cleanup (Clean up OAI exporter and importer, add time-delay features
 * audit users of OAIPMH and check how search indexing uses it
 * Deletion queue system (notes; Human-helpful process improvements
 * Integrated heuristic checks, improved patrolling (human-helpful process improvements)
 * On-wiki namespace manager (Special:Namespaces) (original wikidata branch specs and see notes)
 * Wikidata (WMDE)
 * BlameMaps (WMDE)
 * graphical UI on top of improved backend for configuration management
 * Various HTTPS support fixes
 * Wikimedia server error page
 * Wikimedia operations history and architecture document


 * Disk-backed object cache
 * DB sharding


 * Help features
 * Mentoring features
 * Other real-time features, chat
 * Affiliation tools for WikiProjects [build on GlobalProfile]
 * Gadgets 2.0?


 * Interwiki transclusion
 * WMF cannot commit the time to merge this.