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: Previous months:
 * 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
 * /2011/September
 * /2011/October
 * /2011/November
 * /2011/December
 * /2012/January
 * /2012/February
 * /2012/March
 * /2012/April
 * /2012/May
 * /2012/June
 * /2012/July
 * /2012/August
 * /2012/September

Item syntax: Examples:
 * Project name
 * [Qualifier keyword] Action item [Owner(s)] [Completion keyword]
 * New unicorn engagement
 * [Needs consensus] Deploy unicorns [Brion/Tim]
 * Deploy unicorns [Brion/Tim] [DONE]

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
 * Monthly report and other engineering communications

Technical Operations

 * Redis
 * Deploy Memcached/Redis @ Tampa [Mark/Asher/Tim]
 * Swift
 * build new swift backend servers @ Tampa to replace current servers
 * start migrating swift backend servers to new servers
 * Evaluate Ceph [Faidon/Asher/Aaron]
 * Commons infrastructure
 * migrate ms7 (commons) to Nas1 [Done]
 * replicate Nas1 (Tampa) to Nas2 (Ashburn)
 * Parser Cache
 * build 2 more parser cache instances@ Tampa
 * build 3 parser cache instances@Eqiad
 * Deploy Etherpad Lite [Daniel/RobH]
 * Deploy Mingle [RobH/DZ]

Features

 * New Pages Feed (fka Page Triage)
 * Descriptive statistics on NPF (revised dashboard on toolserver) [Dario] [IN PROCESS]
 * Bug fixes (no more feature development)
 * Additional socialization and public announcement/launch [DONE]


 * Echo_(Notifications)
 * Continued development of prototype for Mediawiki.org [Werdna/Vibha]
 * Selection of one use case (or a limited set, e.g., user talk notifications) and map across different areas of product (e.g., web display, preferences, email, bundling, etc.)
 * re-deployment of prototype for Mediawiki.org [Werdna/Vibha] [IN PROCESS]
 * UI and bugfixing of Echo [ONGOING]
 * Global preferences for echo delivery [TBD]
 * centralization and cross wiki notification delivery [TBD]
 * (see Performance engineering for infrastructure prep work:)
 * queueing & Echo
 * Database sharding & Flow


 * Article feedback
 * performance/db related changes to AFTv5 queries before scaling, + sharding (see Database sharding) [IN PROCESS]
 * Oversight checklist (to help reduce the volume of oversight requests) [Oct 11]
 * Continued AbuseFilter work [IN PROCESS]
 * Conversion analysis: [starts Oct 11]


 * Article Creation Workflow: Postponed
 * Changes to visual design to make ACW consistent with Design Toolkit [TBD]


 * E3
 * Clicktracking/Analytics
 * E3 analytics, Clicktracking re-design [IN PROCESS]


 * Post-edit Feedback 2
 * Deployed to production [DONE]
 * Data analysis once experiment is complete [IN PROCESS]


 * Account Creation User Experience
 * Deployment of first test to production [DONE]
 * Minor UI tweaks [IN PROCESS]
 * Data analysis once experiment is complete [IN PROCESS]

Multimedia

 * TimedMediaHandler
 * Bugfixing of player on test2 [IN PROGRESS] (Michael Dale)
 * Deployment of transcoding boxes
 * Create production deployment plan
 * Create new async upload API for large file uploads [Aaron]
 * Add new async upload API support to UploadWizard [Jan]
 * Multi-cache support in MediaWiki (Varnish/Squid/etc) [Aaron]

Mobile

 * Beta features
 * left nav
 * ribbon
 * solr for GeoData
 * login
 * promote wikipedia beta app to stable
 * mobile friendly resource loader
 * dynamic sections
 * Analyze WLM data to guide next upload steps
 * pickup any remaining redirects [office, chapters, ...] [IN-PROGRESS]
 * more zero launches

