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

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]

Tech Ops

 * db9/db10 upgrade (db for etherpad, RT, Bugzilla, ..)
 * Servers Bellin & Blondel are being setup for replication & eventual rollout later this month [PY - Blondel is done. Bellin has h/w issue]
 * upgrade & complete all EQIAD db slave replication [Asher/PY ][DONE]
 * Swift
 * MW writing thumbnails to SWIFT in addition to existing ms5 [Aaron/Ben - done][DONE]
 * Swift infrastructure rollout for 'Originals' (Commons) deployment - http://wikitech.wikimedia.org/view/Swift/Deploy_Plan_-_Originals [Ben/Aaron]
 * Deploy servers for Analytics Cluster [DZ] [DONE]
 * ESAM router replacement (from Foundary to Juniper) [Mark/Leslie]
 * Prep infrastructure stack to be ipv6 ready
 * LVS
 * squid
 * dbschema [Asher] [DONE]
 * Fundraising infrastructure buildup@ EQIAD
 * own firewall
 * provision payment clusters
 * OS (Lucid)/Security patch train
 * Database servers [DONE]
 * ESAM caching center [DONE]
 * Squids (TPA/EQIAD)
 * Apache/Memcached (TPA/EQIAD)
 * Varnish (TPA/EQIAD)

---
 * Wikimedia Labs
 * New compute node for capacity [Ryan] [DONE]
 * Labs features rollout
 * Upgrade GlusterFS [DONE but did not solve performance problem]
 * Create squid instance in Labs [Ryan/Sara]
 * Add resilience to Lab Controller service by building redundant Controller services in EQIAD which includes DNS, LDAP, MySQL [Sara]

Editing tools

 * Visual editor
 * Burn up for June release [DONE]
 * Backlog on Data Model/Linear Model [Roan] [DONE]
 * On-boarding James to PM project
 * Transaction Processor [Roan/Trevor] [IN PROCESS]
 * Document Synchronizer [Roan]
 * Finish contentEditable Linear Model integration [Trevor/Rob] (text nodes, serializer, etc.) [DONE]
 * HTMLConverter [Christian] [IN PROCESS]
 * UI: Node Trees [Trevor] [IN PROCESS]
 * Finish UI integration for contentEditable [Rob/Christian/Inez] (Surface Model, menu, etc.) [IN PROCESS]
 * UI: Toolbar [Rob] [IN PROCESS]
 * UI: Link inspector [Rob]
 * mediawiki: in-place editing integration [Rob]
 * [End of May] Sandbox deployment
 * Parsoid
 * Parsoid refactor [DONE]
 * Try to nail down as much of the bugs on the todo in order to get a testing model (template/parser function/table/attribute)[Gabriel] [IN PROCESS]
 * Get VE round-tripping info, source, tracking, RFDa (annotations) [Gabriel] [IN PROCESS]
 * Start Parsoid-VE integration

Participation and editor engagement

 * Article feedback
 * Deploy of multiple filters on English Wikipedia [DONE]
 * Deploy centralized feedback page (CTA5) [IN PROCESS]
 * Deploy Metrics Stage 4 [IN PROCESS]
 * Final feedback form [IN PROCESS]'


 * Feedback Dashboard
 * Final research report [late May]


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


 * New Pages Feed (fka Page Triage)
 * Prototype deployment on English Wikipedia (in parallel with Special:NewPages) [DONE]
 * Increase visibility of Special:NewPagesFeed (e.g., notice on Special:NewPages) [DONE]
 * Bug Fixes [Ongoing]
 * Work on NO_INDEX
 * Curation toolbar [IN PROCESS]
 * Continue design iterations [DONE] (tweaks expected)
 * Labs deployment [May 22 target]


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


 * Misc EE
 * CR on AbuseFilter and Moodbar (Andrew) [IN PROCESS]

Multimedia tools

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


 * UploadWizard
 * Deploy copy metadata feature [DONE]
 * Review and deploy round of fixes and improvements
 * First round review [DONE]
 * First round deploy [pending]

Feature support

 * Wikipedia Education Program
 * Complete testing in Wikimedia Labs and incorporate community feedback - http://education.wmflabs.org/ [Jeroen, QA via Chris] [IN PROCESS]
 * Start final code review of changes


 * Fundraising
 * Get recurring GlobalCollect up [DONE]
 * Burn up chart for next round of Fundraising [DONE]
 * Git migration deployment [IN PROCESS]

