495 Commits

Author SHA1 Message Date
David Pursehouse
c9e55e621b Merge branch 'stable-2.14'
* stable-2.14:
  Support Bazel 0.5.1

Change-Id: I32f7de2e404fd0d61abb2060e0d35d1a98af94e5
2017-06-12 08:54:44 +09:00
Shawn Pearce
41c2e73da2 Support Bazel 0.5.1
Bazel 0.5.1 is using "bazel-out/darwin_x86_64-fastbuild/", which
failed these extraction patterns.  Allow anything before the
-fastbuild part of the path.

Change-Id: I850271bb1c657a5ffe77946a6beaf54a3680af75
2017-06-12 08:53:05 +09:00
David Pursehouse
a48bfb56da Merge branch 'stable-2.14'
* stable-2.14:
  Consider plugin's test deps in eclipse classpath generation

Change-Id: I0c19e013f28c1100d341b13e2a6a22484d8f6dea
2017-05-31 15:57:57 +09:00
David Ostrovsky
f2f4ee165c Consider plugin's test deps in eclipse classpath generation
Introduce the CUSTOM_PLUGINS_TEST_DEPS in tools/bzl/plugins.bzl
that allow plugin with external test dependencies to be listed.
That way Eclipse classpath generation process can consider these
dependencies.

Because the plugin's own test rule need these dependencies, it
should expose java_library rule called: <plugin>__plugin_test_deps:

  java_library(
      name = "high-availability__plugin_test_deps",
      visibility = ["//visibility:public"],
      exports = [
          "@byte-buddy//jar",
          "@mockito//jar",
          "@objenesis//jar",
          "@wiremock//jar",
      ],
  )

and re-use this rule in junit_tests rule, e.g.:

  junit_tests(
      name = "high_availability_tests",
      [...]
      deps = [
          [...]
          ":high-availability__plugin_test_deps",
      ]
  )

Bug: Issue 6351
Change-Id: I55b402fa6edb9f2506a91451d70e68d44d1a7762
2017-05-31 06:42:48 +00:00
David Ostrovsky
906b0b81bb Bazel: Include prolog predicate library in Eclipse classpath
Prolog predicate library requires special handling in Eclipse classpath
generation process. In Iacbff16b71 the rule was moved to gerrit-server
build file, but missed to adapt the changed target name in Eclipse
classpath generation process.

Change-Id: Ib5e3e90a61e474b699dece4115a2c8bc8c18faf4
2017-05-19 06:11:14 +02:00
Kasper Nilsson
c78fb72fd9 Add transpilation to PolyGerrit
Utilize the Closure compiler in Bazel to transpile. As part of this, a
rather large file of 'externs' must be added in order to call external
code. This file is specific to Polymer and copied from the Closure
Github, and should be synced any time there are major changes to
Polymer.

Test Plan:

  - run `bazel build polygerrit` and verify that whitespaces are removed
    from resulting gr-app.js file
  - run `bazel build Documentation:licenses.txt` and verify that the new
    dependency is listed in resulting
    bazel-genfiles/Documentation/licenses.txt

TODO in later changes:
  - Get closure optimizations working
  - Explore sourcemaps possibilities
  - Maybe use closure linting?

Change-Id: Ic358743dda7286fea3ac1e95a7991a92c96d6341
(cherry picked from commit 1ea918bd367c091fb4128ab33d8ca7c61cfe770c)
2017-05-15 17:00:01 +09:00
David Ostrovsky
1cbeda4978 maven_jar compatibility to rules_closure#java_import_external
This is a preparation change for bumping rules_closure to the HEAD, that
we need to make transpilation from ES6 to ES5 actually work.

Since this commit: [1] rules_closure moved from using maven_jar to home
grown java_import_external rule. However, this introduced subtle
incompatibility issue: [2], because java_import_external mounts external
dependency under the root directory and not under the @foo/jar directory,
like native and our own custom maven_jar rules are doing.

This leads to the incompatibility, of how the external dependency are
consumed, with the consequence, that artifacts are not found by the
rule_closure rules, that were fetched with our own maven_jar rule.

To rectify, extend our maven_jar rule and generate additional BUILD
file in the root folder of the external dependency directory and alias
it to the real one generated in the @foo/jar directory.

For example, this BUILD file is now generated in root directory:

  alias(
      name = "javax_inject",
      actual = "@javax_inject//jar",
  )

