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 - http://wikitech.wikimedia.org/view/Swift/Deploy_Plan_-_Originals [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
 * provision payment clusters
 * OS (Lucid)/Security patch train
 * Database servers
 * ESAM caching center
 * Squids (TPA/EQIAD)
 * Apache/Memcached (TPA/EQIAD)
 * Varnish (TPA/EQIAD)

---
 * Wikimedia Labs
 * New compute node for capacity [Ryan] [DONE]
 * Labs features rollout
 * Upgrade GlusterFS
 * 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
 * Backlog on Data Model/Linear Model [Roan] [IN PROCESS]
 * Transaction Processor [Roan] [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
 * [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 10]
 * Deploy streamlined version of Option 1 [May 14]


 * 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 [Early -Mid May]


 * 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) [May 22]
 * Bug Fixes [Ongoing]
 * Work on NO_INDEX
 * Curation toolbar [TBD]
 * Continue design iterations
 * Labs deployment [May 15 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
 * 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 [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
 * 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 [DONE]
 * Prod Deployment
 * Bug fixes for new intermin nav [DONE]
 * 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 [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)
 * Market (Production)
 * 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 [ongoing]
 * 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] [ongoing]


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

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; review session of ULS prototype on May 10 [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, Amir] [continuing]
 * Language impact assessment/metrics measurement [i18n team]; [in progress]
 * i18n Bug Triage - done [i18n team]
 * Office Hours: Scheduled for next week on #wikimedia-office on Wednesday May 16 (3rd Wednesday of the month)

Editor Engagement Experimentation (E3)

 * The product team has been working on identifying the first 6 experimental features that will get prioritized for development as our first developer for the team joins next week. Dario Tarborelli is leading the discussion to identify analytics requirements for impact measurement for these experiments.

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

Participation and editor engagement

 * Article feedback
 * [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

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

 * 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

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.