[coreboot] [ANN] New code repository and development workflow
gregg.drwho8 at gmail.com
Mon Jun 6 00:29:42 CEST 2011
On Sun, Jun 5, 2011 at 6:24 PM, Thomas Gstädtner <thomas at gstaedtner.net> wrote:
> On Mon, Jun 6, 2011 at 00:17, Gregg Levine <gregg.drwho8 at gmail.com> wrote:
>> On Sun, Jun 5, 2011 at 4:48 PM, Patrick Georgi <patrick at georgi-clan.de> wrote:
>>> Dear coreboot developers, stakeholders, and enthusiasts,
>>> I'm glad to be able to announce that we moved the repository
>>> infrastructure to git and gerrit, with jenkins as supporting facility.
>>> This was done with the goal of improving the development workflow,
>>> meaning less overhead for developers when managing the patch queue. This
>>> should lead to losing fewer patch submissions.
>>> So far we used patchwork, but it's more maintenance work than
>>> practical given that it requires manual handling of patches that don't
>>> match the commit diff, and of patches that went through multiple
>>> While it improved the visibility of patches (and I'm thankful for that),
>>> it still posed a higher than necessary barrier to patch review.
>>> Gerrit is a code review utility developed by Google which uses the
>>> distributed properties of git to provide a seamless path for patches
>>> from submission to commit.
>>> For this, git is used: Gerrit uses its ability to create and tear
>>> down branches as necessary to push every contribution into its own
>>> branch. This way it's already "tracked" by the version control system
>>> without influencing the master branch.
>>> The use of git also plays well into the desire of several coreboot
>>> contributors to switch from svn to git.
>>> In addition to these changes, we also moved the build bot from our own
>>> custom build variant to a more standard Jenkins installation. In
>>> addition to building commits after they are integrated on the master
>>> branch ("trunk" in SVN terminology), it's also configured to build patch
>>> submissions on gerrit as they come in. That way there's automated
>>> feedback on a patch before spending time on it.
>>> All this means that the coreboot development workflow changes
>>> 1. New SCM
>>> You will need git, so install it from your usual software distribution
>>> For patch submission a gerrit account is necessary. You can register it
>>> on http://review.coreboot.org. With the account you can also review
>>> patches. The ability to merge patches to mainline will be granted by
>>> ssh public keys are used for authentication. You can register them with
>>> gerrit in your user preferences at http://review.coreboot.org/#settings
>>> when logged in.
>>> Gerrit requires that the commit message contains Change-Id: lines. "make
>>> gitconfig" inside a coreboot checkout installs a commit message handler
>>> which takes care of this.
>>> The committer address must match an email address that is registered
>>> with your gerrit acccount. Again these can be configured in gerrit user
>>> Fetching anonymously: git clone http://review.coreboot.org/p/coreboot
>>> Fetching authenticated: git clone
>>> 2. New patch submission process
>>> Develop "as usual" in git, and commit freely.
>>> When you're ready to submit patches, push them with
>>> git push origin HEAD:refs/for/master
>>> This will tell gerrit which branch your commits are for (master) and it
>>> will create internal branches for each commit you pushed, making them
>>> separate changesets. If you push a number of commits at once, they're
>>> properly linked as "dependencies", so people (and tools like gerrit and
>>> jenkins) are aware about prerequisites.
>>> For automating some aspects of patch submission, see the last paragraph
>>> of http://review.coreboot.org/Documentation/user-upload.html#push_create
>>> We will also document more of making live easier at
>>> http://www.coreboot.org/Git as best practices are established.
>>> 3. New patch review process
>>> The main interface to do patch reviews is the gerrit webapp at
>>> http://review.coreboot.org. For those who tend to avoid web apps,
>>> there's the option of controlling gerrit via ssh. Detailed information
>>> on that will be posted at http://www.coreboot.org/Git.
>>> There's no real workflow defined around this interface yet because it
>>> seems to be an unpopular choice as _User_ Interface. This means, we'll
>>> have to develop our own.
>>> 4. Mail notification
>>> Mail notification to the mailing list is implemented from scratch. Right
>>> now it only reports on new patch submissions and on patches merged into
>>> the master branch. More events might/will follow in future, and we will
>>> certainly tweak the ad-hoc messages and formatting some more.
>>> Questions? Comments? Praise? Flames?
>>>  http://ozlabs.org/~jk/projects/patchwork
>>>  http://gerrit.googlecode.com
>>>  http://git-scm.com/
>>>  http://jenkins-ci.org/
>>> coreboot mailing list: coreboot at coreboot.org
>> I have one. What would prompt this to happen?
>> root at jimkirk2:/usr/src/lobos# git clone http://review.coreboot.org/p/coreboot
>> Initialized empty Git repository in /usr/src/lobos/coreboot/.git/
>> fatal: http://review.coreboot.org/p/coreboot/info/refs download error
>> - The requested URL returned error: 403
>> root at jimkirk2:/usr/src/lobos#
>> That's from my first efforts to clone the recently configured repository.
>> Gregg C Levine gregg.drwho8 at gmail.com
>> "This signature fought the Time Wars, time and again."
> That's odd.
> First of all: worksforme(tm).
> This message should only appear when you do a "git init", not for a "git clone"
> Maybe the path "/usr/src/lobos/coreboot" already exists? Highly
> unlikely that this would cause this behavior, but if so, try to remove
> the coreboot dir or chose another destination.
Actually there was indeed a checked out directory present. It
complained and I first moved over with a new name attached. Then
repeated the statement. Twice in fact.
Since I usually synch my working directory with what is present on the
site on a Sunday, I am going to wait a week and try again.
Gregg C Levine gregg.drwho8 at gmail.com
"This signature fought the Time Wars, time and again."
More information about the coreboot