Gerrit Code Review - Building with Buck
=======================================


Installation
------------

There is currently no binary distribution of Buck, so it has to be manually
built and installed.  Apache Ant is required.  Currently only Linux and Mac
OS are supported.

Clone the git and build it:

----
  git clone https://gerrit.googlesource.com/buck
  cd buck
  ant
----

Make sure you have a `bin/` directory in your home directory and that
it is included in your path:

----
  mkdir ~/bin
  PATH=~/bin:$PATH
----

Add a symbolic link in `~/bin` to the buck executable:

----
  ln -s `pwd`/bin/buck ~/bin/
----

Verify that `buck` is accessible:

----
  which buck
----

If you plan to use the link:#buck-daemon[Buck daemon] add a symbolic
link in `~/bin` to the buckd executable:

----
  ln -s `pwd`/bin/buckd ~/bin/
----

To enable autocompletion of buck commands, install the autocompletion
script from `./scripts/bash_completion` in the buck project.  Refer to
the script's header comments for installation instructions.


[[eclipse]]
Eclipse Integration
-------------------


Generating the Eclipse Project
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Create the Eclipse project:

----
  tools/eclipse/project.py
----

In Eclipse, choose 'Import existing project' and select the `gerrit` project
from the current working directory.

Expand the `gerrit` project, right-click on the `buck-out` folder, select
'Properties', and then under 'Attributes' check 'Derived'.

Note that if you make any changes in the project configuration
that get saved to the `.project` file, for example adding Resource
Filters on a folder, they will be overwritten the next time you run
`tools/eclipse/project.py`.


Refreshing the Classpath
~~~~~~~~~~~~~~~~~~~~~~~~

If an updated classpath is needed, the Eclipse project can be
refreshed and missing dependency JARs can be downloaded:

----
  tools/eclipse/project.py
----


Attaching Sources
~~~~~~~~~~~~~~~~~

To save time and bandwidth source JARs are only downloaded by the buck
build where necessary to compile Java source into JavaScript using the
GWT compiler.  Additional sources may be obtained, allowing Eclipse to
show documentation or dive into the implementation of a library JAR:

----
  tools/eclipse/project.py --src
----


[[build]]
Building on the Command Line
----------------------------


Gerrit Development WAR File
~~~~~~~~~~~~~~~~~~~~~~~~~~~

To build the Gerrit web application:

----
  buck build gerrit
----

The output executable WAR will be placed in:

----
  buck-out/gen/gerrit.war
----


Extension and Plugin API JAR Files
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

To build the extension and plugin API JAR files:

----
  buck build api
----

The output JAR files will be placed in:

----
  buck-out/gen/{extension,plugin}-api.jar
----

Install {extension,plugin}-api to the local maven repository:

----
  buck build api_install
----

Deploy {extension,plugin}-api to the remote maven repository

----
  buck build api_deploy
----

The type of the repo is induced from the Gerrit version name, i.e.
* 2.8-SNAPSHOT: snapshot repo
* 2.8: release repo

Plugins
~~~~~~~

To build all core plugins:

----
  buck build plugins:core
----

The output JAR files for individual plugins will be placed in:

----
  buck-out/gen/plugins/<name>/<name>.jar
----

The JAR files will also be packaged in:

----
  buck-out/gen/plugins/core.zip
----

To build a specific plugin:

----
  buck build plugins/<name>
----

The output JAR file will be be placed in:

----
  buck-out/gen/plugins/<name>/<name>.jar
----

Note that when building an individual plugin, the `core.zip` package
is not regenerated.


[[documentation]]
Documentation
~~~~~~~~~~~~~

To build the documentation:

----
  buck build docs
----

The generated html files will be placed in:

----
  buck-out/gen/Documentation/html__tmp/Documentation
----

The html files will also be bundled into `html.zip` in this location:

----
  buck-out/gen/Documentation/html.zip
----

[[release]]
Gerrit Release WAR File
~~~~~~~~~~~~~~~~~~~~~~~

To build the release of the Gerrit web application, including documentation and
all core plugins:

----
  buck build release
----