MediaWiki infrastructure

 * Gadgets 3.0
 * Includes review of Salvatore's "Gadgets user preferences" work


 * ResourceLoader
 * Gadgets 2.0 deployed after MW 1.19 (dependent on REL1_19 schedule) [IN PROCESS]
 * [June/Hackathon] Set up a first working setup in WMF labs [Roan, Timo] [IN PROCESS]


 * FlaggedRevs/maintenance
 * Resource allocation to support bugs/features that come from enwiki [Matthias, Aaron, James] [DONE]

Core

 * Mobile Navigation [Lindsey, Phil, Jon]
 * Initial Main Menu and Action bar prototype [DONE]
 * iOS/Android Mobile Web to complete prototype/beta [DONE]
 * Article Action bar 2nd steps [DONE]
 * Main Menu 2nd steps [DONE]
 * Wireframes for browser and iPhone app variations [DONE]
 * Sliding Article Action bar [DONE]
 * Language Selection [Lindsey, consultation with Pau]
 * Continue drafting long term language selection options
 * Mobile support in MediaWiki core [Arthur, Max, Patrick]
 * Continue work and bugfixes
 * Metrics [Phil, Andre]
 * Finalize Mobile Breakdown [DONE]
 * Publish county level mobile stats [IN PROGRESS]
 * Publish Wikipedia Zero stats [BLOCKED]
 * Mobile Content API
 * Formatted main page

Mobile Web

 * Contact us [Jon, Arthur, Phil, Philippe]
 * Philippe and the community team assess beta from for feature completeness [DONE]
 * Prod Deployment (21 May, 2012) [DONE]
 * Bug fixes for new intermin nav [DONE]
 * Mobile default for sibling projects [Arthur, Patrick, Asher]
 * Assessment of what needs to be done [DONE]
 * Create reports for sibling mobile traffic [Phil] [DONE]
 * Build out migration calendar [DONE]
 * Code redirector changes [BLOCKED]
 * Improved Mobile Device Detection [Patrick, Diedrik, Tomasz]
 * Deploy JS test for Apache Device Map

Apps

 * Wiki Loves Monuments [Yuvi, Brion]
 * Basic prototype [DONE]
 * Re-do project page [DONE]
 * Decide on metrics
 * Finalize wireframes
 * Begin implementation [DONE]
 * Wikipedia App [Yuvi]
 * Release v1.2 completing decoupling the app from Mobile Frontend and making it fully API driven
 * beta1
 * iOS [DONE]
 * Android [DONE]
 * beta2
 * iOS [DONE]
 * Android [DONE]
 * Market (Beta) [DONE]
 * Market (Production)
 * iOS
 * Android
 * Begin work on v1.3 to test PhoneGap 1.6.1 [INPROGRES]

Alternate Access

 * SMS & USSD [Patrick]
 * Pilot test with Jabber [BLOCKED]
 * Wikipedia Zero [Patrick, Dan]
 * Continue partner testing
 * Telenor Launch (DigiMalaysia) [DONE]
 * J2ME App [Tomasz, Patrick, Kul]
 * Legal Review [IN PROGRESS]

MediaWiki Core

 * Lua scripting
 * Return value expansion [DONE]
 * Providing access to the frame object to Lua [DONE]
 * Test cases [ongoing]
 * Tutorial [ongoing]
 * Bugfixing and polish [ongoing]
 * MediaWiki 1.20/Roadmap
 * Bi-weekly deployment cycle continues
 * Complete 1.20wmf02 deployment [DONE]
 * Complete 1.20wmf03 deployment [ongoing]


 * Continuous integration
 * Complete beta labs so that it's suitable/trusted for testing (target completion in May) [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] (move to June?)


 * Git/Conversion [Chad/Antoine/Sumana]
 * Upgrading to Gerrit 2.3 + Gerrit bugfixing [done]
 * Moving more projects to Git [Chad - ongoing]


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


 * CentralAuth
 * Bugfixing [Chris Steipp] [ongoing]


 * Memcache client replacement [Tim Starling]


 * IPv6 support
 * Prepare for IPv6 Launch (June 6th) [Aaron, Mark, Chris Steipp]
 * rc_ip schema change [need to investigate if this is needed for June 6] [DONE]
 * other schema changes [DONE]


 * MathJax [Brion/TBD]
 * Site-wide enabling as opt-in preference [Brion/Aaron] [DONE]
 * Fix remaining major bugs [Brion]

