+1! -Jay
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 >