blob: 18924d346865a8ff61d4b6a238b9ef6be9fc3c86 [file] [log] [blame]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -08001= Gerrit Code Review - Building with Buck
David Pursehoused0525a72013-05-09 17:49:34 +01002
3
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -08004== Installation
David Pursehoused0525a72013-05-09 17:49:34 +01005
6There is currently no binary distribution of Buck, so it has to be manually
David Pursehouse64c16442013-05-14 10:49:03 +09007built and installed. Apache Ant is required. Currently only Linux and Mac
David Pursehoused319f2b2013-12-13 14:48:45 +09008OS are supported. Gerrit's buck wrappers require Python version 2.6 or higher.
David Pursehoused0525a72013-05-09 17:49:34 +01009
10Clone the git and build it:
11
12----
13 git clone https://gerrit.googlesource.com/buck
14 cd buck
15 ant
16----
17
David Pursehousee9803ab2014-03-12 14:15:10 +090018If you don't have a `bin/` directory in your home directory, create one:
David Pursehoused0525a72013-05-09 17:49:34 +010019
20----
David Pursehouse64c16442013-05-14 10:49:03 +090021 mkdir ~/bin
David Pursehousee9803ab2014-03-12 14:15:10 +090022----
23
24Add the `~/bin` folder to the path:
25
26----
David Pursehouse64c16442013-05-14 10:49:03 +090027 PATH=~/bin:$PATH
David Pursehoused0525a72013-05-09 17:49:34 +010028----
29
David Pursehousee9803ab2014-03-12 14:15:10 +090030Note that the buck executable needs to be available in all shell sessions,
31so also make sure it is appended to the path globally.
32
David Pursehouse5c42b8c2013-05-17 13:25:47 +010033Add a symbolic link in `~/bin` to the buck executable:
David Pursehoused0525a72013-05-09 17:49:34 +010034
35----
David Pursehouse64c16442013-05-14 10:49:03 +090036 ln -s `pwd`/bin/buck ~/bin/
37----
38
David Pursehouse5c42b8c2013-05-17 13:25:47 +010039Verify that `buck` is accessible:
David Pursehouse64c16442013-05-14 10:49:03 +090040
41----
42 which buck
David Pursehoused0525a72013-05-09 17:49:34 +010043----
44
David Pursehousebe284992013-09-26 14:43:33 +090045To enable autocompletion of buck commands, install the autocompletion
46script from `./scripts/bash_completion` in the buck project. Refer to
47the script's header comments for installation instructions.
48
David Pursehoused0525a72013-05-09 17:49:34 +010049
David Pursehouse5861a9a2013-05-15 10:25:19 +090050[[eclipse]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -080051== Eclipse Integration
David Pursehoused0525a72013-05-09 17:49:34 +010052
53
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -080054=== Generating the Eclipse Project
David Pursehoused0525a72013-05-09 17:49:34 +010055
Shawn Pearcea7a3ee12013-09-20 10:42:37 -070056Create the Eclipse project:
David Pursehoused0525a72013-05-09 17:49:34 +010057
58----
Shawn Pearcea7a3ee12013-09-20 10:42:37 -070059 tools/eclipse/project.py
David Pursehoused0525a72013-05-09 17:49:34 +010060----
61
62In Eclipse, choose 'Import existing project' and select the `gerrit` project
Edwin Kempin0d687ff2013-06-14 09:41:07 +020063from the current working directory.
David Pursehoused0525a72013-05-09 17:49:34 +010064
65Expand the `gerrit` project, right-click on the `buck-out` folder, select
66'Properties', and then under 'Attributes' check 'Derived'.
67
Shawn Pearcea7a3ee12013-09-20 10:42:37 -070068Note that if you make any changes in the project configuration
69that get saved to the `.project` file, for example adding Resource
70Filters on a folder, they will be overwritten the next time you run
71`tools/eclipse/project.py`.
David Pursehouse38ba8802013-05-17 13:42:03 +010072
David Pursehouseb46cf492013-05-14 09:41:30 +090073
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -080074=== Refreshing the Classpath
David Pursehoused0525a72013-05-09 17:49:34 +010075
Shawn Pearcea7a3ee12013-09-20 10:42:37 -070076If an updated classpath is needed, the Eclipse project can be
77refreshed and missing dependency JARs can be downloaded:
David Pursehoused0525a72013-05-09 17:49:34 +010078
79----
Shawn Pearcea7a3ee12013-09-20 10:42:37 -070080 tools/eclipse/project.py
David Pursehoused0525a72013-05-09 17:49:34 +010081----
82
83
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -080084=== Attaching Sources
Shawn Pearce7b553262013-05-13 21:25:13 -070085
86To save time and bandwidth source JARs are only downloaded by the buck
87build where necessary to compile Java source into JavaScript using the
88GWT compiler. Additional sources may be obtained, allowing Eclipse to
89show documentation or dive into the implementation of a library JAR:
90
91----
Shawn Pearcea7a3ee12013-09-20 10:42:37 -070092 tools/eclipse/project.py --src
Shawn Pearce7b553262013-05-13 21:25:13 -070093----
94
95
David Pursehouse6de7ee22013-05-20 11:08:51 +090096[[build]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -080097== Building on the Command Line
David Pursehoused0525a72013-05-09 17:49:34 +010098
99
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -0800100=== Gerrit Development WAR File
David Pursehoused0525a72013-05-09 17:49:34 +0100101
102To build the Gerrit web application:
103
104----
105 buck build gerrit
106----
107
108The output executable WAR will be placed in:
109
110----
111 buck-out/gen/gerrit.war
112----
113
114
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -0800115=== Extension and Plugin API JAR Files
David Pursehoused0525a72013-05-09 17:49:34 +0100116
David Ostrovskye5487a02013-11-25 00:00:13 +0100117To build the extension, plugin and GWT API JAR files:
David Pursehoused0525a72013-05-09 17:49:34 +0100118
119----
120 buck build api
121----
122
David Ostrovskye5487a02013-11-25 00:00:13 +0100123Java binaries, Java sources and Java docs are generated into corresponding
David Pursehouse43dc7482013-12-13 14:54:42 +0900124project directories in `buck-out/gen`, here as example for plugin API:
David Pursehoused0525a72013-05-09 17:49:34 +0100125
126----
David Ostrovskye5487a02013-11-25 00:00:13 +0100127 buck-out/gen/gerrit-plugin-api/plugin-api.jar
128 buck-out/gen/gerrit-plugin-api/plugin-api-src.jar
129 buck-out/gen/gerrit-plugin-api/plugin-api-javadoc.jar
David Pursehoused0525a72013-05-09 17:49:34 +0100130----
131
David Ostrovsky358a4582014-05-13 23:55:04 +0200132Install {extension,plugin,gwt}-api to the local maven repository:
David Ostrovsky6e6a9672013-05-30 01:10:12 +0200133
134----
135 buck build api_install
136----
137
David Ostrovsky358a4582014-05-13 23:55:04 +0200138Deploy {extension,plugin,gwt}-api to the remote maven repository:
David Ostrovsky6e6a9672013-05-30 01:10:12 +0200139
140----
141 buck build api_deploy
142----
143
David Ostrovsky358a4582014-05-13 23:55:04 +0200144Install gerrit.war to the local maven repository:
145
146----
147 buck build war_install
148----
149
150Deploy gerrit.war to the remote maven repository:
151
152----
153 buck build war_deploy
154----
155
David Ostrovsky6e6a9672013-05-30 01:10:12 +0200156The type of the repo is induced from the Gerrit version name, i.e.
David Pursehousea02e1972014-03-12 14:17:40 +0900157
Shawn Pearce56fa6ba2014-03-14 00:15:27 -0700158* `2.9-SNAPSHOT`: snapshot repo
159* `2.9`: release repo
David Pursehouseb46cf492013-05-14 09:41:30 +0900160
David Pursehouse43dc7482013-12-13 14:54:42 +0900161Deploying to the remote repository still depends on Maven, and the credentials
162for the repository need to be
163link:dev-release-deploy-config.html#deploy-configuration-settings-xml[
164configured in Maven's settings.xml file].
165
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -0800166=== Plugins
David Pursehouse0bc51db2013-05-14 12:46:49 +0900167
168To build all core plugins:
169
170----
171 buck build plugins:core
172----
173
174The output JAR files for individual plugins will be placed in:
175
176----
177 buck-out/gen/plugins/<name>/<name>.jar
178----
179
180The JAR files will also be packaged in:
181
182----
183 buck-out/gen/plugins/core.zip
184----
185
186To build a specific plugin:
187
188----
Shawn Pearce6586c202013-11-09 08:54:48 -0800189 buck build plugins/<name>:<name>
David Pursehouse0bc51db2013-05-14 12:46:49 +0900190----
191
192The output JAR file will be be placed in:
193
194----
195 buck-out/gen/plugins/<name>/<name>.jar
196----
197
198Note that when building an individual plugin, the `core.zip` package
199is not regenerated.
200
Shawn Pearce6586c202013-11-09 08:54:48 -0800201Additional plugins with BUCK files can be added to the build
202environment by cloning the source repository into the plugins
203subdirectory:
204
205----
206 git clone https://gerrit.googlesource.com/plugins/<name> plugins/<name>
207 echo /plugins/<name> >>.git/info/exclude
208----
209
210Additional plugin sources will be automatically added to Eclipse the
211next time project.py is run:
212
213----
214 tools/eclipse/project.py
215----
216
David Pursehouse90a9c102013-09-06 18:42:10 +0900217
218[[documentation]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -0800219=== Documentation
David Pursehouse90a9c102013-09-06 18:42:10 +0900220
David Pursehousec08d03e2013-12-10 18:16:10 +0900221To build only the documentation:
David Pursehouse90a9c102013-09-06 18:42:10 +0900222
223----
224 buck build docs
225----
226
227The generated html files will be placed in:
228
229----
David Ostrovsky7cd233e2013-09-26 07:21:31 +0200230 buck-out/gen/Documentation/html__tmp/Documentation
David Pursehouse90a9c102013-09-06 18:42:10 +0900231----
232
David Ostrovsky7cd233e2013-09-26 07:21:31 +0200233The html files will also be bundled into `html.zip` in this location:
David Pursehouse90a9c102013-09-06 18:42:10 +0900234
David Ostrovsky7cd233e2013-09-26 07:21:31 +0200235----
236 buck-out/gen/Documentation/html.zip
237----
David Pursehouse90a9c102013-09-06 18:42:10 +0900238
David Pursehousec08d03e2013-12-10 18:16:10 +0900239To build the executable WAR with the documentation included:
240
241----
242 buck build withdocs
243----
244
245The WAR file will be placed in:
246
247----
248 buck-out/gen/withdocs.war
249----
250
David Ostrovsky811e6032013-09-06 08:35:45 +0200251[[release]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -0800252=== Gerrit Release WAR File
David Ostrovsky811e6032013-09-06 08:35:45 +0200253
254To build the release of the Gerrit web application, including documentation and
255all core plugins:
256
257----
258 buck build release
259----
260
261The output release WAR will be placed in:
262
263----
264 buck-out/gen/release.war
265----
David Pursehouse0bc51db2013-05-14 12:46:49 +0900266
David Ostrovskye64e30d2014-03-25 06:25:56 -0700267[[all]]
268=== Combined build target
269
270To build release and api targets, a combined build target is provided:
271
272----
273 buck build all
274----
275
David Pursehouse5861a9a2013-05-15 10:25:19 +0900276[[tests]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -0800277== Running Unit Tests
David Pursehoused0525a72013-05-09 17:49:34 +0100278
279To run all tests including acceptance tests:
280
281----
282 buck test --all
283----
284
285To exclude slow tests:
286
287----
Shawn Pearce11d27c82013-07-24 08:09:31 -0700288 buck test --all --exclude slow
David Pursehoused0525a72013-05-09 17:49:34 +0100289----
290
David Ostrovskyc4e0ac62014-04-21 18:25:18 +0200291To include a specific group of acceptance tests:
292
293----
294 buck test --all --include api
295----
296
297The following groups of tests are currently supported:
298
299* api
300* git
301* pgm
302* rest
303* server
304* ssh
305
Edwin Kempin674078a2013-08-20 11:37:14 +0200306To run a specific test, e.g. the acceptance test
307`com.google.gerrit.acceptance.git.HttpPushForReviewIT`:
308
309----
310 buck test //gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/git:HttpPushForReviewIT
311----
312
David Pursehoused0525a72013-05-09 17:49:34 +0100313
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -0800314== Dependencies
David Pursehoused0525a72013-05-09 17:49:34 +0100315
316Dependency JARs are normally downloaded automatically, but Buck can inspect
317its graph and download any missing JAR files. This is useful to enable
Shawn Pearcea7a3ee12013-09-20 10:42:37 -0700318subsequent builds to run without network access:
David Pursehoused0525a72013-05-09 17:49:34 +0100319
320----
Shawn Pearcea7a3ee12013-09-20 10:42:37 -0700321 tools/download_all.py
David Pursehoused0525a72013-05-09 17:49:34 +0100322----
323
David Pursehouseb46cf492013-05-14 09:41:30 +0900324When downloading from behind a proxy (which is common in some corporate
325environments), it might be necessary to explicitly specify the proxy that
326is then used by `curl`:
327
328----
329 export http_proxy=http://<proxy_user_id>:<proxy_password>@<proxy_server>:<proxy_port>
330----
331
Shawn Pearce1b89f852013-05-13 20:26:34 -0700332Redirection to local mirrors of Maven Central and the Gerrit storage
333bucket is supported by defining specific properties in
334`local.properties`, a file that is not tracked by Git:
335
336----
337 echo download.GERRIT = http://nexus.my-company.com/ >>local.properties
338 echo download.MAVEN_CENTRAL = http://nexus.my-company.com/ >>local.properties
339----
340
David Pursehouse6fb2c4d2013-05-16 16:51:46 +0900341The `local.properties` file may be placed in the root of the gerrit repository
342being built, or in `~/.gerritcodereview/`. The file in the root of the gerrit
343repository has precedence.
344
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -0800345== Building against unpublished Maven JARs
David Ostrovskyee9f9922013-08-15 00:21:04 +0200346
347To build against unpublished Maven JARs, like gwtorm or PrologCafe, the custom
David Pursehouseb99db5c2013-09-26 11:34:42 +0900348JARs must be installed in the local Maven repository (`mvn clean install`) and
349`maven_jar()` must be updated to point to the `MAVEN_LOCAL` Maven repository for
David Ostrovskyee9f9922013-08-15 00:21:04 +0200350that artifact:
351
David Pursehouseb99db5c2013-09-26 11:34:42 +0900352[source,python]
David Ostrovskyee9f9922013-08-15 00:21:04 +0200353----
354 maven_jar(
355 name = 'gwtorm',
356 id = 'gwtorm:gwtorm:42',
David Ostrovskyee9f9922013-08-15 00:21:04 +0200357 license = 'Apache2.0',
358 repository = MAVEN_LOCAL,
359 )
360----
361
David Ostrovsky07df9592014-02-01 23:47:22 +0100362== Building against unpublished JARs, that change frequently
363
364If a dependent Gerrit library is undergoing active development it must be
365recompiled and the change must be reflected in the Buck build process. For
366example testing Gerrit against changed JGit snapshot version. After building
367JGit library, the artifacts are created in local Maven build directory, e. g.:
368
369----
370 mvn package
371 /home/<user>/projects/jgit/org.eclipse.jgit/target/org.eclipse.jgit-3.3.0-SNAPSHOT.jar
372 /home/<user>/projects/jgit/org.eclipse.jgit/target/org.eclipse.jgit-3.3.0-SNAPSHOT-sources.jar
373----
374
375If as usual, installation of the build artifacts takes place in local maven
376repository, then the Buck build must fetch them from there with normal
377`download_file.py` process. Disadvantage of this approach is that Buck cache
378invalidation must occur to refresh the artifacts after next
379change-compile-install round trip.
380
381To shorten that workflow and take the installation of the artifacts to the
382local Maven repository and fetching it again from there out of the picture,
383`local_jar()` method is used instead of `maven_jar()`:
384
385[source,python]
386----
387 local_jar(
388 name = 'jgit',
389 jar = '/home/<user>/projects/jgit/org.eclipse.jgit/target/org.eclipse.jgit-3.3.0-SNAPSHOT.jar',
390 src = '/home/<user>/projects/jgit/org.eclipse.jgit/target/org.eclipse.jgit-3.3.0-SNAPSHOT-sources.jar',
391 deps = [':ewah']
392 )
393----
394
395This creates a symlink to the Buck targets direct against artifacts in
396another project's Maven target directory:
397
398----
399 buck-out/gen/lib/jgit/jgit.jar ->
400 /home/<user>/projects/jgit/org.eclipse.jgit/target/org.eclipse.jgit-3.3.0-SNAPSHOT.jar
401----
402
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -0800403== Building against artifacts from custom Maven repositories
David Ostrovsky2536d062013-11-14 00:35:07 +0100404
405To build against custom Maven repositories, two modes of operations are
406supported: with rewrite in local.properties and without.
407
408Without rewrite the URL of custom Maven repository can be directly passed
409to the maven_jar() function:
410
411[source,python]
412----
413 GERRIT_FORGE = 'http://gerritforge.com/snapshot'
414
415 maven_jar(
416 name = 'gitblit',
417 id = 'com.gitblit:gitblit:1.4.0',
418 sha1 = '1b130dbf5578ace37507430a4a523f6594bf34fa',
419 license = 'Apache2.0',
420 repository = GERRIT_FORGE,
421 )
422----
423
424When the custom URL has to be rewritten, then the same logic as with Gerrit
425known Maven repository is used: Repo name must be defined that matches an entry
426in local.properties file:
427
428----
429 download.GERRIT_FORGE = http://my.company.mirror/gerrit-forge
430----
431
432And corresponding BUCK excerpt:
433
434[source,python]
435----
436 GERRIT_FORGE = 'GERRIT_FORGE:'
437
438 maven_jar(
439 name = 'gitblit',
440 id = 'com.gitblit:gitblit:1.4.0',
441 sha1 = '1b130dbf5578ace37507430a4a523f6594bf34fa',
442 license = 'Apache2.0',
443 repository = GERRIT_FORGE,
444 )
445----
446
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -0800447=== Caching Build Results
Shawn Pearce9e4e2432013-05-30 13:09:29 -0700448
449Build results can be locally cached, saving rebuild time when
450switching between Git branches. Buck's documentation covers
451caching in link:http://facebook.github.io/buck/concept/buckconfig.html[buckconfig].
452The trivial case using a local directory is:
453
454----
455 cat >.buckconfig.local <<EOF
456 [cache]
457 mode = dir
458 dir = buck-cache
459 EOF
460----
461
Edwin Kempin9a8b1dc2013-09-16 09:08:34 +0200462[[buck-daemon]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -0800463=== Using Buck daemon
David Ostrovskyd5ae8d32013-09-15 20:10:17 +0200464
David Pursehouseb99db5c2013-09-26 11:34:42 +0900465Buck ships with a daemon command `buckd`, which uses the
David Ostrovskyd5ae8d32013-09-15 20:10:17 +0200466link:https://github.com/martylamb/nailgun[Nailgun] protocol for running
467Java programs from the command line without incurring the JVM startup
David Pursehouseb99db5c2013-09-26 11:34:42 +0900468overhead.
469
470Using a Buck daemon can save significant amounts of time as it avoids the
471overhead of starting a Java virtual machine, loading the buck class files
472and parsing the build files for each command.
473
474It is safe to run several buck daemons started from different project
475directories and they will not interfere with each other. Buck's documentation
476covers daemon in http://facebook.github.io/buck/command/buckd.html[buckd].
477
David Ostrovsky26e3be62014-05-23 08:34:07 +0200478To use `buckd` the additional
479link:https://facebook.github.io/watchman[watchman] program must be installed.
480
481[[watchman]]
482=== Installing watchman
483
484Watchman is used internally by Buck to monitor directory trees and is needed
485for buck daemon to work properly. Because buckd is activated by default in the
486latest version of Buck, it searches for the watchman executable in the
487path and issues a warning when it is not found and kills buckd.
488
489To prepare watchman installation on Linux:
David Ostrovskyd5ae8d32013-09-15 20:10:17 +0200490
491----
David Ostrovsky26e3be62014-05-23 08:34:07 +0200492 git clone https://github.com/facebook/watchman.git
493 cd watchman
494 ./autogen.sh
David Ostrovskyd5ae8d32013-09-15 20:10:17 +0200495----
496
David Ostrovsky26e3be62014-05-23 08:34:07 +0200497To install it in user home directory (without root privileges):
498
499----
500 ./configure --prefix $HOME/watchman
501 make install
502----
503
504To install it system wide:
505
506----
507 ./configure
508 make
509 sudo make install
510----
511
512Put $HOME/watchman/bin/watchman in path or link to $HOME/bin/watchman.
513
514To install watchman on OS X:
515
516----
517 brew install --HEAD watchman
518----
519
520See the original documentation for more information:
521link:https://facebook.github.io/watchman/docs/install.html[Watchman
522installation].
523
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -0800524=== Override Buck's settings
David Ostrovskyefaff302013-09-20 22:36:14 +0200525
Shawn Pearce4e1a8bc2013-11-28 18:38:30 -0800526Additional JVM args for Buck can be set in `.buckjavaargs` in the
527project root directory. For example to override Buck's default 1GB
528heap size:
David Ostrovskyefaff302013-09-20 22:36:14 +0200529
530----
Shawn Pearce4e1a8bc2013-11-28 18:38:30 -0800531 cat > .buckjavaargs <<EOF
532 -XX:MaxPermSize=512m -Xms8000m -Xmx16000m
David Ostrovskyefaff302013-09-20 22:36:14 +0200533 EOF
534----
535
David Ostrovskyfe2934e2014-04-22 00:36:12 +0200536== Rerun unit tests
David Ostrovskya4ea92e72014-03-25 06:42:33 -0700537
David Ostrovskyfe2934e2014-04-22 00:36:12 +0200538If for some reasons tests, that were already run must be repeated, unit test
539cache must be removed fist. That's because the test execution results are
540cached by Buck:
David Ostrovskya4ea92e72014-03-25 06:42:33 -0700541
542----
543 $ rm -rf buck-out/bin/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/group/.AddRemoveGroupMembersIT/
544----
545
David Ostrovskyfe2934e2014-04-22 00:36:12 +0200546After clearing the cache test can be rerun again:
David Ostrovskya4ea92e72014-03-25 06:42:33 -0700547
548----
549 $ buck test //gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/group:AddRemoveGroupMembersIT
550 TESTING //gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/group:AddRemoveGroupMembersIT
551 PASS 14,9s 8 Passed 0 Failed com.google.gerrit.acceptance.rest.group.AddRemoveGroupMembersIT
552 TESTS PASSED
553----
554
555An alternative approach is to use a Buck feature:
556--test-selectors (-filters, -f) option:
557
558----
559 buck test --all -f 'com.google.gerrit.acceptance.rest.change.SubmitByMergeAlwaysIT'
560 TESTING SELECTED TESTS
561 PASS 14,5s 6 Passed 0 Failed com.google.gerrit.acceptance.rest.change.SubmitByMergeAlwaysIT
562 TESTS PASSED
563----
564
565When this option is used, cache is disabled per design and doesn't need to be deleted.
David Ostrovsky074859e2014-04-19 22:52:47 +0200566Note: when -f option is used, the whole unit test cache is dropped. As a consequence,
567repeating the
568
569----
570buck test --all
571----
572
573would re-execute all tests again.
David Ostrovskya4ea92e72014-03-25 06:42:33 -0700574
David Pursehoused0525a72013-05-09 17:49:34 +0100575GERRIT
576------
577Part of link:index.html[Gerrit Code Review]
Yuxuan 'fishy' Wang99cb68d2013-10-31 17:26:00 -0700578
579SEARCHBOX
580---------