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]

May 2012

 * General engineering process checkin (IRC)

Tech Ops

 * db9/db10 upgrade (db for etherpad, RT, Bugzilla, ..)
 * Servers Bellin & Blondel are being setup for replication & eventual rollout later this month
 * Swift
 * Swift infrastructure rollout for 'Originals' (Commons) deployment - [Ben/Aaron]
 * Deploy servers for Analytics Cluster
 * Deploy Memcached or equivalent technology (e.g. membase) @EQIAD [Mark/Asher]
 * ESAM router replacement (from Foundary to Juniper) [Mark/Leslie]
 * Prep infrastructure stack to be ipv6 ready
 * LVS
 * squid
 * Fundraising infrastructure buildup@ EQIAD
 * own firewall
 * own payment clusters
 * migrate applications
 * OTRS Upgrade

---
 * Wikimedia Labs
 * New compute node for capacity [Ryan] [DONE]
 * 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]

Editing tools

 * Visual editor
 * Complete backlog on data model [Roan] [IN PROCESS]
 * Finish contentEditable Linear Model integration [Trevor/Rob] (text nodes, serializer, etc.) [IN PROCESS]
 * Finish UI integration for contentEditable [Rob] (Surface View, toolbar, menu, etc.) [IN PROCESS]
 * Complete data model
 * Complete API for inspector and toolbar
 * [End of May] Sandbox deployment
 * [June] Release candidate with round tripping.
 * [July] API for pluggable nodes?
 * [July] mediawiki.org deployment of VE


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

Participation and editor engagement

 * Article feedback
 * Deploy of multiple filters on English Wikipedia [TBD]
 * Deploy centralized feedback page [May 7 est'd]
 * Deploy streamlined version of Option 1 [May 14]
 * [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 …


 * Feedback Dashboard
 * Final research report


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


 * Page Triage
 * Prototype deployment on English Wikipedia (in parallel with Special:NewPages) [May 2]
 * Work on NO_INDEX
 * Curation toolbar [TBD]
 * Continue design iterations
 * labs deployment


 * 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
 * Final code review of new changes and deployment onto Wikimedia Foundation sites
 * [June] Release


 * UploadWizard
 * No current work planned

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]
 * Git migration deployment [IN PROCESS]
 * Burn up chart for next round of Fundraising [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]
 * 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 [IN PROCESS]

Core

 * Mobile Navigation [Lindsey, Phil, Jon]
 * Initial Main Menu and Action bar prototype [DONE]
 * iOS/Android Mobile Web to complete prototype/beta
 * Article Action bar 2nd steps
 * Main Menu 2nd steps
 * Wireframes for browser and iPhone app variations
 * 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]
 * Publish county level mobile stats
 * Publish Wikipedia Zero stats
 * 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
 * Prod Deployment
 * Mobile default for sibling projects [Arthur, Patrick, Asher]
 * Assessment of what needs to be done
 * Create reports for sibling mobile traffic [Phil]
 * Build out migration calendar
 * Migrate
 * 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
 * Decide on metrics
 * Finalize wireframes
 * Begin implementation
 * Wikipedia App [Yuvi]
 * Release v1.2 completing decoupling the app from Mobile Frontend and making it fully API driven
 * beta1
 * iOS [DONE]
 * Android [DONE]
 * Market
 * iOS
 * Android
 * Begin work on v1.3 to test PhoneGap 1.6.1

Alternate Access

 * SMS & USSD [Patrick]
 * Pilot test with Jabber
 * Wikipedia Zero [Patrick, Dan]
 * Continue partner testing
 * J2ME App [Tomasz, Patrick, Kul]
 * Kick off development with contracting house

MediaWiki Core

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


 * Continuous integration
 * Complete beta labs so that it's suitable/trusted for testing (target completion in May) [Antoine, Chris]
 * 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]
 * Upgrading to Gerrit 2.3 + Gerrit bugfixing
 * GitHub mirroring (one-way read-only mirror, no pull requests)
 * 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]


 * CentralAuth
 * Bugfixing [Chris Steipp]


 * Memcache client replacement [Chris Steipp]


 * Replicated session handling [Chris Steipp]


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


 * MathJax [Brion/TBD]
 * Site-wide enabling as opt-in preference [Brion/Aaron]

Analytics

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

TL;DR

 * Start Summer of Code 2012 students [Sumana]


 * Prepare tutorials for Berlin Hackathon 2012 [Sumana, 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 May) [Antoine, Chris]


 * Volunteer tester event [Chris]

---

Internationalization/Localization

 * Internationalization and localization tools
 * Universal language selection (ULS) UI/UX - implementation of proposed design (for desktop and mobile) [i18n team + UI/UX (Pau, Arun)]; [in progress]
 * Translate extension enhancements - TranslationNotifications deployed; TranslationMemory improvements in progress [Niklas, Santhosh]
 * Narayam maintenance - continuing to add more languages for onscreen keymaps [Santhosh, Amir] [continuing]
 * WebFonts maintenance [Santhosh] [continuing]
 * Language impact assessment/metrics measurement [i18n team]; [in progress]
 * i18n Bug Triage [i18n team]
 * Office Hours: Scheduled for next week on #wikimedia-office on Wednesday May 16 (3rd Wednesday of the month)

Editor Engagement Experimentation (E3)

 * This new team focused on engineering for experimentation around strategies to reverse stagnating/declining participation in Wikimedia’s projects. This team is cross-functional with resources from the Community and Engineering/Product departments tasked specifically with conducting small, rapid experiments designed to improve editor retention. The experiments product backlog will be published by the team on a public wiki (meta or en.wp) and the technical documentation will be published on mediawiki.org for all experimental features.

See job listings for the following positions: (http://hire.jobvite.com/Jobvite/Job.aspx?j=oi7iWfwn&c=qSa9VfwQ)
 * 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

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
 * Configuration management overhaul [Chad]
 * Evaluate WikiFactory from Wikia

Engineering Community Team

 * Summer of Code 2012
 * midterm evaluations


 * blog maintenance


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

QA
...

Analytics
...

Tech Ops

 * Swift
 * Swift replicas @ EQIAD

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

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