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

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]

Operations

 * Data Centers
 * Deploy 2nd Transit (internet) network carrier @ EQIAD [Leslie]
 * Lucene Search deployment@EQIAD (parallel test)[Peter/Asher/Jeff][DONE]
 * Lucene Search @ EQIAD rollout [Peter/Asher/Jeff][DONE]
 * New Nagios server@EQIAD [Leslie][done but now upgrading to Icinga][DONE]
 * DB Schema changes - SHA1 requirements for post r1.19 [Asher - still wip][DONE]
 * upload.wikimedia.org@eqiad using varnish (replacing squid)[Mark]
 * Mark has been testing his Varnish hashing redirector (added hashing persistence). Currently upload@eqiad is serving about 10% traffic. Also added 8 more varnish servers (to 16).
 * ESAM router replacement (from Foundary to Juniper) [Mark/Leslie]
 * Fundraising infrastructure buildup@ EQIAD
 * own firewall
 * own payment clusters
 * OTRS Upgrade
 * db9/db10 upgrade (db for etherpad, RT, Bugzilla, ..)
 * Servers Bellin & Blondel are being setup for replication & eventual rollout later this month
 * new UDP2log infrastructure @ EQIAD
 * server Oxygen is ready for Diederik.


 * Swift
 * Prep Swift infrastructure to be ready for 'Originals' (Commons) deployment - Testing [Ben/Aaron]
 * Start seeding SWIFT cluster with Originals


 * Wikimedia Labs
 * New compute node for capacity [Ryan] [DONE]
 * MySQL @ Labs on GlusterFS nodes
 * Labs features rollout
 * Build out LVS in Labs [Ryan/Mark]
 * 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]


 * Data Dumps
 * EQIAD test/parallel runs
 * Test suites for XML Dumps
 * own MQ server

Editing tools

 * Visual editor
 * demo and sandbox to use for CE [Trevor] [DONE]
 * complete backlog on data model [Roan] [IN PROCESS]
 * contentEditable integration [Trevor/Rob] (text nodes, serializer, etc.) [IN PROCESS]
 * UI for contentEditable [Rob] (toolbar, menu, etc.) [IN PROCESS]
 * [May] Finish contentEditable and UI integration
 * [May] Complete data model
 * [May] Complete API for inspector and toolbar
 * [May] Sandbox deployment
 * [June] Release candidate with round tripping.
 * [July] API for pluggable nodes?
 * [July] mediawiki.org deployment of VE
 * Roan is in Europe


 * Parsoid
 * 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]
 * [May] Parsoid-VE integration

Participation and editor engagement

 * Article feedback
 * Abuse filter integration:
 * Testing of one filter on English Wikipedia [DONE]
 * Deployment of multiple filters on English Wikipedia [April 30]
 * Feature this Post, Mark as resolved [April 23]
 * Additional features for oversighters/monitors [April 23]
 * Edit this page - Option 4 ( CTA instead of feedback form)
 * [May] New feedback forms (Alternative versions of Option 1)
 * [May] CTA 4 (Sign up or login) May be deprioritized
 * [May] CTA 5 (Get email notifications) May be deprioritized
 * [May-June] Potential deployment of AFT to broader list of articles on enwp
 * code refactoring
 * scalability
 * support for more browsers and mobile
 * internationalization
 * documentation.


 * Feedback Dashboard
 * Minor changes to support Dario/Giovanni's research [after April 16 PT deployment]


 * Article Creation Workflow
 * Deployment of A/B to x% of new users to English Wikipedia [Date TBD]


 * Page Triage
 * Prototype deployment on English Wikipedia (in parallel with Special:NewPages) [w/o April 9 or 16]
 * Work on NO_INDEX (pending RFC)
 * Curation toolbar (temporary name)
 * Complete first design iteration [April 13]
 * Labs deployment [TBD]


 * Echo
 * Examine hooks into current MW infrastructure
 * Look into PHP default synchronous notifications
 * [June] Build PHP default synch notifications
 * [June] Look into queue based infrastructure extension
 * [July] Start replacing current MW notifications with common notifications infrastructure

Multimedia tools

 * TimedMediaHandler
 * Verify labs is ready for testing (issues with beta on labs) [IN PROCESS]
 * Begin testing on labs setup
 * [May] Final code review
 * [May?] Release


 * [UploadWizard]
 * No current work planned

MediaWiki infrastructure

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

Feature support

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


 * Fundraising
 * Get recurring payments up [IN PROCESS]

MediaWiki infrastructure

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

Internationalization/Localization

 * Internationalization and localization tools
 * Universal language selection UI (for desktop and mobile) [i18n team + UI/UX contractors]; [in progress]
 * Translate extension enhancements [Niklas, Santhosh]
 * Narayam feedback functionality [Santhosh, Amir]
 * Language impact assessment/metrics measurement [i18n team]
 * WebFonts maintenance [Santhosh]
 * Office Hours: Scheduled for next week on #wikimedia-office on Wednesday April 18

