)]}'
{
  "commit": "8b6671fff8d43279dd89a1e1eea6851746f546a0",
  "tree": "cd595026c14f21b6be5c895aaa3e941b6702fa2d",
  "parents": [
    "985fe2a7667e13bb520a2f0096d2047dc5c7f702"
  ],
  "author": {
    "name": "Matteo Merli",
    "email": "mmerli@apache.org",
    "time": "Sat May 09 10:46:13 2026 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Sat May 09 10:46:13 2026 -0700"
  },
  "message": "Scope gRPC dependencies and rely on grpc-bom for single version (#4784)\n\n* Scope gRPC dependencies and rely on grpc-bom for single version\n\nReplace the brittle `grpc-all` dependency (with its long exclusion list in\nthe parent pom) with the specific gRPC artifacts each module actually\nuses. The `grpc-bom` import in dependencyManagement continues to enforce\na single version across all `io.grpc:*` artifacts.\n\nModule changes:\n- pom.xml: drop the `grpc-all` dependencyManagement block; the BOM alone\n  manages versions\n- stream/common: `grpc-all` -\u003e `grpc-api`, `grpc-stub`, `grpc-core`\n  (compile); `grpc-inprocess`, `grpc-util` (test)\n- stream/tests-common: `grpc-all` -\u003e `grpc-api`, `grpc-stub`; drop unused\n  `grpc-testing` (no `io.grpc.testing.*` imports anywhere)\n- stream/proto: drop `grpc-protobuf` (dead after the LightProto\n  migration; generated code uses Netty `ByteBuf` only)\n- stream/clients/java/base: add explicit `grpc-inprocess`,\n  `grpc-netty-shaded`, `grpc-util` that were silently inherited\n- metadata-drivers/etcd: `grpc-all` -\u003e `grpc-api`, `grpc-stub`\n\nDrop pointless protobuf-java usages so statelib no longer needs it:\n- statelib `Bytes.toLong(ByteString)` was a dead overload (every caller\n  uses the `byte[]` variant); removed\n- statelib `MVCCStoreImpl` used `TextFormat.escapeBytes` once for an\n  error message; replaced with JDK 17 `HexFormat.of().formatHex`\n- bookkeeper-server `BookieImplTest` had two no-op protobuf\n  round-trips (`ByteString.copyFrom(bytes).toByteArray()` and\n  `unsafeWrap(...).asReadOnlyByteBuffer()`); replaced with plain\n  `byte[]` and `ByteBuffer.wrap`\n\nUpdate LICENSE-{all,server,bkctl}.bin.txt to match the new bundled jar\nset: drop entries for grpc-all/-alts/-auth/-grpclb/-opentelemetry\n/-protobuf/-protobuf-lite/-services/-testing/-xds/-rls\n/-gcp-csm-observability and the transitively-removed proto-google-common\n-protos, protobuf-java-util, api-common, google-http-client*,\ngoogle-auth-library-*, auto-value-annotations, re2j, opencensus-*,\nconscrypt; clean up the orphaned source-URL footnotes.\n\nNet dist change: 7 grpc jars (down from 18) and 1 protobuf jar\n(down from 3, now sourced only via prometheus-metrics-exposition-formats).\n\n* Fix LICENSE/NOTICE files for the dropped jars\n\nCI\u0027s `dev/check-all-licenses` flagged remaining stale references that\nwere not caught in the previous commit:\n\n- NOTICE-{all,server,bkctl}.bin.txt: drop the unbundled `grpc-all`,\n  `grpc-auth`, `grpc-protobuf`, `grpc-protobuf-lite`, `grpc-testing`\n  entries; add the previously-missing `grpc-api`, `grpc-inprocess`,\n  `grpc-util` to the gRPC list (these have always been bundled).\n- LICENSE-{all,server,bkctl}.bin.txt: drop\n  `opentelemetry-gcp-resources-1.56.0-alpha.jar` (was transitive via the\n  removed `grpc-gcp-csm-observability`, no longer bundled).\n- LICENSE-bkctl.bin.txt: drop the entire OpenTelemetry SDK list and the\n  protobuf-java entry; bkctl never bundled any of these (pre-existing\n  staleness, hidden in CI by `set -e` stopping on the first dist error).\n- bookkeeper-dist/src/assemble/{bin-all,bin-server,bkctl}.xml: drop the\n  `deps/google-auth-library-credentials-0.20.0/LICENSE` include from\n  every assembly (orphaned now that the jar is no longer bundled), and\n  drop the `deps/protobuf/LICENSE` include from the bkctl assembly\n  (bkctl doesn\u0027t ship protobuf-java).\n- Delete the orphaned\n  `bookkeeper-dist/src/main/resources/deps/google-auth-library-credentials-0.20.0/`\n  directory.\n\nVerified locally: `dev/check-all-licenses` passes against freshly-built\nall/server/bkctl tarballs.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b4738eed52a7498652c50569411cc7eba6dbc79d",
      "old_mode": 33188,
      "old_path": "bookkeeper-dist/src/assemble/bin-all.xml",
      "new_id": "aea7fada3b72de6f3b648f93f02b2c4b5560c278",
      "new_mode": 33188,
      "new_path": "bookkeeper-dist/src/assemble/bin-all.xml"
    },
    {
      "type": "modify",
      "old_id": "eb4aada2fe0fd637cbe219550818b46138a03a3b",
      "old_mode": 33188,
      "old_path": "bookkeeper-dist/src/assemble/bin-server.xml",
      "new_id": "c57cfedc00fca1255e3d1c492e717bef37151908",
      "new_mode": 33188,
      "new_path": "bookkeeper-dist/src/assemble/bin-server.xml"
    },
    {
      "type": "modify",
      "old_id": "97df42b9701abdc1f9090039ea49395bdfc42917",
      "old_mode": 33188,
      "old_path": "bookkeeper-dist/src/assemble/bkctl.xml",
      "new_id": "a312f4bd886782b86e26a91c20d801a4251e384a",
      "new_mode": 33188,
      "new_path": "bookkeeper-dist/src/assemble/bkctl.xml"
    },
    {
      "type": "modify",
      "old_id": "983c78f15480e7cb201d968372526d17f7d6fd2a",
      "old_mode": 33188,
      "old_path": "bookkeeper-dist/src/main/resources/LICENSE-all.bin.txt",
      "new_id": "89bb911b7b5d1078c7496e626dd8054eb96f8fa5",
      "new_mode": 33188,
      "new_path": "bookkeeper-dist/src/main/resources/LICENSE-all.bin.txt"
    },
    {
      "type": "modify",
      "old_id": "e89409a8863f083fe41f798b0775c87309e2ee19",
      "old_mode": 33188,
      "old_path": "bookkeeper-dist/src/main/resources/LICENSE-bkctl.bin.txt",
      "new_id": "b0cd6d1bfbd6faac764a1f369d65c93dec525b8c",
      "new_mode": 33188,
      "new_path": "bookkeeper-dist/src/main/resources/LICENSE-bkctl.bin.txt"
    },
    {
      "type": "modify",
      "old_id": "de6aeb6c96a92dbaea431525e6ea38b67f03a422",
      "old_mode": 33188,
      "old_path": "bookkeeper-dist/src/main/resources/LICENSE-server.bin.txt",
      "new_id": "da3d3aa7a30c3f243d458cadddfa3c231ead152a",
      "new_mode": 33188,
      "new_path": "bookkeeper-dist/src/main/resources/LICENSE-server.bin.txt"
    },
    {
      "type": "modify",
      "old_id": "c4be69172d80a418ac8bc1f9202aec26046586d8",
      "old_mode": 33188,
      "old_path": "bookkeeper-dist/src/main/resources/NOTICE-all.bin.txt",
      "new_id": "55902034bc00f6debd0db86b0a73e4288f0059f2",
      "new_mode": 33188,
      "new_path": "bookkeeper-dist/src/main/resources/NOTICE-all.bin.txt"
    },
    {
      "type": "modify",
      "old_id": "36671abb5247b4fa93922a43579f628312db64ca",
      "old_mode": 33188,
      "old_path": "bookkeeper-dist/src/main/resources/NOTICE-bkctl.bin.txt",
      "new_id": "fda941fb7d4ec9e1ad33342187ae0c0d6b1265f3",
      "new_mode": 33188,
      "new_path": "bookkeeper-dist/src/main/resources/NOTICE-bkctl.bin.txt"
    },
    {
      "type": "modify",
      "old_id": "9a1db61a42ee4dd104b3f4bad2b986689ce3a2b2",
      "old_mode": 33188,
      "old_path": "bookkeeper-dist/src/main/resources/NOTICE-server.bin.txt",
      "new_id": "a10b36bcd3a2ca465077cc25a73df88c36a73759",
      "new_mode": 33188,
      "new_path": "bookkeeper-dist/src/main/resources/NOTICE-server.bin.txt"
    },
    {
      "type": "delete",
      "old_id": "12edf23c6711ffcd3bfbfbad8606fcda542c9931",
      "old_mode": 33188,
      "old_path": "bookkeeper-dist/src/main/resources/deps/google-auth-library-credentials-0.20.0/LICENSE",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "4787ae8d36f2f930f0d590df22097f5cb4a59461",
      "old_mode": 33188,
      "old_path": "bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/BookieImplTest.java",
      "new_id": "748c3fbc4cd93b15c4771b2521d3c29d0f93ffdb",
      "new_mode": 33188,
      "new_path": "bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/BookieImplTest.java"
    },
    {
      "type": "modify",
      "old_id": "0179eaad963b206593caa12e4fd796050515836d",
      "old_mode": 33188,
      "old_path": "metadata-drivers/etcd/pom.xml",
      "new_id": "03765d0254809ba1b722865cde7f8d1a95abda30",
      "new_mode": 33188,
      "new_path": "metadata-drivers/etcd/pom.xml"
    },
    {
      "type": "modify",
      "old_id": "cbe4db68753eb87aa6243ce9ec727d5bd6b5a0ad",
      "old_mode": 33188,
      "old_path": "pom.xml",
      "new_id": "72e29bb50957550e1520832f3a46310b89306cf6",
      "new_mode": 33188,
      "new_path": "pom.xml"
    },
    {
      "type": "modify",
      "old_id": "ac0a9dae510e98d58b84192f39748eb7eef5bca2",
      "old_mode": 33188,
      "old_path": "stream/clients/java/base/pom.xml",
      "new_id": "3092c72c40b5eedfb6e47fefaf330dea9b711767",
      "new_mode": 33188,
      "new_path": "stream/clients/java/base/pom.xml"
    },
    {
      "type": "modify",
      "old_id": "10287b189d96fe9296ef5d89b7d2d6017913d9ea",
      "old_mode": 33188,
      "old_path": "stream/common/pom.xml",
      "new_id": "22cfec543e1c6c7a544156c8335e8381eb2cb9fb",
      "new_mode": 33188,
      "new_path": "stream/common/pom.xml"
    },
    {
      "type": "modify",
      "old_id": "999ffac581839456ab46fb3d44fa2d24e304611a",
      "old_mode": 33188,
      "old_path": "stream/proto/pom.xml",
      "new_id": "8794a583aa0a796aa68eee8a708ead371c0a8170",
      "new_mode": 33188,
      "new_path": "stream/proto/pom.xml"
    },
    {
      "type": "modify",
      "old_id": "0cee92b8f31cb882352b04f78b88de5fb4a3a5b2",
      "old_mode": 33188,
      "old_path": "stream/statelib/src/main/java/org/apache/bookkeeper/statelib/impl/Bytes.java",
      "new_id": "961ee82442eab8d48dc1e86fde63ef9ab3e8fc6c",
      "new_mode": 33188,
      "new_path": "stream/statelib/src/main/java/org/apache/bookkeeper/statelib/impl/Bytes.java"
    },
    {
      "type": "modify",
      "old_id": "450f65101231c4cd6609fbf5370a38fa7cba5771",
      "old_mode": 33188,
      "old_path": "stream/statelib/src/main/java/org/apache/bookkeeper/statelib/impl/mvcc/MVCCStoreImpl.java",
      "new_id": "4d20fd5e3649a784af51d0acc937dd332637d606",
      "new_mode": 33188,
      "new_path": "stream/statelib/src/main/java/org/apache/bookkeeper/statelib/impl/mvcc/MVCCStoreImpl.java"
    },
    {
      "type": "modify",
      "old_id": "5b5c9a5cd9b2df469ea6ee7bb97534c0cedb4dde",
      "old_mode": 33188,
      "old_path": "stream/tests-common/pom.xml",
      "new_id": "5c33825480045235c24e42ade05a12daf568ce16",
      "new_mode": 33188,
      "new_path": "stream/tests-common/pom.xml"
    }
  ]
}
