[OpenStack-Infra] Announcing a new infrastructure project, Vinz code review system.

Philip Schwartz philip.schwartz at RACKSPACE.COM
Mon Mar 17 16:15:42 UTC 2014


All,

I am a member of a new release engineering tools team at Rackspace. Our goal is to help build the next generation of tools to clean up our internal development process along with the OpenStack development process. With this in mind, I recently broached the topic of a replacement system to Gerrit with jeblair, fungi, and mordred. This will be a complete from the ground up replacement of Gerrit built completely in python following the standards devised for the OpenStack projects. The targeted name for the system will be Vinz in order to match the naming of Zuul.

The underlying core will be built in python using:

  *   Oslo.config
  *   Oslo.messaging (possible addition of a gearman driver for direct interaction with Zuul)
  *   Stevedore
  *   Pecan
  *   WSME
  *   Sqlalchemy
  *   Alembic

With the GUI using the same standards as Storyboard with:

  *   Angular
  *   Bower
  *   Grunt

The hope is for a more flexible and infrastructure driven code review system. This will allow for the ability to customize Vinz well beyond Gerrit along with in-depth control over workflow within CI and third party test environments.

The goal also includes solving problems/limiting factors that are currently seen within Gerrit. A good example of this is that any one testing setup that is run, can make no more then one comment on a review.

The system will be based around interactions in git and use git features like notes to tag review information against a git hash. This will allow for a clean review history to be stored using the git filesystem structure while not forcing a new clone or update of a branch to pull in the review information as notes are not fetched without extra flags.

We would also like to build into the system the ability to use things like git-review in order to maintain the developer base experience with what is currently used for the OpenStack projects. This will require api compatibility with Gerrit.

Our current layout and design for the project are as follows:

  *   Coordinator – Core application that controls flow of all messages and interactions within Vinz
     *   Rule Engine – A component that governs when actions and state changes can happen.
     *   State Engine - A component that has complete control over the state of reviews.
  *   Sink – An extensible RPC client that registers with the Coordinator and listens for messages to run remotely for tests/gate purposes.
     *   Examples
        *   A Scheduler that submits requests to Zuul.
        *   A Poller watching for new review requests or for the status of tests/gates.
        *   An API that allows submission of request or responses from actions from third party systems.
        *   A process that receives and fires off Gerrit style triggers in order to ease the transition of current infrastructure.

We want to develop this 100% in the open with discussions from all of infrastructure and the OpenStack community so any feedback and discussion is welcomed.

Detailed use cases and design documentation will follow this announcement soon. We also hope to move most of this into Storyboard as soon as possible in the form of blueprints and story/task lists.

- Philip Schwartz
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-infra/attachments/20140317/4d249420/attachment.html>


More information about the OpenStack-Infra mailing list