|
@@ -130,6 +130,133 @@ Second step is to configure the debug configuration
|
|
|

|
|

|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+## 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](https://www.reviewboard.org/) 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](https://www.reviewboard.org/downloads/rbtools/) 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](https://kbroman.org/github_tutorial/pages/first_time.html) 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](https://github.com/cloudera/hue/blob/master/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, goto 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
|
|
|
|
|
+* Must see testing running @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](https://github.com/cloudera/hue/pulls) are also welcomed! To learn how pull request works please refer this [link](https://github.com/asmeurer/git-workflow).
|
|
|
|
|
+
|
|
|
|
|
+### Sump-up
|
|
|
|
|
+
|
|
|
|
|
+We hope that Review Board and these commands will make your life easier and encourage you to [contribute to Hue](https://github.com/cloudera/hue/blob/master/CONTRIBUTING.md) 😉
|
|
|
|
|
+
|
|
|
|
|
+As usual feel free to send feedback on the [hue-user](http://groups.google.com/a/cloudera.org/group/hue-user) list or [@gethue](https://twitter.com/gethue)!
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
## API Server
|
|
## API Server
|
|
|
|
|
|
|
|
### From 30,000 feet
|
|
### From 30,000 feet
|