)]}'
{
  "commit": "e5ef69bdc9dfca67ddf04150bd69f2010715c48b",
  "tree": "d45dde7104084ac5e7feb9ac9cdd90bfbd41ae9c",
  "parents": [
    "4ec1e805133019e3a00bb935beb6115146b5825c"
  ],
  "author": {
    "name": "Alex Martani",
    "email": "alexandre.martani@benchling.com",
    "time": "Thu Jun 26 14:51:16 2025 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Thu Jun 26 21:51:16 2025 +0000"
  },
  "message": "feat(gazelle): Add type-checking only dependencies to pyi_deps (#3014)\n\nhttps://github.com/bazel-contrib/rules_python/pull/2538 added the\nattribute `pyi_deps` to python rules, intended to be used for\ndependencies that are only used for type-checking purposes. This PR adds\na new directive, `gazelle:python_generate_pyi_deps`, which, when\nenabled:\n\n- When a dependency is added only to satisfy type-checking only imports\n(in a `if TYPE_CHECKING:` block), the dependency is added to `pyi_deps`\ninstead of `deps`;\n- Third-party stub packages (eg. `boto3-stubs`) are now added to\n`pyi_deps` instead of `deps`.\n\n---------\n\nCo-authored-by: Douglas Thor \u003cdougthor42@users.noreply.github.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "4facff4917f98518835da61213c76e1835edb227",
      "old_mode": 33188,
      "old_path": "CHANGELOG.md",
      "new_id": "78a3d1caf5c06a81e79ab629cb8f7a24f6cc159d",
      "new_mode": 33188,
      "new_path": "CHANGELOG.md"
    },
    {
      "type": "modify",
      "old_id": "58ec55eb1188187f462b78f98bdaad990c36a468",
      "old_mode": 33188,
      "old_path": "gazelle/README.md",
      "new_id": "5c63e21762cd56b5679255505e9f85369b6dc85e",
      "new_mode": 33188,
      "new_path": "gazelle/README.md"
    },
    {
      "type": "modify",
      "old_id": "ae0f7ee1d103cdf5c6dff1cd623c1455013ea65d",
      "old_mode": 33188,
      "old_path": "gazelle/python/configure.go",
      "new_id": "db80fc1a229d921830c510e3dc8b98b7cc9aa246",
      "new_mode": 33188,
      "new_path": "gazelle/python/configure.go"
    },
    {
      "type": "modify",
      "old_id": "cb82cb93b41be8b08ece77bea9ac87bee31bbbe3",
      "old_mode": 33188,
      "old_path": "gazelle/python/file_parser.go",
      "new_id": "aca925cbe7e27e76ab4241f73fca902615d7a4d7",
      "new_mode": 33188,
      "new_path": "gazelle/python/file_parser.go"
    },
    {
      "type": "modify",
      "old_id": "20085f0e76996bf810d227f4bb1e63ad38e21bad",
      "old_mode": 33188,
      "old_path": "gazelle/python/file_parser_test.go",
      "new_id": "f4db1a316b73692e9819250764910826e79f8720",
      "new_mode": 33188,
      "new_path": "gazelle/python/file_parser_test.go"
    },
    {
      "type": "modify",
      "old_id": "cf805782201ed0bb7607840cb1647e5bee2319d7",
      "old_mode": 33188,
      "old_path": "gazelle/python/parser.go",
      "new_id": "11e01dbf5156f46ee331afba72a957cb93dadb29",
      "new_mode": 33188,
      "new_path": "gazelle/python/parser.go"
    },
    {
      "type": "modify",
      "old_id": "413e69b289c0ff0e56b7c57fc4ae29e9e013aa7f",
      "old_mode": 33188,
      "old_path": "gazelle/python/resolve.go",
      "new_id": "88275e007cb4d1e4de53c9e15dd7dfe3945e1405",
      "new_mode": 33188,
      "new_path": "gazelle/python/resolve.go"
    },
    {
      "type": "modify",
      "old_id": "1fb921865613ca092b701c0fc117e810da4edbc1",
      "old_mode": 33188,
      "old_path": "gazelle/python/target.go",
      "new_id": "06b653d9156771bd549e321dc04aac84c1e59bea",
      "new_mode": 33188,
      "new_path": "gazelle/python/target.go"
    },
    {
      "type": "modify",
      "old_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "old_mode": 33188,
      "old_path": "gazelle/python/testdata/add_type_stub_packages/BUILD.in",
      "new_id": "99d122ad121aec53f74688bbf3689bdb1b9bf9d3",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/add_type_stub_packages/BUILD.in"
    },
    {
      "type": "modify",
      "old_id": "d30540f61a14fe866017b498dd6917714bb902d3",
      "old_mode": 33188,
      "old_path": "gazelle/python/testdata/add_type_stub_packages/BUILD.out",
      "new_id": "1a5b640ac890ffa5e05b8316ce506695800bffe4",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/add_type_stub_packages/BUILD.out"
    },
    {
      "type": "modify",
      "old_id": "c42e76f8bec33de5fcde30932bbc5877f0bc0bf6",
      "old_mode": 33188,
      "old_path": "gazelle/python/testdata/add_type_stub_packages/README.md",
      "new_id": "e3a2afee8192d3f3b40f0ec5883cefa3473adc41",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/add_type_stub_packages/README.md"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d4dce063efa42740d263049c08890595b276db46",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/type_checking_imports/BUILD.in"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "690210682c76a26a2bca576528512066f485658c",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/type_checking_imports/BUILD.out"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b09f442be32d543df3578eeecf05905ee23d53db",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/type_checking_imports/README.md"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3e6e74e7f4413d1e553fe789204f88027ad5425f",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/type_checking_imports/WORKSPACE"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "47c7d93d08b8db6f7e4536fc17df0f69190a242e",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/type_checking_imports/bar.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1c69e25da48d5494632c2102cc6ff76643b96a75",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/type_checking_imports/baz.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "655cb546755a33df0d371f8e3639ada7bf0ecd5b",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/type_checking_imports/foo.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a78235421526e2cbe64eaeb25c7fa6c819e818e6",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/type_checking_imports/gazelle_python.yaml"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "fcea77710fc791c34d6a09da4cfd0e38a515fdb0",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/type_checking_imports/test.yaml"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ab6d30f5a78f56b937ac06d665d386a9e5ae90dc",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/type_checking_imports_disabled/BUILD.in"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "bf23d28da9c4a8c1c72ce6c8ad7d16e9f42f90bc",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/type_checking_imports_disabled/BUILD.out"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0e3b62361431dc7ca9c9007acbcd4eed46d969fb",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/type_checking_imports_disabled/README.md"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3e6e74e7f4413d1e553fe789204f88027ad5425f",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/type_checking_imports_disabled/WORKSPACE"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "47c7d93d08b8db6f7e4536fc17df0f69190a242e",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/type_checking_imports_disabled/bar.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1c69e25da48d5494632c2102cc6ff76643b96a75",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/type_checking_imports_disabled/baz.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "655cb546755a33df0d371f8e3639ada7bf0ecd5b",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/type_checking_imports_disabled/foo.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a78235421526e2cbe64eaeb25c7fa6c819e818e6",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/type_checking_imports_disabled/gazelle_python.yaml"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "fcea77710fc791c34d6a09da4cfd0e38a515fdb0",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/type_checking_imports_disabled/test.yaml"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8e6c1cbabb3221a8ec58b05916300e01994e0b78",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/type_checking_imports_package/BUILD.in"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0091e9c5c9a3954ffd91be6d3745c08398fb441e",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/type_checking_imports_package/BUILD.out"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3e2cafe992bc7aa4168851120733728be0e3c192",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/type_checking_imports_package/README.md"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3e6e74e7f4413d1e553fe789204f88027ad5425f",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/type_checking_imports_package/WORKSPACE"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "47c7d93d08b8db6f7e4536fc17df0f69190a242e",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/type_checking_imports_package/bar.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1c69e25da48d5494632c2102cc6ff76643b96a75",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/type_checking_imports_package/baz.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "655cb546755a33df0d371f8e3639ada7bf0ecd5b",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/type_checking_imports_package/foo.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a78235421526e2cbe64eaeb25c7fa6c819e818e6",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/type_checking_imports_package/gazelle_python.yaml"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "fcea77710fc791c34d6a09da4cfd0e38a515fdb0",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/type_checking_imports_package/test.yaml"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "808e3e044e03a796781e285dde779e21abf19f1c",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/type_checking_imports_project/BUILD.in"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6d6ac3cef995de1f7c819a48a419d01c343e2a11",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/type_checking_imports_project/BUILD.out"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ead09e1994f8aa5629389a594f52ecf4d4c97634",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/type_checking_imports_project/README.md"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3e6e74e7f4413d1e553fe789204f88027ad5425f",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/type_checking_imports_project/WORKSPACE"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "47c7d93d08b8db6f7e4536fc17df0f69190a242e",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/type_checking_imports_project/bar.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1c69e25da48d5494632c2102cc6ff76643b96a75",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/type_checking_imports_project/baz.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "655cb546755a33df0d371f8e3639ada7bf0ecd5b",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/type_checking_imports_project/foo.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a78235421526e2cbe64eaeb25c7fa6c819e818e6",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/type_checking_imports_project/gazelle_python.yaml"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "fcea77710fc791c34d6a09da4cfd0e38a515fdb0",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/type_checking_imports_project/test.yaml"
    },
    {
      "type": "modify",
      "old_id": "e0a2b8a46969e4a8a8236f052fdfc51f78b91085",
      "old_mode": 33188,
      "old_path": "gazelle/pythonconfig/pythonconfig.go",
      "new_id": "8bf79cbc15d63967b74214187242f4f5aebc5bdd",
      "new_mode": 33188,
      "new_path": "gazelle/pythonconfig/pythonconfig.go"
    }
  ]
}
