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
 * /2012/October
 * /2012/November

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]

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

 * Swift @ Tampa upgrade from 1.5 to 1.74 [Faidon/Ariel] [frontend servers - done; backend be part of the swap out process]
 * Ceph evaluation [Asher / Mark / Faidon] [on-going]
 * Copy thumbnails from Swift  to nas01 [Aaron/Faidon/Mark]
 * Productionize 2 extra parser cache servers (pc2, pc3) @ Tampa [Asher]
 * Deploy Varnish for upload@ESAM [Mark]
 * Swift Servers swap out (C2100 to R720XD) @ Tampa [Chris, Ariel [ in-progress ; expected to complete in end January]
 * Provision Memcached servers @ Eqiad [Peter] - done
 * Provision parser cache servers @ eqiad [RobH, Peter, Asher] - done
 * Git deployment system - alpha release [Ryan] - done
 * provision & deploy Parsoid servers for Alpha release [RobH] - done


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

Features

 * VisualEditor/Parsoid (Trevor, Roan, Rob, Gabriel, Subbu, MarkTraceur, + Wikia)
 * Iteration on Visual Editor for Dec release [DONE]
 * limited production release on English Wikipedia [DONE]
 * IE in VE [IN PROGRESS]
 * bug fixing on Visual Editor [ONGOING]
 * Parsoid testing framework for semantic/superficial regressions [IN PROCESS]
 * Node.js parsoid to completion [ONGOING]
 * limited production release on French, Hebrew Wikipedia [IN PROGRESS]


 * New Pages Feed (fka Page Triage) (Kaldari, Benny, Nischay)
 * Descriptive statistics on NPF (revised dashboard on toolserver) [Dario] [IN PROCESS]
 * Bug fixes (no more feature development) [ONGOING]


 * Echo_(Notifications) (Kaldari, Benny, Werdna, Luke Welling)
 * Continued development of prototype for Mediawiki.org [ONGOING]
 * Deployment on mediawiki.org [Dec 18]
 * UI and bugfixing of Echo [ONGOING]
 * HTML e-mail [IN PROCESS]
 * Global user changes [JamesF] [IN PROCESS]
 * i18n issues on Echo
 * (see Performance engineering for infrastructure prep work:)
 * queueing & Echo
 * Database sharding & Flow


 * [Flow] (Werdna, JamesF, Brandon, Matthias)
 * Kickoff
 * reach out to Wikia [Terry, JamesF]


 * Article feedback (Matthias)
 * sharding (see Database sharding) [Matthias] [CANCELLED], alternative implementation strategy in development
 * dewiki pilot launch [Dec 13]
 * performance/db related changes to AFTv5 queries [Matthias] [IN PROCESS]
 * i18n messaging update [IN PROCESS]
 * Other minor changes prior to full English Wikipedia deployment


 * E3 (Ori, S, MattF, Luke)
 * Clicktracking/Analytics
 * Funnel tracking of Community Portal [ONGOING]
 * Funnel tracking of Onboarding [IN PROCESS]
 * Account Creation User Experience
 * Data model [IN PROCESS]
 * Productization of ACUX [IN PROCESS]
 * Data analysis once experiment is complete [IN PROCESS]
 * Onboarding
 * Extensionize guided tour [DONE]
 * Javascript bugs in guided tour [IN PROCESS]
 * Deploy first version of onboarding to production [Dec 13]
 * Continue working with SuggestBot author to develop list of tasks -- [Bot Approved]
 * Other Account Creation Funnels
 * Sue's donation Thank you email [DONE]
 * 22k Donor Survey email [IN PROCESS]
 * Contribution banner [IN PROCESS]


 * MicroDesign
 * other edit window templates [IN PROCESS]
 * (see Agora)


 * List of other projects on radar
 * ResourceLoader2
 * LiquidThreads 3.0

Fundraising (Katie,Adam,MattW,PeterG)

 * Fundraiser - 5 countries [IN PROGRESS]

Mobile

 * Mobile Web
 * Beta
 * photo upload [DONE]
 * Watchlists add and view (recent changes view) [DONE]
 * Better table support [DONE]
 * lots of bug fixes [DONE]
 * Editing [DONE]
 * Account Creation [IN PROCESS]
 * Reader-friendly Watchlist [IN PROCESS]
 * Last Modified [IN PROCESS]
 * History [IN PROCESS]
 * Alpha [IN PROCESS]
 * User Testing of Beta Editing, next steps TBD
 * Production
 * Push beta features to product (TBD)
 * BugFixes [DONE]
 * GeoData EN Wiki [DONE]

MediaWiki Core

 * Datacenter migration (see TechOps section above) [Tim, Aaron]
 * Git/Conversion (Chad)
 * LDAP fixes for our Gerrit use (current patch) [Chad]
 * Upgrade to 2.6 [Chad]
 * Have Lucene work underway upstream for 2.6 release cycle [Chad]
 * Replace gitweb with GitBlit [Chad]
 * Swift
 * Copying thumbnail files from Swift into NFS [Aaron]
 * MediaWiki 1.20/Roadmap
 * Bi-weekly deployment cycle continues
 * MediaWiki 1.21/wmf5 -- ongoing
 * MediaWiki 1.21/wmf6
 * Holiday break
 * Continuous integration
 * Admin tools development [Chris]
 * Build and deploy Global RenameUser extension [CSteipp]
 * Wikidata deployment
 * Deploy Wikibase client to test2 [Chad]
 * Site performance
 * Lua scripting [Tim, Chad, Brad]
 * Additional APIs to replicate parser functions [Tim, Chad, Brad]
 * Detailed deployment plan [TBD]
 * Security auditing and response
 * Training documentation sprint [CSteipp]

Multimedia

 * TimedMediaHandler
 * Deploy new async upload API support to UploadWizard [Aaron, Jan]
 * Bugfixing deployment related issues [Jan]
 * Score deployment to test2 [Tim] - deployment to test2 done, further deployment waiting on OggHandler-TMH dependency fix

QA

 * QA and testing
 * Visual Editor
 * VE user interface is being re-written in November, following stability issues for beta support and UI testing [NOT DONE]
 * E2
 * Significant AFTv5 testing on hold pending sharding, creating browser regression tests meanwhile [DONE]
 * PageTriage development moving slowly, focusing on support in beta labs [ONGOING]
 * Browser testing
 * Mobile
 * Create first Mobile browser tests [DONE]
 * Beta labs (beta cluster)
 * Continue refining beta labs performance [Antoine/Chris/Željko] [ONGOING-- upcoming spike to support Mobile Front End in beta labs]
 * PageTriage code is hosted reliably on beta, state of db contents may not be up to date [IN PROCESS] [Antoine]
 * Continuous integration
 * Ported reporting frameworks from raw RSpec to Cucumber (see below) [DONE]
 * Make Cloudbees Jenkins public/read-only and publishing information to WMF Jenkins (Netherlands hackathon did not get to this) [ONGOING]
 * Fixing glitches with file handling in Jenkins (works locally) [DONE]
 * Creating new tests for AFTv5 [DONE]
 * Updating test backlog page. Cucumber format and backlog should enable wider participation in ATDD (Acceptance Test Driven Development) [ONGOING]
 * Coverage goals: regression tests from backlog page, extensions managed on beta. [ONGOING]
 * Socializing & training developers in writing automated tests -- ongoing [Chris & Quim]

Analytics
See also: Analytics/Roadmap

Kraken

 * Set up full pixel/firehose (w/o ETL) via  [otto] (Dec) (Ready to go, holding off on flipping switch)
 * Core Jobs: aggregation, bucketing, indices [dsc, DvL, erosen] (Dec/Ongoing)
 * Product Codes: Email stakeholders and gather feedback [dsc] (Dec)
 * Set up Maven / Somatype Artifact Repository (continuous integration) [dsc] (Dec)
 * WMF Maven parent pom [dsc] (Oct) [DONE]
 * Walkthrough to get up and running with Maven in Eclipse [dsc] (Dec)
 * Storm pom [dsc] (Dec)
 * Storm ETL [dsc + otto] (Dec)
 * Get Storm set up [dsc + otto] (Dec)
 * Storm ETL bolts for (some of) GeoIP, Anonymization, HDFS Import, Kafka Checkpointing [dsc] (Dec)
 * Consume some fraction (1:1000, 1:10000?) of web access logs [otto] (Dec)
 * Consume 1:1 web access logs into HDFS with ETL + Bucketing + Tagging [otto] (Jan)

Limn
Major release (0.8) planned for 5 Dec (prior to Metrics Meeting on 6 Dec)


 * Bugfixes (like Save-As, UI Error Notifications, ...) [dan] (Dec)
 * Mirror GitHub to Gerrit [dsc] (Jan)
 * Improve Limn wiki, docs, & guides (esp those shameful screenshots) [dan] (Jan)
 * Coke ( for Coco) task to create symlinks into   from an existing data repository (such as, say, analytics/reportcard/data) [dsc] (Jan)
 * Coke task to download and setup dummy testing data for ease of development [dsc] (Jan)
 * UI support for remote datasets via proxy [dsc + dan] (Dec)
 * Migrate Dario's dashboards to Limn [dsc] (Dec)
 * Deploy reportcard / gerrit-stats on stat1001 (aka, "the Debian packaging discussion") [otto + dsc] (Dec)

Infrastructure

 * Access/support requests for stat1, stat1001 [otto] (Ongoing)
 * Maintenance of oxygen/emery/locke [otto] (Ongoing)
 * Migrate Reportcard off Labs onto stat1001 -- reportcard.wikimedia.org [otto + dsc] (Dec)

Data Releases

 * Blogpost about what awesome stuff you can do with AWS Datasets [diederik + ?] (Oct) [Status: BABYMAKIN]
 * Finalize scripts to massively compact dammit.lt data [erik] (Oct!!??1) [???]
 * Create Data Release Practices Task Force [diederik] (Sept!1?) [Status: BABYMAKIN]
 * Publish Monthly Report Card -- deal with monthly data processing irregularities, perform correction/validation [ezachte + diederik + dsc] (Ongoing)

Engineering Community Team

 * Bug Wrangling [Andre + volunteers]
 * Updating BZ maintenance documentation -- ongoing [Andre]
 * Improving workflow for highest-priority bugs escalation -- ongoing [Andre]
 * Mentorship programs - ongoing [Quim, Sumana, Andre]
 * Summer of Code 2012: Pushing on merges -- ongoing [Sumana]
 * Outreach Program for Women - ongoing [Quim, Sumana, Andre]
 * LevelUp [Sumana] -- ongoing - socialized internally, soon to launch for real
 * Volunteer coordination and outreach
 * Event planning & followup -- ongoing [Sumana, Quim]
 * Bangalore followup
 * Grace Hopper followup [Sumana]
 * OpenStreetMap and 2013 Developers Meeting meetings
 * Planning online or in-person QA trainings for the community -- ongoing [Quim]
 * Planning community testing events -- ongoing [Quim]
 * Encouraging technical user groups -- ongoing [Quim]
 * Implicit knowledge transfer from Sumana to Quim -- ongoing with target of end of December
 * Technical communications [Guillaume]
 * Tech Ambassadors Network [Guillaume] -- ongoing on meta
 * Review of consultation results & creation of new experiment - target Dec 7
 * Volunteer product management program -- ongoing [Sumana]: target for new intake, end of December
 * Misc Engineering community proposals' followup [Sumana]
 * CoC [Sumana] -- in process - target 15 Dec

Technical Operations

 * Datacenter migration (eqiad)
 * Updating the scap scripts to deal with multi-datacenter
 * change to git-deploy?
 * deploy memcached@eqiad
 * deploy parser cache@eqiad
 * deploy apache app servers@eqiad
 * deploy API servers@eqiad
 * deploy jobrunner servers@eqiad
 * database failover from Tampa to Eqiad


 * Deploy Etherpad Lite [Daniel/RobH]

MediaWiki Core

 * Datacenter migration (see TechOps section above) [Tim, Aaron]
 * Git/Conversion (Chad)
 * Swift
 * MediaWiki 1.20/Roadmap
 * Continuous integration
 * Admin tools development [Chris]
 * Wikidata deployment
 * Site performance
 * Lua scripting [Tim, Chad, Brad]
 * Install Lua (Scribunto) on other Wikimedia wikis ( see Goals)
 * Security auditing and response

Multimedia

 * TimedMediaHandler

QA

 * QA and testing
 * Browser testing
 * Continuous integration

Analytics
See also: Analytics/Roadmap

Engineering Community Team

 * Bug Wrangling [Andre + volunteers]
 * Mentorship programs - ongoing [Quim, Sumana, Andre]
 * Volunteer coordination and outreach
 * Technical communications [Guillaume]
 * Misc Engineering community proposals' followup [Sumana]

Features

 * VisualEditor/Parsoid (Trevor, Roan, Rob, Gabriel, Subbu, MarkTraceur, + Wikia)
 * experimentation into C/C++ version


 * Echo_(Notifications)
 * Global preferences for echo delivery [Deferred to 2013]
 * centralization and cross wiki notification delivery [Deferred to 2013]


 * Article feedback (Matthias)
 * Full deployment to English Wikipedia [2013]

Parking lot and todos

 * Configuration management overhaul [Chad]
 * Fundraising flesh-out
 * HipHop deployment (deferred because Facebook has HipHopVM)
 * 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
 * Wikidata (WMDE)
 * BlameMaps (WMDE/Luca de Alfaro; see proof of concept)
 * Various HTTPS support fixes
 * Wikimedia server error page
 * Disk-backed object cache
 * Relicense our Lucene contributions [future Lucene search engineer]
 * OAuth [ChrisS]
 * related to potential API redesign (Wikia)
 * Changes to visual design to make ACW consistent with Design Toolkit [TBD]
 * Features parking
 * Queuing infrastructure work for Echo (probably using Aarons JobQueue abstraction)
 * Article creation workflow deferred
 * Gadgets 2.0?
 * Affiliation tools for WikiProjects [build on GlobalProfile]