Analytics

 * Report card
 * Automate deployment on labs
 * Pagebreaks when printing
 * Copy permalink per graph
 * Browse graphs
 * Added target for mobile site views

Engineering Community Team

 * Start Summer of Code 2012 students [Sumana]


 * Prepare tutorials for Berlin Hackathon 2012 [Sumana, Danielle Benoit]


 * Wikimedia blog maintenance [Guillaume]


 * Bug Squad training and growth [MarkH]


 * Continuing incoming bug triage [MarkH]

QA

 * 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


 * Volunteer tester event with OpenHatch June 9.

Internationalization/Localization
- Implementation of iteration 1 of proposed design [i18n team + UI/UX (Pau, Arun)] [DONE] - Review session of ULS prototype on May 10 [i18n team + UI/UX (Pau, Arun)]; [DONE] - UX tests for first prototype [Pau, Siebrand (Dutch), Alolita (Hindi) [DONE] - 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: Requirements completed by product team. Development underway. [IN PROGRESS]
 * Metrics measurement: Dario Tarborelli is leading the discussion to identify analytics requirements for impact measurement for these experiments. The development team (Ori Livneh) is evaluating the clicktracking extension and enhancements that need to be made. [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

Mobile Web

 * Deploy v1 Mobile nav

App

 * WLM App beta relase

Participation and editor engagement

 * Article feedback
 * Deploy streamlined version of Option 1 [June 4]
 * [June] Complete development of features for AFTv5
 * [June] Potential deployment of AFT to broader list of articles on enwp
 * [June] Refactoring of code
 * [July] Final features for enwp release: browser support, i18n, mobile …


 * New Pages Feed
 * Deploy curation toolbar to enwp [TBD]

Platform

 * Prepare IPv6 support for IPv6 Launch (June 6th)
 * 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
 * GitHub mirroring (one-way read-only mirror, no pull requests)
 * Replicated session handling [Tim Starling]

Engineering Community Team

 * Summer of Code 2012
 * midterm evaluations


 * blog maintenance [Guillaume]


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


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


 * Bug wrangling [Bug wrangler]

QA
...
 * Volunteer tester event 9 June, with OpenHatch [Chris]

Analytics

 * May
 * Release 0.95 Reportcard (mid-May)
 * First of 4 analytics machines will come operational
 * Configuration / installation of Hadoop-based and Cassandra based Analytics stack
 * Write documentation analytics cluster setup
 * Start of comparing Analytics stacks
 * Deployment Wikipedia Zero filters [May 9]
 * Sanitizing webstatscollector / udp-filters
 * Integration new mobile stats in stats.wikimedia.org


 * June
 * Release 1.0 Reportcard: targeting June Metrics Meeting [June 7]
 * Continuation of comparing Analytics stacks
 * Additional 6 machines become operational
 * Expect delivery of additional hardware
 * Reportcard 1.1 release (Metrics Meeting July)

Tech Ops

 * Swift
 * Swift replicas @ EQIAD
 * Rebuild Search Cluster@Tampa
 * Fundraising infrastructure buildup@ EQIAD
 * deploy payment clusters
 * deploy applications
 * Deploy Memcached  @TAMPA [Mark/Asher]

Mobile / Offline

 * Mobile Article Feedback feature definition [Phil]
 * Minor Editing [Phil]
 * Offline saving [Phil]

Features

 * Affiliation tools for WikiProjects [build on GlobalProfile]
 * 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
 * Help features
 * Mentoring features
 * Other real-time features, chat
 * Dependent on MediaWiki 1.20 deployment date, ResourceLoader 2 -- mostly the Gadgets-extension work which is (as of Feb 2012) in a branch.
 * Gadgets 2.0?

Platform / Dev-Ops

 * Configuration management overhaul [Chad]
 * Evaluate WikiFactory from Wikia
 * Extension management -- depends on config mgmt revamp

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

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


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