[jboss-as7-dev] How do you handle AS7 main/head merges/commits?

Jason T. Greene jason.greene at redhat.com
Thu Sep 29 12:00:53 EDT 2011


On 9/28/11 9:34 AM, Bill Burke wrote:
> How do you guys handle merging/committing updates to the AS7 main/head
> GIT repo?

We use a process where everyone submits patches via a github pull 
request. That pull request is sent to a mailing list that everyone can 
subscribe to and review comment on (either by using the github comment 
thing or just replying to the email).

We have a "small" set of people that are responsible for merging the 
requests. They follow pull requests, pay attention to comments/reviews, 
do a review themselves, and potentially consult a subject expert if 
needed. They also do a local full "all tests" test run to verify that no 
regressions have occurred. After scrutiny the patch is finally pushed.

> How many people have responsibility to do this?Do you plan
> on adding more?  What is the criteria to be added?

Right now we have 5 people, which is too big IMO. The main rationale is 
to have sufficient timezone and holiday coverage, and also to split up 
the work involved in processing the queue. A major reason for the need 
of timezone coverage is really due to testing resource limitations. 
Right now we only run the TCK on the main master branch. Ideally we 
would move to a model where anyone can kick off a one-off TCK run using 
any branch (right now we can do one-off as7 testsuite runs though).

The criteria to be added for AS is:

1. There is a need for another person.

2. Extremely knowledgeable in GIT - If you have push rights you can 
easily screw up the repo. While git has a lot of power, the downside is 
that running a repo requires familiarity with a lot more details than 
you do running a subversion server.

3. Familiarity with the full codebase - Enough knowledge that any patch 
that comes in can have be reviewed with some level of certainty. Part of 
this is also knowing who to go to when more in depth review is needed.

4. Willingness to keep up with and enforce project architectural/design 
goals - Sometimes this means holding back good work so that it can be 
updated to be inline with other goals. For example a great subsystem 
feature can come in but it adds too much to the boot time, or it might 
not use the common services that provide stuff like uniform EE injection 
and so on. To be able to do this, the person has to monitor all 
cross-impacting design discussions

5. Willingness to do all of the extra work required by the role.

What are your
> processes here?   More importantly, do you like these processes?
>
> I'm asking all this cuz I'm moving Resteasy to GIT pretty soon and want
> to know best-practices here.

You might want to also look at Infinispan's process:
https://docs.jboss.org/author/display/ISPN/Contributing+to+Infinispan#ContributingtoInfinispan-SourceControl

The process we tell contributors to follow is here:
http://community.jboss.org/wiki/HackingOnAS7

-- 
Jason T. Greene
JBoss AS Lead / EAP Platform Architect
JBoss, a division of Red Hat


More information about the jboss-as7-dev mailing list