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
_______________________________________________
OpenStack-Infra mailing list
[email protected]
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-infra

Reply via email to