Elaborate developer documentation Change-Id: Ib389717863be0e7b2d5197c24533607ae82e4696
diff --git a/Documentation/developer-guide.md b/Documentation/developer-guide.md index f0877c5..82fedb0 100644 --- a/Documentation/developer-guide.md +++ b/Documentation/developer-guide.md
@@ -7,13 +7,50 @@ Gitiles requires [Bazel](https://bazel.build/) to build. You need to use Java for building Gitiles. You can install Bazel from -bazel.build: https://bazel.build/versions/master/docs/install.html +bazel.build: https://bazel.build/versions/master/docs/install.html . +Alternatively, you can use `apt-get`. ``` - bazel build //:gitiles - bazel test //... +$ sudo apt-get update +$ sudo apt-get install bazel ``` +The best way to build and run gitiles is to use bazelisk. + +``` +$ go install github.com/bazelbuild/bazelisk@latest +$ export PATH=$PATH:$(go env GOPATH)/bin +``` +You are now ready to build and test. + +``` +$ bazelisk build //:gitiles +$ bazelisk test //... +``` + +## Troubleshooting + +If you encounter build errors such as: + +``` +Error in execute: Argument 0 of execute is neither a path, label, nor string. +``` + +Make sure you are using python2. For debian users, the command +is: + +``` +sudo apt-get install python-is-python2 +``` + +Upon uploading your new CL, if you encounter a message related to a +missing `Change-Id`, you are missing the commit hook. Likely the command +to download it should appear in the Hint section of the message. If it +does not, use the following command: + +``` +f=`git rev-parse --git-dir`/hooks/commit-msg ; mkdir -p $(dirname $f) ; curl -Lo $f https://gerrit-review.googlesource.com/tools/hooks/commit-msg ; chmod +x $f +``` ## Running Locally and Testing @@ -28,6 +65,14 @@ To run unit tests, refer to the aforementioned bazel test command. +## Pushing your changes +This repository does not work with `repo` tool. To push your CL to +staging, use the following command. + +``` +git push origin HEAD:refs/for/master +``` + ## Eclipse IDE