The output release WAR will be placed in:

----
  buck-out/gen/release.war
----

[[tests]]
Running Unit Tests
------------------

To run all tests including acceptance tests:

----
  buck test --all
----

To exclude slow tests:

----
  buck test --all --exclude slow
----

To run a specific test, e.g. the acceptance test
`com.google.gerrit.acceptance.git.HttpPushForReviewIT`:

----
  buck test //gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/git:HttpPushForReviewIT
----


Dependencies
------------

Dependency JARs are normally downloaded automatically, but Buck can inspect
its graph and download any missing JAR files.  This is useful to enable
subsequent builds to run without network access:

----
  tools/download_all.py
----

When downloading from behind a proxy (which is common in some corporate
environments), it might be necessary to explicitly specify the proxy that
is then used by `curl`:

----
  export http_proxy=http://<proxy_user_id>:<proxy_password>@<proxy_server>:<proxy_port>
----

Redirection to local mirrors of Maven Central and the Gerrit storage
bucket is supported by defining specific properties in
`local.properties`, a file that is not tracked by Git:

----
  echo download.GERRIT = http://nexus.my-company.com/ >>local.properties
  echo download.MAVEN_CENTRAL = http://nexus.my-company.com/ >>local.properties
----

The `local.properties` file may be placed in the root of the gerrit repository
being built, or in `~/.gerritcodereview/`.  The file in the root of the gerrit
repository has precedence.

Building against unpublished Maven JARs
---------------------------------------

To build against unpublished Maven JARs, like gwtorm or PrologCafe, the custom
JARs must be installed in the local Maven repository (`mvn clean install`) and
`maven_jar()` must be updated to point to the `MAVEN_LOCAL` Maven repository for
that artifact:

[source,python]
----
 maven_jar(
   name = 'gwtorm',
   id = 'gwtorm:gwtorm:42',
   license = 'Apache2.0',
   repository = MAVEN_LOCAL,
 )
----

Caching Build Results
~~~~~~~~~~~~~~~~~~~~~

Build results can be locally cached, saving rebuild time when
switching between Git branches. Buck's documentation covers
caching in link:http://facebook.github.io/buck/concept/buckconfig.html[buckconfig].
The trivial case using a local directory is:

----
  cat >.buckconfig.local <<EOF
  [cache]
    mode = dir
    dir = buck-cache
  EOF
----

[[buck-daemon]]
Using Buck daemon
~~~~~~~~~~~~~~~~~

Buck ships with a daemon command `buckd`, which uses the
link:https://github.com/martylamb/nailgun[Nailgun] protocol for running
Java programs from the command line without incurring the JVM startup
overhead.

Using a Buck daemon can save significant amounts of time as it avoids the
overhead of starting a Java virtual machine, loading the buck class files
and parsing the build files for each command.

It is safe to run several buck daemons started from different project
directories and they will not interfere with each other. Buck's documentation
covers daemon in http://facebook.github.io/buck/command/buckd.html[buckd].

The trivial use case is to run `buckd` from the project's root directory and
run `buck` as usual:

----
  buckd
  buck build gerrit
  Using buckd.
  [-] PARSING BUILD FILES...FINISHED 0.6s
  [-] BUILDING...FINISHED 0.2s
----

Override Buck's settings
~~~~~~~~~~~~~~~~~~~~~~~~

User-specific configuration can be placed in one of the following files:
`/etc/buck.conf`, `$HOME/.buck/buck.conf` or `$HOME/.buckrc`.

For example to override Buck's default 1GB heap size:

----
  cat > $HOME/.buckrc <<EOF
  export BUCK_EXTRA_JAVA_ARGS="\
  -XX:MaxPermSize=512m \
  -Xms8000m \
  -Xmx16000m"
  EOF
----

Or to debug BUCK, set `BUCK_DEBUG_MODE` to anything non-empty, then connect to
port 8888:

----
  cat > $HOME/.buckrc <<EOF
  export BUCK_DEBUG_MODE="yes"
  EOF
----

GERRIT
------
Part of link:index.html[Gerrit Code Review]
