openstack team mailing list archive
-
openstack team
-
Mailing list archive
-
Message #03492
Re: Status of Git/Gerrit Code Hosting/Review
Just a question/thought -- has there been any discussion with the GitHub folks about whether the deficiencies you talk about are on their roadmap, and if not, can we get them addressed? E.g., if they put in hooks at the appropriate places in their pull request system...
Cheers,
On 09/08/2011, at 4:50 AM, Jay Pipes wrote:
> Hello all,
>
> tl;dr
> =======
>
> Contributors have been giving Monty Taylor and Jim Blair feedback on
> the Gerrit code review system over the last few weeks. Both the
> Keystone and Glance projects have now migrated to using Git as their
> source control system and Gerrit for code review and integration into
> the Jenkins continuous integration system.
>
> Tomorrow, the Project Policy Board (PPB) will be voting on two things:
>
> 1) Should OS projects
> a) have a vetted set of options for hosting and review, or
> b) be required to use a single toolset for review and hosting
> 2) Shall Gerrit+Git be included in the set of vetted options or be the
> single option (dependent on the vote result for 1) above)
>
> Feedback on #2 is most welcome. Please feel free to respond to this
> email, catch us on IRC or email me directly.
>
> Links:
>
> Working with Gerrit: http://wiki.openstack.org/GerritWorkflow
> Code Review in Gerrit: http://review.openstack.org
>
> Details
> =======
>
> Over the last few weeks, Monty Taylor and Jim Blair have been working
> with a number of OpenStack contributors to gather feedback on a
> Git-based development workflow, toolset, and review process.
>
> First, Monty and Jim investigated whether GitHub's pull request system
> would be sufficient to enforce existing code review and approval
> policies. It was determined that GitHub's pull request system was not
> sufficient. The main reason why the pull request system failed to meet
> needs is that there is no overall way to track the current state of a
> given pull request. While this is fine for the simple case (merge
> request is accepted and merged) it starts to fall over with some of
> the more complex back and forths that we wind up having in many
> OpenStack projects. Additionally, this assessment was predicated on
> the current design of a gated trunk with an automated patch queue
> manager, and a system where a developer is not required to spend time
> landing a patch (other than potential needs for rebases or changes due
> to code review).
>
> Monty and Jim then decided to set up a Gerrit server for code review
> and CI integration at http://review.openstack.org. Gerrit is a tool
> developed by Google to address some of the functionality the Android
> Open Source team needed around automated patch queue management and
> code reviews.
>
> The first project that moved from Launchpad to Gerrit/Git was the
> openstack-ci project. This is the glue code and scripts that support
> the continuous integration environment running on
> http://jenkins.openstack.org.
>
> After gaining some experience with Gerrit through the migration of
> this project from Launchpad, the next OpenStack subproject to move to
> the Gerrit platform was the Keystone incubated project. Keystone was
> already using git for source control and was on GitHub, using GitHub's
> Issues for its pull requests and bug tracking. However, the Keystone
> source code was not gated by a non-human patch queue management
> system; a Keystone developer would manually merge proposed branches
> into the master Keystone source tree, and code reviews were not passed
> through any automated tests on http://jenkins.openstack.org. Monty and
> Jim worked with Dolph, Yogi, Ziad, and other Keystone developers to
> get their code reviews done via Gerrit and get their unit and
> functional tests running on each commit through Jenkins. There were a
> few hiccups along the way, but the hiccups served as valuable lessons
> and were documented in the workflow wiki page
> http://wiki.openstack.org/GerritWorkflow.
>
> Last Thursday morning, the Glance project was migrated from Bazaar and
> Launchpad code hosting to use Git and Gerrit. The migration went
> pretty smoothly, and a number of Glance developers have already been
> proposing, reviewing, and approving code via Gerrit. Launchpad is used
> for all bug tracking and blueprint management, still, but the code at
> http://code.launchpad.net/glance is merely a read-only mirror of the
> git repository.
>
> Outstanding Issues/Questions
> =====================
>
> 1) John Dickinson and Chuck Thier raised the question that if Gerrit
> is going to be the (or one of the) proposed code review and patch
> management system, that hosting Git repositories on GitHub might be
> confusing for GitHub users, since most would expect to use pull
> requests to merge their own code back into the project's master repo.
> This is a valid concern and Monty and Jim are investigating
> establishing a GitWeb or Gitorious server on http://git.openstack.org
> that would serve as the canonical Git repo locations for OpenStack
> projects instead of GitHub. This would be similar to how
> http://git.kernel.org works
>
> 2) Only code hosting has been moved to Git/Gerrit. There are currently
> no plans to discuss moving bug tracking for existing OpenStack core
> projects to GitHub Issues. Gerrit is fully integrated with Launchpad
> bug tracking. This means that Gerrit *will close* (mark Fix Committed)
> Launchpad bugs if you include bug text in your commit message.
>
> 3) The user interface for Gerrit is UGLY. I don't think anyone would
> disagree with that. :) That said, Gerrit's UI can be modified via CSS
> and templates without having to keep a separate fork of Gerrit. If you
> are interested in helping Monty and Jim make the Gerrit UI prettier
> and saving reviewers eyeballs, please do contact me.
>
> Cheers,
> -jay
>
> _______________________________________________
> Mailing list: https://launchpad.net/~openstack
> Post to : openstack@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~openstack
> More help : https://help.launchpad.net/ListHelp
--
Mark Nottingham http://www.mnot.net/
Follow ups
References