Thanks a bunch for taking this up, Ismael!

+1, I think it will be much more convenient to sunset RB and move to
github. Especially looking forward to the CIs on PRs and also the merge
script.

Alas, my wonderful patch-review script will be retired :-)

On Thu, Apr 30, 2015 at 6:12 AM, Ismael Juma <ism...@juma.me.uk> wrote:

> Hi all,
>
> Kafka currently uses a combination of Review Board and JIRA for
> contributions and code review. In my opinion, this makes contribution and
> code review a bit harder than it has to be.
>
> I think the approach used by Spark would improve the current situation:
>
> "Generally, Spark uses JIRA to track logical issues, including bugs and
> improvements, and uses Github pull requests to manage the review and merge
> of specific code changes. That is, JIRAs are used to describe what should
> be fixed or changed, and high-level approaches, and pull requests describe
> how to implement that change in the project's source code. For example,
> major design decisions are discussed in JIRA."[1]
>
> It's worth reading the wiki page for all the details, but I will summarise
> the suggested workflow for code changes:
>
>    1. Fork the Github repository at http://github.com/apache/kafka (if you
>    haven't already)
>    2. git checkout -b kafka-XXX
>    3. Make one or more commits (smaller commits can be easier to review and
>    reviewboard makes that hard)
>    4. git push origin kafka-XXX
>    5. Create PR against upstream/trunk (this will update JIRA
>    automatically[2] and it will send an email to the dev mailing list too)
>    6. A CI build will be triggered[3]
>    7. Review process happens on GitHub (it's quite handy to be able to
>    comment on both commit or PR-level, unlike Review Board)
>    8. Once all feedback has been addressed and the build is green, a
>    variant of the `merge_spark_pr.py`[4] script is used to squash, merge,
>    push, close the PR and JIRA issue. The squashed commit generated by the
>    script includes a bunch of useful information including links to the
>    original commits[5] (in the future, I think it's worth reconsidering the
>    squashing of commits, but retaining the information in the commit is
>    already an improvement)
>
> Neha merged a couple of commits via GitHub already and it went smoothly
> although we are still missing a few of the pieces described above:
>
>    1. CI builds triggered by GitHub PRs (this is supported by Apache Infra,
>    we need to request it for Kafka and provide whatever configuration is
>    needed)
>    2. Adapting Spark's merge_park_pr script and integrating it into the
>    kafka Git repository
>    3. Updating the Kafka contribution wiki and adding a CONTRIBUTING.md to
>    the Git repository (this is shown when someone is creating a pull
> request)
>    4. Go through existing GitHub pull requests and close the ones that are
>    no longer relevant (there are quite a few as people have been opening
> them
>    over the years, but nothing was done about most of them)
>    5. Other things I may be missing
>
> I am volunteering to help with the above if people agree that this is the
> right direction for Kafka. Thoughts?
>
> Best.
> Ismael
>
> P.S. I was told in the Apache Infra HipChat that it's not currently
> possible (and there are no plans to change that in the near future) to use
> the GitHub merge button to merge PRs. The merge script does quite a few
> useful things that the merge button does not in any case.
>
> [1]
> https://cwiki.apache.org/confluence/display/SPARK/Contributing+to+Spark
> [2]
>
> https://issues.apache.org/jira/browse/KAFKA-1054?focusedCommentId=14513614&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14513614
> [3] https://blogs.apache.org/infra/entry/github_pull_request_builds_now
> [4] https://github.com/apache/spark/blob/master/dev/merge_spark_pr.py
> [5]
>
> https://github.com/apache/spark/commit/59b7cfc41b2c06fbfbf6aca16c1619496a8d1d00
>



-- 
Thanks,
Neha

Reply via email to