This allows us to omit additional fetching of already fetched artifacts
that are needed by rules_closures rules and let them reference to the
downloaded artifacts in gerrit build.

There is one complication though: java_import_external accepts deps
attribute, in which case the artifacts with dependencies are not
compatible with our own maven_jar custom rule, that doesn't support
transitive dependencies. That means that we can only reuse such
artifacts from the rules_closure build that don't have dependencies.

Another problem, why we can't reuse even such artifacts that don't have
dependencies specified, is different naming convention. gerrit uses
simple names, like jsr305, but rules_closure is using canonical artifact
names, e.g.: com_google_code_findbugs_jsr305, so that we get:

* external/jsr305/jar/jsr305-3.0.1.jar # gerrit
* external/com_google_code_findbugs_jsr305/jsr305-2.0.3.jar # closure

Effectively, right now this change let us only reuse 3 common
dependencies:

* aopalliance
* javax_inject
* args4j

Because the same name, we must solve the collision problem here. Another
considered alternatives to this change would be:

1. Ask rules_closure project to migrate to consuming their dependencies
from @foo/jar directory, so that it is compatible with native and custom
maven_jar rules
2. Consume common dependencies in gerrit with rule_closure's own
java_import_external rule

[1] a47cc063d3
[2] https://github.com/bazelbuild/rules_closure/issues/200

Change-Id: I31e6b863e43adaa1f983a8a9da1675f02cb803f8
(cherry picked from commit b5099530084deb61fcb9e60314579dd0daed79b5)
2017-05-15 16:59:49 +09:00
Han-Wen Nienhuys
17a3c06b98 Make coverage script +x
Change-Id: Iabeed9d9b09eba548073d5baa9dd518f2a674c08
2017-05-11 15:21:41 +00:00
Han-Wen Nienhuys
23ed3486d8 Add script for collecting coverage
Tested with Bazel 0.5rc3

Change-Id: I6cf0b58cd2e7ead0edde8922ddf97f6ea9be6271
2017-05-11 11:34:40 +02:00
David Ostrovsky
b509953008 maven_jar compatibility to rules_closure#java_import_external
This is a preparation change for bumping rules_closure to the HEAD, that
we need to make transpilation from ES6 to ES5 actually work.

Since this commit: [1] rules_closure moved from using maven_jar to home
grown java_import_external rule. However, this introduced subtle
incompatibility issue: [2], because java_import_external mounts external
dependency under the root directory and not under the @foo/jar directory,
like native and our own custom maven_jar rules are doing.

This leads to the incompatibility, of how the external dependency are
consumed, with the consequence, that artifacts are not found by the
rule_closure rules, that were fetched with our own maven_jar rule.

To rectify, extend our maven_jar rule and generate additional BUILD
file in the root folder of the external dependency directory and alias
it to the real one generated in the @foo/jar directory.

For example, this BUILD file is now generated in root directory:

  alias(
      name = "javax_inject",
      actual = "@javax_inject//jar",
  )

This allows us to omit additional fetching of already fetched artifacts
that are needed by rules_closures rules and let them reference to the
downloaded artifacts in gerrit build.

There is one complication though: java_import_external accepts deps
attribute, in which case the artifacts with dependencies are not
compatible with our own maven_jar custom rule, that doesn't support
transitive dependencies. That means that we can only reuse such
artifacts from the rules_closure build that don't have dependencies.

Another problem, why we can't reuse even such artifacts that don't have
dependencies specified, is different naming convention. gerrit uses
simple names, like jsr305, but rules_closure is using canonical artifact
names, e.g.: com_google_code_findbugs_jsr305, so that we get:

* external/jsr305/jar/jsr305-3.0.1.jar # gerrit
* external/com_google_code_findbugs_jsr305/jsr305-2.0.3.jar # closure

Effectively, right now this change let us only reuse 3 common
dependencies:

* aopalliance
* javax_inject
* args4j

Because the same name, we must solve the collision problem here. Another
considered alternatives to this change would be:

1. Ask rules_closure project to migrate to consuming their dependencies
from @foo/jar directory, so that it is compatible with native and custom
maven_jar rules
2. Consume common dependencies in gerrit with rule_closure's own
java_import_external rule

[1] a47cc063d3
[2] https://github.com/bazelbuild/rules_closure/issues/200