MediaWiki Core

 * Datacenter migration (see TechOps section above)
 * Git/Conversion (Chad/Antoine)
 * Upgrade to 2.5 [ON HOLD]
 * Mirror mediawiki-core to GitHub (waiting on Gerrit 2.5) [Chad] [DONE]
 * Have last of extensions out of SVN and into Git [IN PROGRESS]
 * Finish replicating all repos to GitHub [ON HOLD PENDING 2.5]
 * Begin researching how to get pull requests back in
 * Have gitweb replacement in place (probably GitBlit) [ON HOLD PENDING 2.5]
 * Swift
 * See Swift section in Ops
 * MediaWiki 1.20/Roadmap
 * Bi-weekly deployment cycle continues
 * MediaWiki 1.21/wmf1 [DONE]
 * MediaWiki 1.21/wmf2
 * Continuous integration
 * Integrate zuul into Jenkins pipeline [Antoine]
 * Move Jenkins job setup out of web interface into Git using Jenkins Job Builder [Antoine]
 * Upgrade Gallium to Precise [(someone in Ops) + Antoine]
 * Admin tools development
 * Deploy global AbuseFilter improvements [CSteipp]
 * Build and deploy CentralAuth mass account locking [CSteipp]
 * Build and deploy Global RenameUser extension [CSteipp]
 * Wikidata deployment
 * Code review of extensions [Sam, Tim]
 * Deploy MediaWiki version with ContentHandler branch merged in [Sam]
 * Create and deploy wikidata.org [Sam,Chad]
 * Deploy Wikibase client to test2 [Sam]
 * Site performance
 * Lua scripting [Tim]
 * Wikivoyage migration [Chris, Sam]

QA

 * Beta labs
 * Continue refining beta labs performance [Antoine/Chris/Željko]
 * Jenkins integration with gerrit is ongoing and is critical to consistent beta labs deployment and also critical to effective browser tests.
 * Begin work on Watir-based browser testing framework
 * Create at least one useful end-to-end test for important Wikipedia feature, with automatic execution (Jenkins-driven) and results reporting [Chris/Željko]
 * Create a list of targets for browser testing according to priority
 * Continue integrating Mobile QA with overall QA/testing activities

Analytics
See also: Analytics/Roadmap


 * (Kraken) Set up Maven / Somatype Artifact Repository (continuous integration) [dsc]
 * WMF Maven parent pom [dsc]
 * (Kraken) Puppetize Kraken [otto] (Ongoing)
 * (Kraken) Set up JMX monitoring -- needs to be our LAN [otto + dsc]
 * (Kraken) Get Storm set up [dsc + otto]
 * Start work on ETL topology [dsc]
 * (Kraken) Hardware reinstallation -- Depends on Ops [otto]
 * (Kraken) Get to consensus with Ops regarding logging of the firehose [dsc + otto]
 * Research needed: test running cli JVM producers does not cause extra load [otto]
 * (Legacy Log Collection) udp2log filters
 * Update filters for Wikipedia Zero [otto] (Ongoing)
 * Filter by X-Carrier headers. [otto + asher + diederik]
 * udp-filter to filter by http status. [otto]
 * (WikiStats) Reduce backlog regarding Wikistats traffic (squid etc) scripts [stefan]
 * (WikiStats) Make wikistats more robust (MoM validations) [ezachte]
 * (WikiStats) Add Blackbox testing to WikiStats [diederik + ezachte]
 * (Ops & Maintenance) Access/support requests for stat1, stat1001 [otto] (Ongoing)
 * (Ops & Maintenance) Migrate Reportcard off Labs onto stat1001 -- reportcard.wikimedia.org [otto + dsc]
 * (Ops & Maintenance) Maintenance of oxygen/emery/locke [otto] (Ongoing)
 * (Data) Publish Monthly Report Card -- deal with monthly data processing irregularities, perform correction/validation [ezachte + diederik + dsc] (Ongoing)
 * (Data) Start pushing datasets to AWS [diederik]
 * (Data) Finalize scripts to massively compact dammit.lt data [erik]
 * Blogpost about what awesome stuff you can do with this [diederik + ?]
 * (Limn) Refactor charting to use d3 [dan + dsc]
 * Feature Parity with Dygraphs (plus bugfixes, etc)
 * (Limn) Bugfixes (like Save-As, UI Error Notifications, ...) [dan]
 * (Limn) Improve Limn wiki, docs, & guides (esp those shameful screenshots) [dan]
 * (Limn) UI support for remote datasets via proxy [dsc + dan]
 * (Limn) Support the Global Dev dashboard [evan] (Ongoing)
 * (Limn) Support the Gerrit Stats dashboard [diederik] (Ongoing)
 * (Limn) Deploy reportcard / gerrit-stats on stat1001 (aka, "the Debian packaging discussion") [otto + dsc]