Editor Engagement Experimentation (E3)

 * This new team focused on engineering for experimentation around strategies to reverse stagnating/declining participation in Wikimedia’s projects will be effective as of April 16. This team will be a cross-functional team with resources from the Community and Engineering/Product departments tasked specifically with conducting small, rapid experiments designed to improve editor retention. We already know some of the fixes that will solve the editor retention problem, and we're working on those already. The purpose of *this* team will be to identify the fixes we don't yet know about. This engineering team will report to Alolita Sharma with two new software developer positions to be hired in the current fiscal year. See positions for Senior Software Developer (http://hire.jobvite.com/Jobvite/Job.aspx?j=oHDiWfwi&c=qSa9VfwQ)and Software Developer (Front-End).

Product

 * Mobile Navigation product spec [Phil] [DONE]
 * Mobile Article Feedback feature definition [Phil]
 * Minor Editing [Phil]
 * Offline saving [Phil]
 * Advanced Upload Wizard WLM Spec (exploring whether WLM features are desireable/feasible for initial release of mobile photo uploads)

Design

 * Language Selection [Lindsey, consultation with Pau]
 * Upload Basic Workflow [Lindsey]
 * Mobile Navigation [Lindsey]
 * Opt in / Opt out [Lindsey]
 * Upload Wizard [Lindsey]

Mobile Web

 * [Jon, Yuvi, Arthur, Max]
 * New look & feel
 * Full screen search (without preview) [Jon]
 * Prod
 * Footer [Jon]
 * Prod
 * Reference reveal
 * Prod
 * New collapsible sections [Jon]
 * Prod
 * Contact us [Jon+Arthur]
 * Beta
 * Remove dependence on the output buffer in prep for MF -> Core move
 * Begin refactor of MF in prep for core migration
 * Demo lazy loading of article sections

Wikimedia Apps

 * Begin testing GPS API [Yuvi & Max]
 * Wikipedia Android app
 * Release V1.1.1 [DONE]
 * Release V1.2 beta ("the decoupling")
 * Wikipedia iOS app
 * Release V3.1.1 [DONE]
 * Release V3.1.2 Bugfix
 * RC1 [DONE]
 * RC2 [DONE]
 * Release V3.2 beta ("the decoupling")


 * Community discussion about standardizing templates [Amgine]

Wikipedia Zero

 * Digi Malaysia(Telenor) rollout [Preilly+Ops]
 * Futher partner rollouts in Africa

Wikipedia over SMS/USSD

 * WMF Production Rollout for Vumi over Gtalk [Patrick]

Special projects

 * Kiwix on Android
 * Improving performance of openZim PhoneGap plugin
 * ePub Collections extension [Ops+PP]

MediaWiki Core

 * MediaWiki 1.19/Roadmap
 * Postmortem 1.19 after the 1.19 deployment [RobLa] - started at MediaWiki 1.19/Post-deploy retrospective, RobLa to finish later this month


 * MediaWiki 1.19/Roadmap
 * MediaWiki 1.19 tarball release [Sam]


 * MediaWiki 1.20/Roadmap
 * Bi-weekly deployment cycle begins
 * Complete 1.20wmf01 deployment [in progress]
 * Start 1.20wmf02 deployment


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


 * Git/Conversion [Chad/Antoine/Sumana]
 * First release from git mainline development branch
 * See MediaWiki 1.20/Roadmap section above.


 * SwiftMedia
 * Start deployment work on originals


 * Lua scripting
 * Initial embedded Lua interpreter implementation [DONE]
 * Lua-via-shell implementation for third party deployments [in progress]


 * IPv6 support
 * Prepare for IPv6 Launch (June 6th) [Aaron,Mark?]
 * rc_ip schema change to be lumped into 1.19 schema changes


 * MathJax [Brion/TBD]
 * experimental MathJax rendering mode for Math extension almost ready to deploy [Brion]
 * needs IE 6-8 fix

Analytics

 * Report card
 * Prototype first release -- Focus on new UI layer [partial]
 * First April release http://lists.wikimedia.org/pipermail/analytics/2012-March/000003.html [DONE]


 * Log collection pipeline
 * 3 new filters: 2 Wikipedia Zero and one Teahouse filter

TL;DR

 * Wikimedia blog maintenance


 * 'Summer of Code 2012
 * Proposal evaluation and acceptance/rejection, starting community bonding period


 * Bug Squad formation and training

QA

 * Test environment

May 2012

 * General engineering process checkin (IRC)
 * Config backend [Chad]
 * Evaluate WikiFactory from Wikia

Tech Ops

 * Convert Upload cache from using squid to varnish (phase 2)
 * upload.wikimedia.org @ Tampa
 * Swift
 * Swift infrastructure rollout for 'Originals' (Commons) deployment - [Ben/Aaron]
 * Deploy servers for Analytics Cluster
 * Deploy Memcached@EQIAD [Mark]

Features

 * TimedMediaHandler
 * code review of new changes and deployment

MediaWiki Core

 * Superprotection (notes to be copied to wiki somewhere by RobLa or Tim) [Sam?]

QA

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

Mobile / Offline

 * First MobileFrontend feature related to mobile uploads (e.g. media upload beta).

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

Tech Ops

 * Swift
 * Swift replicas @ EQIAD

Mobile / Offline

 * USSD gateway rollout
 * SMS gateway rollout
 * Varnish as default cache for Mobile
 * New article creation
 * Watchlists
 * Diffs
 * Search improvements
 * Kiwix on Android
 * Partner integration (various)
 * Lazy loading articles
 * reduce bandwidth requirements for some users
 * WikipediaZero

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

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