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.

Timeframe of roadmap draft: September 2011-March 2012

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

September 2011

 * MW1.18 deployment (~9/19-10/4)
 * CI improvements (by ~10/31)
 * Stable Jenkins setup for PHPUnit tests
 * TestSwarm integration

October 2011

 * Git - prelim test conversions early in month
 * "git boot camp" @ WMF tech days and/or NOLA hackathon
 * MediaWiki 1.18 tarball release
 * Push code review on trunk toward zero
 * Git workflow architecture review
 * CI tests get run when a developer chooses to push to the stage between their branch and the mainline branch
 * this stage is roughly equivalent to merge requests on github & gitorious -- show test results to reviewers on a more or less completed chunk of code (may be one or several commits, and can be updated & resubmitted)
 * Agree on implementation strategies regarding remaining development process questions, e.g. how to handle multi-repo commits
 * Database-backed session handling
 * SwiftMedia deployment [original target date, may need to be revised]

November 2011

 * Finish code review on trunk
 * Cut 1.19 release branch
 * Git migration begins \o/
 * Finish up specific Git management scripts
 * to support WMF workflow
 * i18n updates
 * new developers
 * SVN import, post-release/deployment make r/o switch
 * Deployment scripts
 * Make Gerrit behave like we want it to
 * 1.19 deploy (from SVN)
 * Move towards git-based development and release process

December 2011

 * First release from git mainline development branch
 * Move towards continuous integration via git, goalpost: weekly deployment
 * Jenkins (Testswarm/PHPUnit tests) on git branches

January 2012

 * HipHop deployment preparation
 * Create HipHop instance that includes a full production image
 * run CI tests on HipHop as well as Zend
 * push further necessary fixes into the detail plan
 * Begin developing framework for integration testing
 * possibly Selenium

February 2012

 * HipHop decision point and development schedule

Open questions

 * Details of git migration (extension mgmt, permissions, code review tool etc.)

Todos

 * complete, review, discuss, iterate
 * cf http://www.mediawiki.org/wiki/Wikimedia_Platform_Engineering and merge as appropriate