Change-Id: I31e6b863e43adaa1f983a8a9da1675f02cb803f8
2017-05-09 11:14:21 -07:00
David Pursehouse
24068fcb0a version.py: Fix replacement in version.bzl
Change-Id: Ifca0a32a922a4bbce7b34069802c1f32ea00f23f
2017-04-26 15:55:41 +02:00
Kasper Nilsson
1ea918bd36 Add transpilation to PolyGerrit
Utilize the Closure compiler in Bazel to transpile. As part of this, a
rather large file of 'externs' must be added in order to call external
code. This file is specific to Polymer and copied from the Closure
Github, and should be synced any time there are major changes to
Polymer.

Test Plan:

  - run `bazel build polygerrit` and verify that whitespaces are removed
    from resulting gr-app.js file
  - run `bazel build Documentation:licenses.txt` and verify that the new
    dependency is listed in resulting
    bazel-genfiles/Documentation/licenses.txt

TODO in later changes:
  - Get closure optimizations working
  - Explore sourcemaps possibilities
  - Maybe use closure linting?

Change-Id: Ic358743dda7286fea3ac1e95a7991a92c96d6341
2017-04-26 13:58:50 +02:00
David Pursehouse
f7d49955cf Merge branch 'stable-2.14'
* stable-2.14:
  Don't ship bouncycastle libraries in plugin API

Change-Id: I2cecc4784c1821a89313bf71b998943df0a449cc
2017-04-10 08:21:56 +09:00
Shawn Pearce
d776fe654f Merge "Don't ship bouncycastle libraries in plugin API" into stable-2.14 2017-04-09 23:02:27 +00:00
David Pursehouse
47248a3913 Merge branch 'stable-2.14'
* stable-2.14:
  Eclipse project generation: Support jgit from external repository

Change-Id: I4ff13ab85cbec8f8826325497c0d2f590240b601
2017-04-07 16:59:14 +09:00
David Ostrovsky
596fff00cc Eclipse project generation: Support jgit from external repository
This change fixes Eclipse project generation when jgit is consumed from
external repository. Only path to the library is added, but not the
sourcepath.

Test Plan:

* Switch to using jgit from external repository by amending the path
  in lib/jgit/jgit.bzl
* Run tools/eclipse/project.py
* Verify that classpath entries are added to the .classpath file

Change-Id: I2bdadb74b3ef869805a96671b7882917967998d6
2017-04-07 07:44:10 +00:00
David Ostrovsky
c5f8066629 Don't ship bouncycastle libraries in plugin API
We cannot shade bouncycastle in the plugin API. Still we need it to be
included in the gerrit.war, licenses file and Eclipse classpath.

Expose bouncycastle libraries in PLUGIN_TEST_DEPS constant, so that
the plugins don't need to change anything in tree build mode.

gerrit_api() bazlet in bazlets repository is extended too, so that the
plugins don't need to change anything in standalone build mode.

One side effect of this change, is that bouncycastle libraries are
now listed with neverlink suffix, e.g.:

* bouncycastle:bcprov-neverlink

Bug: Issue 5826
Change-Id: Idb8051e16b14e20c8dd528783ab297ee25707bb3
2017-04-07 07:38:04 +02:00
David Pursehouse
f3152ac168 version.py: Remove redundant replacement in dev-plugins.txt
Change-Id: I75a80190b3c7b21a673a02c2d57771250ac74e90
2017-03-23 21:15:16 +09:00
David Pursehouse
5476de3e30 version.py: Fix replacement in version.bzl
Change-Id: Ifca0a32a922a4bbce7b34069802c1f32ea00f23f
2017-03-23 21:10:58 +09:00
David Ostrovsky
e51b745efa Bazel: Allow to consume jgit from development tree
Now that Bazel build for JGit is fully implemented, we can document
the process of routing the JGit dependency to the development tree
instead of consuming it from Central or ~/.m2 local repository:

1. Activate local jgit repository in WORKSPACE file:

  local_repository(
      name = "jgit",
      path = "/home/<user>/projects/jgit",
  )

2. Uncomment alias to jgit repository in lib/jgit/**/BUILD files.
It shouldn't be needed and is tracked under this issue upstream: [1]:

  alias(
      name = "jgit-alias",
      actual = select({
          "@//lib:jgit-dev": "@jgit//org.eclipse.jgit:jgit",
          "//conditions:default": "@jgit_lib//jar",
      }),
      visibility = ["//visibility:public"],
  )

Test plan:

