Hue Development Process - How to do code changes and reviews with Review Board and Git

Published on 17 July 2014 in Development - 3 minutes read - Last modified on 19 April 2021

December 2020: GitHub pull requests are now prefered https://docs.gethue.com/developer/development/#development-process

Note:

During the development process if you are facing any problem then, it is recommended to check your issues at https://discourse.gethue.com/ and https://github.com/cloudera/hue/issues?q=is%3Aissue+. If the solution is not found then, feel free to create an issue at https://github.com/cloudera/hue/issues.

Here is a tutorial about how to use the code review tool Review Board for a better productivity!

Setup

Hue project uses Review Board and Pull Requests for code reviews. For more complex patches it's advisable to use RB than a plain pull request on github. The advantage of Pull Request is that the CI (syntax check, tests…) automatically runs for you. Along with the web app, a command line tool named RBTool is used to make things easier.

Create accounts in https://review.cloudera.org, https://issues.cloudera.org/browse/HUE and https://github.com and share the usernames

Then, join the ‘hue’ group in your account https://review.cloudera.org/account/preferences/#groups

Then download the Review Board tools and install it.

If you've never used git and github before, there are bunch of things you need to do before going further.

Now, clone cloudera/hue:

git clone https://github.com/cloudera/hue

Then, go inside your git repository:

romain@runreal:~/projects/hue$ rbt setup-repo

Enter the Review Board server URL: https://review.cloudera.org

Use the Git repository 'hue' (git://github.com/cloudera/hue.git)? [Yes/No]: yes

Create '/home/romain/projects/hue/.reviewboardrc' with the following?

REVIEWBOARD_URL = "https://review.cloudera.org"

REPOSITORY = "hue"

BRANCH = "master"

[Yes/No]: yes

Config written to /home/romain/projects/hue/.reviewboardrc

Create a new branch with the jira id (HUE-XXX) as the branch name:

git checkout master
git pull --rebase origin master
git checkout -b HUE-XXX

Then make your changes in code:

git add <file>
git diff --cached
git commit -m "HUE-XXX <Ticket summary>"

Post a review

We have wrapped up the typical submission in a dedicated tools/scripts/hue-review script prefilled with all the details of the commits:

Now we post the review:

tools/scripts/hue-review HEAD~1..HEAD <reviewers> "HUE-XXX [component] <Ticket summary>" --bugs-closed=HUE-XXX
  • Above command must return the review link as given in below example.
  • Goto the review link and varify details & press publish. All the reviewers will be informed with an email.

eg:

tools/scripts/hue-review HEAD~1..HEAD romain,enricoberti,erickt "HUE-2123 [beeswax] Handle cancel state properly" -bugs-closed=HUE-2123

Review request #4501 posted.

https://review.cloudera.org/r/4501

Et voila! Here is our review https://review.cloudera.org/r/4501.

Note:

If you have more than one diff, update HEAD~1..HEAD accordingly (e.g. HEAD~2..HEAD)

Now go to the ticket and add a comment with content

  • Ticket summary
  • Review @ review link

Update a review

Modify the previous commit diff:

git add <file>
git commit --amend

Update the review:

rbt post -u -r <Review-board-id> HEAD~1..HEAD

Again, go to the review link and varify details & press publish.

Ship It

Once we get ship it from at least one reviewer, we can push the changes to master

git rebase origin/master
git push origin HEAD:ci-commit-master-<yourname>
  • The push will auto run the tests and push it to master
  • It can be seen on https://circleci.com/gh/cloudera/workflows/hue
    • Two builds would be made - One for Python 2.7 and another for Python 3.6
    • If successful, the change would be auto merged to master
    • On failure, we will get a mail
    • Runs usually take 10-20 min
  • Once merged mark the review as submitted - Close > Submitted
  • Add the commit link to the ticket and mark it as resolved

Note:

For lightweight issues, Github pull requests are also welcomed! To learn how pull request works please refer this link.

Sump-up

We hope that Review Board and these commands will make your life easier and encourage you to contribute to Hue 😉

As usual feel free to send feedback on the hue-user list or @gethue!


comments powered by Disqus

More recent stories

26 June 2024
Integrating Trino Editor in Hue: Supporting Data Mesh and SQL Federation
Read More
03 May 2023
Discover the power of Apache Ozone using the Hue File Browser
Read More