On Thu, Mar 22, 2012 at 12:44 PM, Rob Lanphier <robla(a)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