Update local JGit tree, run tests and verify that local JGit tree
modifications are relfected in gerrit build:

  $ bazel build --define jgit-dev=1 headless

To consume JGit from Central, do not pass jgit-dev=1:

  $ bazel test ...

[1] https://github.com/bazelbuild/bazel/issues/2707
Change-Id: I1b0fee7df802f6cbd54acbb0bc73157e2b8bc7cf
2017-03-22 22:27:12 +01:00
David Pursehouse
c26261acf9 Fix launching daemon in Eclipse on MacOS
Change I5fc96bf1f removed the generation of the .primary_build_tool
file and change I3d6b90320 removed the build system abstraction with
the motivation that we now only have one build tool.

However this broke launching the daemon from Eclipse on MacOS, which
now fails because bazel is not on the path and can't be found.

Restore the removed functionality, but rename the file to .bazel_path

Change-Id: Ibd0ec09d3bf47f383ca68a37cca4e81640960416
2017-03-17 14:10:41 +09:00
David Ostrovsky
fe8a616af7 Merge "Support build args in tools/maven/api.sh" 2017-03-17 04:40:47 +00:00
Martin Fick
f070ef4352 Support build args in tools/maven/api.sh
You may want to pass arguments to the bazel build command line when
publishing, perhaps to debug output, or perhaps to add standalone flags
to avoid sandboxing on platforms where it is broken.

Change-Id: Ia1a9a50e7b833eea7299d9473dec87e4978b7803
2017-03-16 16:43:31 -06:00
David Pursehouse
34b59f0ad3 Get rid of references to .primary_build_tool
This was introduced to support both buck and bazel build tools, and
is no longer necessary since we completely dropped buck in favor of
bazel.

Change-Id: I5fc96bf1fc27f20180737fea954e150070e5302f
2017-03-15 08:38:05 +09:00
Dan McGregor
feaee26c2d Don't hardcode /bin/bash
Some platforms either don't have bash installed as /bin/bash. Use
the environment to find it in the PATH.

Change-Id: Ie1a6d64146927c83af07d0e2ca7f573c7504f8ef
2017-03-03 08:12:45 -06:00
Alice Kober-Sotzek
0b257d8815 Update documentation of code style settings for IntelliJ
The new settings are in line with the current Google Java Style Guide.
As the google-java-format plugin is better suited to enforce the style,
I added an additional section for it.

Change-Id: I7d9b10e17f1a00624dfd165cf0c9b09a5ff26f67
2017-03-02 11:58:36 +01:00
Paladox none
021d7df24c Do not include cookbook plugin in release.war
1164e53283187b8a2a79052f5ea85471f6f0b6d4 (Allow to add custom core
plugins in release build, 2015-12-11) added an item CUSTOM to the buck
plugin rules to make it easier for people to add additional 'core'
plugins in a release build of a forked copy of Gerrit.

When that was ported to bazel, it included cookbook-plugin by mistake.
As a result, when someone runs

  bazel build release

they get a copy of gerrit with the cookbook plugin included and
enabled, which is almost never what they wanted.

Fix it by making the default list of custom plugins an empty list again.

Change-Id: I9b1653046bd368b8ec5c1978a15bd675c5dd31e7
2017-03-01 00:06:11 +00:00
Han-Wen Nienhuys
8dfc795649 Make built-in bouncycastle actually work
This change fixes the following issues:

* server needs bcpkix for parsing public/private keys.

* do not special-case "jdk15on" in pkg_war.
  We only have these in the BC jars.

* remove BC specific license checking exceptions.

* remove language about requiring BC installed separately.

* remove BC special-casing from eclipse setup.

