December 2020: GitHub pull requests are now prefered https://docs.gethue.com/developer/development/#development-process
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!
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.
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:
[email protected]:~/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.
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.
If you have more than one diff, update
HEAD~1..HEAD accordingly (e.g.
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.
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
We hope that Review Board and these commands will make your life easier and encourage you to contribute to Hue 😉