Skip to content

Latest commit

 

History

History
96 lines (66 loc) · 2.71 KB

File metadata and controls

96 lines (66 loc) · 2.71 KB

Build

This plugin can be built with Bazel in the Gerrit source tree.

Clone or link this plugin into the plugins directory of the Gerrit source tree. Then link the plugin's module fragment into Gerrit's plugins directory, replacing the placeholder file. This fragment exposes the plugin's Bazel module and its external dependencies to the Gerrit root module when building in-tree.

  cd gerrit/plugins
  rm external_plugin_deps.MODULE.bazel
  ln -s @PLUGIN@/external_plugin_deps.MODULE.bazel .

From the Gerrit source tree run:

  bazel build plugins/@PLUGIN@

The output is created in:

  bazel-bin/plugins/@PLUGIN@/@PLUGIN@.jar

To execute the tests run either of:

  bazel test plugins/@PLUGIN@/...
  bazel test --test_tag_filters=@PLUGIN@ //...
  bazel test plugins/@PLUGIN@:@PLUGIN@_tests

This project can also be imported into the Eclipse IDE.

Add the plugin name to the CUSTOM_PLUGINS and CUSTOM_PLUGINS_TEST_DEPS sets in Gerrit core in tools/bzl/plugins.bzl, and execute:

  ./tools/eclipse/project.py

Packaged runtime JAR allowlist test

This plugin tracks the set of third-party runtime JARs that are bundled into the plugin JAR. A deterministic, version-agnostic manifest is generated from the plugin’s runtime classpath and compared against the checked-in allowlist:

high-availability_third_party_runtime_jars.allowlist.txt

This acts as a guardrail to detect unintended changes to the packaged runtime dependency set.

To run the check in Gerrit tree:

  bazel test plugins/@PLUGIN@:check_high-availability_third_party_runtime_jars

Updating the allowlist

If the test fails because the packaged third-party JAR set changed, the plugin’s bundled runtime dependencies have changed.

If the change is expected and has been reviewed, refresh the allowlist:

  bazel build plugins/@PLUGIN@:check_high-availability_third_party_runtime_jars_manifest
  cp bazel-bin/plugins/@PLUGIN@/check_high-availability_third_party_runtime_jars_manifest.txt \
  plugins/@PLUGIN@/high-availability_third_party_runtime_jars.allowlist.txt

Commit the updated allowlist along with the dependency change.

Gerrit-tree-only plugin checks

This plugin contains additional guardrail tests that are meaningful only when it is built inside the Gerrit source tree (e.g. checks comparing the plugin’s packaged runtime jars against Gerrit’s own runtime classpath).

Then execute:

  bazel test plugins/@PLUGIN@:high-availability_no_overlap_with_gerrit

How to build the Gerrit Plugin API is described in the Gerrit documentation.

Back to @PLUGIN@ documentation index