Engineering Community Team

 * Bug Wrangling [Andre + volunteers] -- ongoing
 * Updating BZ maintenance documentation [Andre] -- in progress
 * Preparation for upcoming events [Sumana] -- ongoing
 * Preparation for Bangalore DevCamp in November [Sumana] -- ongoing
 * Tech Ambassadors Network [Guillaume] -- ongoing on meta
 * Volunteer product management program [Guillaume] -- being integrated into Tech/Ambassadors
 * UCOSP idea-wrangling [Sumana] -- ongoing
 * GSoC postmortem [Sumana + volunteers]

i18n/L10n

 * Internationalization/Localization
 * Universal Language Selector
 * Version 1 development [IN PROGRESS]
 * User Experience / UI testing [ONGOING]
 * Technical documentation [IN PROGRESS]
 * Project Lassi: Translate UX Improvements
 * User Experience / UI testing Round 1 [DONE]
 * Prototype development [DONE]
 * Translate API
 * API definition [On Hold]
 * Central Notice-Translate integration
 * Code changes DONE
 * Code review/testing IN PROGRESS
 * Deployment - scheduled for next sprint SCHEDULED
 * Web Fonts
 * Adding languages [ONGOING]
 * Narayam
 * Adding input methods for other languages [ONGOING]
 * Project Milkshake
 * Design specification, API specification, development [IN PROGRESS]
 * Technical documentation [DONE]
 * Language search
 * Initial analysis [DONE]
 * Prototype initial concept [IN PROGRESS]
 * Integration into ULS [IN PROGRESS]
 * Standards participation
 * Comments on ARB Specification [DONE]
 * Language Summit
 * Preparation for November Language Summit [IN PROGRESS]
 * Language Team Community Meetup
 * Language Team Pune Meetup [IN PROGRESS]
 * Bangalore Team Meetup [IN PROGRESS]
 * India DevCamp
 * Preparation of Topics for DevCamp [IN PROGRESS]

MediaWiki Core

 * Datacenter migration (see TechOps section above)
 * Git/Conversion (Chad/Antoine)
 * Have Lucene work underway upstream for 2.6 release cycle [Chad]
 * Upgrade to 2.5 [ON HOLD]
 * Have last of extensions out of SVN and into Git [IN PROGRESS]
 * Finish replicating all repos to GitHub [ON HOLD PENDING 2.5]
 * Begin researching how to get pull requests back in
 * Have gitweb replacement in place (probably GitBlit) [ON HOLD PENDING 2.5]
 * Swift
 * See Swift section in Ops
 * MediaWiki 1.20/Roadmap
 * Bi-weekly deployment cycle continues
 * MediaWiki 1.21/wmf3
 * MediaWiki 1.21/wmf4
 * Continuous integration
 * Admin tools development [Chris]
 * Wikidata deployment
 * Site performance
 * Lua scripting [Tim]
 * Wikivoyage migration [Chris, Sam]

QA

 * Beta labs
 * Continue refining beta labs performance [Antoine/Chris/Željko]

Analytics
See Analytics/Roadmap

Engineering Community Team

 * Volunteer coordination and outreach
 * Event planning & followup [Sumana, Technical Contributor Coordinator]
 * Preparation for Bangalore DevCamp in November [Sumana]
 * Online or in-person QA trainings for the community [Technical Contributor Coordinator]
 * Community testing events [Technical Contributor Coordinator]
 * UCOSP idea-wrangling [Sumana]
 * Bug Wrangling [Andre + volunteers]
 * Updating BZ maintenance documentation [Andre]
 * Summer of Code 2012
 * Postmortem [Sumana]
 * Tech Ambassadors Network [Guillaume]
 * Volunteer product management program [Guillaume]

Technical Operations

 * Labs
 * Push OpenStackManager changes to show SSH fingerprints for instances [Ryan Lane] (not a high-priority item, will probably be December 2012 or later)
 * Add DNS support to Nova (in essex, but we must migrate to using it)
 * Add Gluster support to Nova (Gluster plugin is mostly written but we don't really have plugin support until folsom, so will happen in Q3 when we are ready to upgrade to Folsom)

Parking lot and todos

 * Install Lua (Scribunto) on other Wikimedia wikis (probably sometime in 2013; see Goals)
 * Category collation
 * Patch waiting on Liangent for more work for full deployment
 * Queuing infrastructure work for Flow (who added this?)
 * Configuration management overhaul [Chad]
 * Evaluate WikiFactory from Wikia
 * Extension management -- depends on config mgmt revamp
 * graphical UI on top of improved backend for configuration management
 * 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
 * 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)
 * 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.
 * Replicated session handling [Tim Starling]
 * Relicense our Lucene contributions [future Lucene search engineer]
 * OAuth [ChrisS]