Tested:
  rm bin/* lib/* in testsite
  ran 141 -> 142 schema upgrade successfully
  ran daemon successfully
  LICENSE.txt in war file has an entry for the BC license
  Loaded new project in eclipse; verified that BouncyCastleUtil.java loads.

Change-Id: I80c2b0c038ada8397b44373194bd199f491a39c3
2017-02-20 15:02:06 +01:00
Paladox none
e57dde95d5 gerrit_plugin: Consistently pass kwargs to java rules
This allows us to pass additional parameters to gerrit_plugin:

  gerrit_plugin(
      name = "secure-config",
      javacopts = ["-Xep:InsecureCryptoUsage:OFF"],
      [...]

Change-Id: Ibcd328fc970fe65b33de789081a07bf0f1a0969f
2017-02-14 00:41:37 +00:00
David Pursehouse
c358e12b54 Merge "Remove internal Eclipse java formatter" 2017-02-10 10:32:28 +00:00
David Ostrovsky
aceab96289 Remove internal Eclipse java formatter
This is a preparation change to support gjf Eclipse plugin.

Change-Id: I5ea3946c87f64f37087952f31e509832822dd60f
2017-02-10 09:20:15 +00:00
David Ostrovsky
f6df1d7db6 Bump google-java-format to 1.3
Upgrade to version 1.3 which is the version in which the Eclipse
plugin was included [1].

[1] https://github.com/google/google-java-format/pull/118

Change-Id: Ica5f3bcef13ebfa57ad97d706ab10c4fc5d3fa30
2017-02-10 08:24:15 +01:00
David Ostrovsky
f3831dac4d Bazel: Support publishing to snapshot Maven repository
Change-Id: Ie60d322290e24c00394926bf43b1c8019f8d37c8
2017-02-09 06:31:41 +01:00
Saša Živkov
720c7d79e2 Fix tools/setup_gjf.sh to also work on Mac
Don't use the "readlink -f" as the -f option doesn't work the same way
on Linux and Mac.

The idea for this fix is borrowed from a similar fix done in Buck [1]
in this commit [2].

[1] https://github.com/facebook/buck/issues/1017
[2] f97b55c23c

Change-Id: I59cf184e184b09c1fabf0403012fd03b40d6732d
2017-02-08 12:11:58 +01:00
Dave Borowitz
4a74548c22 Document gjf and add a script to standardize/streamline setup
google-java-format is not uniformly available in package management
systems across OSes. More importantly, we want to make sure that all
contributors are using a standardized version, to avoid unnecessary
changes due to slight differences between versions.

While we're in the dev documentation, link to the Google Java Style
Guide, and remove some wording that is clearly redundant with the style
guide.

Change-Id: Ib14dab2e692339f836083fad08a7a435a2f24470
2017-02-07 12:38:37 -05:00
Paladox none
6e5f8e619c maven_jar: Add support for exports and deps attributes
Expose deps and exports attribute from java_import to maven_jar rule.
This was provided in Buck's maven_jar rule. The following maven_jar
rules:

  maven_jar(
      name = "foo",
      artifact = "foo:foo:1.0",
      sha1 = "4d7e828a4651e2f590b4a059925991be58e62da6",
      deps = [
          "@bar//jar",
          "@baz//jar",
      ],
      exports = [
          "@qux//jar",
          "@quux//jar",
      ]

expands to this java_import rule:

  java_import(
      name = 'jar',
      jars = ['foo-1.0.jar'],
      srcjar = 'foo-1.0-src.jar',
      deps = [
          '@bar//jar',
          '@baz//jar',
      ],
      exports = [
          '@qux//jar',
          '@quux//jar',
      ],
  )

Change-Id: I58cc5df9820240b24fc1b6cb261966f517c4891c
2017-02-07 08:37:21 +00:00
David Ostrovsky
f025664a52 gerrit_plugin: Add support for different plugin output file
In some cases there is extra postprocess step to the final plugin
artifact.  Expose target_suffix attribute in gerrit_plugin rule
to support this use case.

Change-Id: I9c7bf92e0c29c1962efb9c7e1c188d8f131713bb
2017-02-05 22:40:16 +01:00
Han-Wen Nienhuys
e0803dbd2d Update bower to 1.8.0.
Change-Id: Ib0f8a099252632c5a15ccb72ab48dbf8bf8840d6
2017-02-01 13:33:55 +01:00
Han-Wen Nienhuys
3dede1653a bower2bazel: don't specify versions for non-seed packages.
The 'seed' packages are the ones whose versions are set by us in
WORKSPACE. We should not set the versions for the rest of the packages
in the bower input JSON, so bower can suggest the right versions to
use.

Change-Id: I9b75f16655d049e2064726862980a339c91dd534
2017-02-01 13:33:55 +01:00
David Pursehouse
be568391e0 Merge "Bazel: Use full word match for generating plugin version" 2017-01-30 10:45:47 +00:00
Paladox none
cd9adc4f44 maven_jar: Make sha1 attribute optional
This will simplify to consume artifacts from local Maven repository.

Change-Id: Ie2b2b6103e16361b187202bddd8ecf5dae61f75f
2017-01-29 19:16:02 +00:00
Luca Milanesio
f020736d5b Bazel: Use full word match for generating plugin version
Use the full word grep matching on the list of versions
when generating the correct plugin mame in a jar.

Previously, with a substring matching a plugin like 'owners'
resulted in multiple matches and thus generated an invalid
manifest file.

Change-Id: I9fda43aef42b2d46bd2be64e6e9e7425d1a0b7fe
2017-01-27 21:30:55 +00:00
David Pursehouse
7e43d1d1ad Rename project_bzl.py to project.py
Since the project.py script was removed along with the buck-based
build, it's not necessary to keep the _bzl suffix on the script for
the bazel build.

Change-Id: I3f97cab5cc0e855a5dc1865bb4cc00c18adea2e9
2017-01-24 08:45:16 +09:00
David Ostrovsky
fdbfcad77d Remove Buck based build
Bug: Issue 5302
Change-Id: I6e860446ef30ff0ad1c7c49fc0e39d39d921820b
2017-01-23 12:44:58 +00:00
Han-Wen Nienhuys
97c8fb0f56 workspace-status.sh: quote 'tr' arguments.
Otherwise, the shell may interpret [a-z], leading to version strings
such as

  STABLE_BUILD_superm[nifest_LABEL 6010213-dirty

Change-Id: I5846efc03419e7361d3171df14646c96f66118ac
2017-01-12 16:44:03 +01:00
Dave Borowitz
68ea4b0075 Don't include directory entries in GWT UI zip files
Currently, the GWT UI zip files contain some empty bazel directories:

$ unzip -l bazel-genfiles/gerrit-gwtui/ui_optdbg.zip | grep bazel
Archive:  bazel-genfiles/gerrit-gwtui/ui_optdbg.zip
        0  2016-12-20 09:57   bazel-out/
        0  2016-12-20 09:57   bazel-out/local-fastbuild/
        0  2016-12-20 09:57   bazel-out/local-fastbuild/genfiles/
        0  2016-12-20 09:57   bazel-out/local-fastbuild/genfiles/gerrit-gwtui/

These end up making it into the WAR files, which is unfortunate. The
easiest way to eliminate these is to just omit all directories from
this one intermediate zip file. As there are several other
intermediate zip files, we actually still end up with directory
entries in the output WAR, just not these garbage ones.

Change-Id: I32bb39acc4d32207f9e006486cbba47fc06e0be0
2016-12-20 11:37:25 -05:00
Han-Wen Nienhuys
42ea853037 bazel: remove code to sniff license field in bower.json.
Instead, use a hard-coded map of licenses.

Hardcode a false dependency on diff-match-patch to avoid a diff for
the Apache2.0 license.

Tested:
  bazel build Documentation:js_licenses.txt
  buck build Documentation:js_licenses.txt
  diff -u  buck-out/gen/Documentation/js_licenses.txt/js_licenses.txt \
    bazel-genfiles/Documentation/js_licenses.txt
 diff shows only diffs for added [[header]] anchors.

Change-Id: I7886e1fadec900cf854a1b3b7c538b83d66af7a4
2016-12-20 15:44:52 +01:00
David Ostrovsky
52e9272e68 Merge "Buck: Activate error prone checks" 2016-12-13 20:55:54 +00:00
David Ostrovsky
55e5fe618c Bazel: Split deps and provided_deps in gerrit_plugin rule
Change-Id: I21f258f18a6af70863c77683c54929c54f0ef3e5
2016-12-13 11:44:13 +00:00
David Ostrovsky
c13a3db81a Bazel: Expose neverlink artifact in maven_jar rule
Given that the feature request: [1], still wasn't implemented, expose
neverlink artifact for every artifact per default. This is needed to
support in Gerrit tree build for plugins, because every dependency
can be potentially used from a plugin, in which case it must be used
in neverlink form to avoid shipping it twice, in plugin artifact in
addition to gerrit.war itself.

With this change in place, we can write this build rule:

  gerrit_plugin(
      name = "verify-status",
      [...]
      provided_deps = [
          "@commons_dbcp//jar:neverlink",
      ],
      [...]

that would now work in both build mode: standalone (using bazlets) and
in Gerrit tree mode.

[1] https://github.com/bazelbuild/bazel/issues/1402

Change-Id: I1240d25c576b13bd4d7450a0e5ba143df27a3d3a
2016-12-13 11:43:58 +00:00