This model is quite different from the model which many of us have been using 
years. As such, I think we need to define a bit more structure so that we keep 
the project tidy and under control. A few points:


  *   Since this new flow model requires a branch for a commit, we should 
enforce a naming strategy. These short-lived feature branches for commits must 
be easy to find and remove. We should also make the community aware that once 
you have had your pull request merged, you should get rid of your branch. As 
for branch naming conventions, I haven't thought through it very much, but 
perhaps simply the name of the associated JIRA, such as AMBARI-12345.


  *   We should also take this opportunity to go through any of our existing 
branches and clean out the ones which are very stale and not related to a prior 
release or existing feature under development. We have a branch named "trunkj" 
...


  *   Using longer-lived feature branches should remain similar to today and 
should work nicely with this model. When merging them incrementally, we can 
just keep them open after the pull request is merged.


  *   I do not think that adding a [COMPONENT] tag is useful. Many commits span 
ambari-server and ambari-agent, and a good number also span ambari-web and 
ambari-server. I also think that we should have the title of the JIra match the 
commit exactly as we do today.

On Jan 3, 2018, at 6:55 PM, Vivek Ratnavel 
<vivekratna...@apache.org<mailto:vivekratna...@apache.org>> wrote:

Hi all,

As we are linking our github accounts with gitbox to gain write access to
github repository, I wanted to start a discussion on the future code review
and commit process.

After taking a look at other Apache projects including Apache Spark, I
suggest we adapt the following flow:

  - A JIRA is created with all the required details at
  https://issues.apache.org/
  - Create a new branch from local fork and push commits to that branch
  - Run all the tests and update or add new tests if required
  - Open a pull request against trunk or any other branch. I suggest using
  PR title format similar to what Apache Spark is using.


  1. The pull request title should be of the form [AMBARI-xxxx][COMPONENT]
     Title, where AMBARI-xxxx is the relevant JIRA number, COMPONENT is
     one of the ambari components such as ambari-server, ambari-web, etc. and
     Title may be the JIRA’s title or a more specific title describing the
     PR itself.
     2. If the pull request is still a work in progress, and so is not
     ready to be merged, but needs to be pushed to Github to
facilitate review,
     then add [WIP] after the component.

Following such a format to create pull requests will help us create a
portal such as https://spark-prs.appspot.com/ in the future to keep track
of open pull requests. Thanks to github's rich set of APIs.


  - Wait for a +1 or approval of PR from any committer. If there is a need
  for update, keep pushing commits to the same branch and notify the reviewer
  of the update.
  - If a PR has +1 from a committer, any committer can then go ahead and
  merge the PR and mark the JIRA as resolved

Please let me know what you think about this flow. Your feedback is
appreciated.

Thanks,
Vivek Ratnavel

Reply via email to