On Thu, Mar 22, 2012 at 12:44 PM, Rob Lanphier robla@wikimedia.org wrote:
There's a few of us that plan to meet in a couple of weeks to formalize something here, but perhaps we can get this all hammered out on-list prior to that.
...and we've now done that. While it's not truly final, this is a last call before we start to implement this strategy.
Our plan, starting next week, is to have an initial 3 week deployment window, followed immediately by repeating 2 week windows.
The plan for the first window: * Week of April 9 - deploy to test2, and then to mediawiki.org * Week of April 16 - deploy to all non-Wikipedia sites (commons, Wiktionary, Wikisource, Wikinews, Wikibooks, Wikiquote, Wikiversity) * Week of April 23 - Monday: deploy to English Wikipedia, Wednesday: deploy to other Wikipedias
The deployment calendar we plan to use for subsequent deployments * Week 1: Monday: deploy to test2 and mediawiki.org * Week 1: Wednesday: non-Wikipedia projects * Week 2: Monday: English Wikipedia * Week 2: Wednesday: all other Wikipedias
We plan to branch once for each deployment cycle (soon every 2 weeks). We will branch off master, make a snapshot, immediately deploy to test2 and mediawiki.org. We'll use that branch for hot fixes for as long as that branch is in production. A branch will typically be in production for 4 weeks; the first 2 weeks as the "new" branch, and then another 2 weeks as the "old" branch.
As Roan pointed out earlier, the branch name needs to start with "wmf/", and suggested a naming scheme "wmf/1.xx/yy", where "yy" is the deployment number. The only thing that sucks about that is that it's easily confused with "1.xx.yy" release tarball versions (e.g. 1.18.1). Perhaps we can still do something like wmf/1.20wmf01.
Deployments will be core plus extensions, barring any exceptions. There are two reasons for exceptions:
* Extensions that need to be deployed on a slower schedule (if any). We're going to figure out how to migrate these extensions off of master and onto a development branch, so that master is available for deployment every two weeks. * Extensions that need to be deployed on a faster schedule (e.g. MobileFrontend). The teams responsible for these deployments will also be responsible for making sure they deploy their code to both of the appropriate production branches, since there will almost always be two in play.
Does this all make sense to everyone?
Rob