Diederik van Liere wrote:
We are making three fundamental changes in one-shot:
They are not that much of change. It is like if you changed from using a
paper map and an old car to a nice SUV with a GPS. It is still a lot of
metal on 4 wheels with one purpose: move some fresh meat from A to B.
The model is the same. Only the tool changes.
(you can quote me on this when we finally take the decision to migrate
to JavaScript or Python)
1) Migrating from a centralized source control system
to a
decentralized system (SVN -> Git)
Decentralization itself is just a buzz word for the twitter guys. In the
end, it does not change that much since most people have a reference
repository. I guess most developers will use the WMF repository as a
reference, or at the very least, all patches will eventually end up in
the WMF repository.
We could imagine having the WMF feature team to use their own repository
then submit a nice giant patch once in a while.
2) Introducing a new dedicated code-review tool
(Gerrit)
That one is a habit change. It is a bit disturbing for the first week,
just like any new web interface. We will eventually get used to it. I
am sure people will easily adapt to the GUI and we will be there to assist.
3) Introducing a gated-trunk model
We have been using a gated-trunk model for as long as I can remember.
Here how it goes with subversion/CodeReview:
=======================[ SVN PROCESS ]================================
- someone submit its patch proposal in subversion trunk
- patch is reviewed then either it:
-> gets rejected : revision is reverted and marked as such
-> is accepted : revision marked 'ok'
-> it needs enhancement : marked 'fixme' repeat :-)
From time to time, all patches marked 'ok' are
allowed to pass the gate
and land in a wmf branch. Then we deploy them.
======================================================================
We will use the exact same model with git/gerrit:
=======================[ GIT PROCESS ]================================
- someone submit their patch proposal in Gerrit
- patch is reviewed then either it:
-> gets rejected: marked abandoned in Gerrit
-> is accepted : patch is merged in WMF reference repository by Gerrit
-> it needs enhancement : comment asking submitter to enhance it.
From time to time, all patches merged in the master
branch are allowed
to pass the gate and land in a wmf branch. Then we deploy them.
As a summary:
commit to trunk --> submit to Gerrit
revision marked 'ok' --> change merged
trunk to WMF branch --> master into WMF
Note: it works the same with Bugzilla, people send their patches as
attachments to a bug report. It reviewed there and eventually patch is
applied by a gate keeper.
--
Antoine "hashar" Musso