)]}'
{
  "commit": "6f0d5ba9e92c2463c2374eafc9bbd0c9ede102c2",
  "tree": "8eef8dcf0f2fc1500e38a77f549f1041cdf1a508",
  "parents": [
    "78b28abf67fced7bbc5a32293d104bb62ff196c4"
  ],
  "author": {
    "name": "David Ostrovsky",
    "email": "david@ostrovsky.org",
    "time": "Sat Mar 14 15:08:48 2026 +0100"
  },
  "committer": {
    "name": "David Ostrovsky",
    "email": "david@ostrovsky.org",
    "time": "Mon Mar 23 17:45:54 2026 +0100"
  },
  "message": "Migrate high-availability plugin to Bazel modules\n\nReplace the custom maven_jar-based external dependency setup with\nbzlmod and rules_jvm_external.\n\nUpdate BUILD targets to use bazlets\u0027 bzlmod-compatible plugin and test\nrules, and add runtime jar checks for third-party dependencies.\n\nDocument how to include the plugin\u0027s module fragment when building the\nplugin in the Gerrit tree.\n\nJGroups declares Byteman/BMUnit as optional test dependencies; exclude\nthem explicitly to avoid bundling unnecessary runtime jars.\n\nNote: jgroups-kubernetes currently bundles mjson classes directly in its\npublished jar, so they appear in the final plugin artifact even though\nthere is no separate mjson dependency in the Bazel graph. This cannot be\nexcluded via rules_jvm_external. Upstream is tracking replacement of\nmjson: jgroups-extras/jgroups-kubernetes#288.\n\nTo update MODULE.bazel.lock file (only required when module dependencies\nhave changed) run:\n\n  bazel mod deps --lockfile_mode\u003dupdate\n\nTo update high-availability_plugin_deps.lock.json file (only required\nwhen Maven dependencies have changed) run:\n\n  REPIN\u003d1 bazel run @high-availability_plugin_deps//:pin\n\nChange-Id: Ifaab4b420fa096fb0d0ed9d4b3ec46f879bc921d\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "14bcf3c8a3a725e9e57215b87604f90f4f8ade50",
      "old_mode": 33188,
      "old_path": "BUILD",
      "new_id": "da759b96d4096b2f5e573d1df71c78479ac20fbe",
      "new_mode": 33188,
      "new_path": "BUILD"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7d94e7087a694f5c772cce4311e94ca79f78b4c7",
      "new_mode": 33188,
      "new_path": "MODULE.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8c48193702f1e8823eba3e3aee8ede0ff063c37c",
      "new_mode": 33188,
      "new_path": "MODULE.bazel.lock"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4f6a9d596a0c8e1d276da3ad17bbeb6b7d8e3e86",
      "new_mode": 33188,
      "new_path": "external_plugin_deps.MODULE.bazel"
    },
    {
      "type": "delete",
      "old_id": "820a05eebe1a2ff0e97fc801e135abdfaf744072",
      "old_mode": 33188,
      "old_path": "external_plugin_deps.bzl",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e1ba92e4e4c24e18985e81a8fc6c2c8c2e994f4c",
      "new_mode": 33188,
      "new_path": "high-availability_plugin_deps.lock.json"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "71d955796b16929d04c9183906b965353cf7de94",
      "new_mode": 33188,
      "new_path": "high-availability_third_party_runtime_jars.allowlist.txt"
    },
    {
      "type": "modify",
      "old_id": "615c1ac16a8ad2aec2c0412067fa5518110ee120",
      "old_mode": 33188,
      "old_path": "src/main/resources/Documentation/build.md",
      "new_id": "5ee8e6c8351272a4f6f99078ea0ef2960eed9de6",
      "new_mode": 33188,
      "new_path": "src/main/resources/Documentation/build.md"
    }
  ]
}
