)]}'
{
  "commit": "ab3e3f790788e119bfb362a60819727d7450f0f3",
  "tree": "1930b21895c38d5ff0101fbc53391b78b16e19a8",
  "parents": [
    "e6bba92d4a3de943c77a50834c727318870bef48"
  ],
  "author": {
    "name": "Alex Martani",
    "email": "alexandre.martani@benchling.com",
    "time": "Mon Jul 28 21:29:18 2025 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Tue Jul 29 04:29:18 2025 +0000"
  },
  "message": "fix(gazelle): Do not resolve absolute imports to sibling modules (#3106)\n\nCurrently, gazelle allows absolute imports to be resolved to sibling\nmodules: an `import foo` statement will resolve to a `foo.py` file in\nthe same folder if such file exists. This seems to be a Python 2\nbehavior (ie. pre-`from __future__ import absolute_import`), and doesn\u0027t\nwork on the current rules_python setup.\n\nThis behavior is explicitly tested in the\n[siblings_import](https://github.com/bazel-contrib/rules_python/tree/cbe6d38d01c14de46d90ea717d0f2090117533fa/gazelle/python/testdata/sibling_imports)\ntest case. However, recreating the exact same repository layout from\nthis test case and running `bazel test //pkg:unit_test`, the test fails\nwith the import failing.\n\nThis PR adds a new directive, `gazelle:python_resolve_sibling_imports`,\nto allow disabling such behavior.\n\nThe actual changes are in 3 places:\n\n- In `gazelle/python/target.go`, the directive is added to `if\nt.siblingSrcs.Contains(fileName) \u0026\u0026 fileName !\u003d\nfilepath.Base(dep.Filepath)`, which is where the import is converted to\na full absolute import if it matches a sibling file;\n- In `gazelle/python/generate.go`, the handling of `conftest.py` was\ndependent on this behavior (ie. it added a dependency on the module\n`conftest`, assuming that it would be resolved to the relative module).\nThat was modified to compute the full absolute module path instead.\n- In `gazelle/python/resolve.go`, resolve relative imports even when\nusing file generation mode.\n\nI also explicitly added `gazelle:python_resolve_sibling_imports true` to\nany test that breaks if the default value of this directive is changed\nto `false`.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "5ad48bee3f50f627cd8ff33b1819b8f934ba29af",
      "old_mode": 33188,
      "old_path": "CHANGELOG.md",
      "new_id": "c52481d52e0011558666b20b0da1f055696c9ffc",
      "new_mode": 33188,
      "new_path": "CHANGELOG.md"
    },
    {
      "type": "modify",
      "old_id": "222c1171ab84d7be4ddd2e2a725671dc76e3d0ab",
      "old_mode": 33188,
      "old_path": "gazelle/README.md",
      "new_id": "8b088a4e70d4a2193badefc83b99ae1d8978f5db",
      "new_mode": 33188,
      "new_path": "gazelle/README.md"
    },
    {
      "type": "modify",
      "old_id": "079f1d84d465d83102cd58d6c8a0ea2d44d2a98a",
      "old_mode": 33188,
      "old_path": "gazelle/python/configure.go",
      "new_id": "13ba6477cda90d43397e9ae30d16e55c51633377",
      "new_mode": 33188,
      "new_path": "gazelle/python/configure.go"
    },
    {
      "type": "modify",
      "old_id": "5b6ba79d6982f3abe0d45208a46fa71be24e2e10",
      "old_mode": 33188,
      "old_path": "gazelle/python/generate.go",
      "new_id": "a180ec527dbb4e7919ac92d88e16ab3c9136ecfd",
      "new_mode": 33188,
      "new_path": "gazelle/python/generate.go"
    },
    {
      "type": "modify",
      "old_id": "0dd80841d4c62e8b465ec71caf782443eefab96f",
      "old_mode": 33188,
      "old_path": "gazelle/python/resolve.go",
      "new_id": "cc57180a496c3a661f967506e9102d88115e4c2d",
      "new_mode": 33188,
      "new_path": "gazelle/python/resolve.go"
    },
    {
      "type": "modify",
      "old_id": "6e6c3f4b143a571eac6cafccccba92e623dffbc5",
      "old_mode": 33188,
      "old_path": "gazelle/python/target.go",
      "new_id": "3fe5819e00ab455495628e198612856feafd2b70",
      "new_mode": 33188,
      "new_path": "gazelle/python/target.go"
    },
    {
      "type": "modify",
      "old_id": "af2c2cea4bbfb5ede2e7310af577e8b16459cf80",
      "old_mode": 33188,
      "old_path": "gazelle/python/testdata/annotation_include_dep/BUILD.in",
      "new_id": "5131712aca8d4c23a42b73fa77d488dc6d18b017",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/annotation_include_dep/BUILD.in"
    },
    {
      "type": "modify",
      "old_id": "1cff8f4676653b7b79213d978f30b30432aa69eb",
      "old_mode": 33188,
      "old_path": "gazelle/python/testdata/annotation_include_dep/BUILD.out",
      "new_id": "412bf456f55da0265c9a06ac985a47f52a6d9e9a",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/annotation_include_dep/BUILD.out"
    },
    {
      "type": "modify",
      "old_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "old_mode": 33188,
      "old_path": "gazelle/python/testdata/annotation_include_pytest_conftest/with_conftest/BUILD.in",
      "new_id": "5c25b0d5a604837438874c0165d0f53041aed63c",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/annotation_include_pytest_conftest/with_conftest/BUILD.in"
    },
    {
      "type": "modify",
      "old_id": "60695352cabba5feed10a485181235a687ed7f77",
      "old_mode": 33188,
      "old_path": "gazelle/python/testdata/annotation_include_pytest_conftest/with_conftest/BUILD.out",
      "new_id": "52b915208e159b2d91b9a533bb5c304b83f51549",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/annotation_include_pytest_conftest/with_conftest/BUILD.out"
    },
    {
      "type": "modify",
      "old_id": "7517848a928a7a7ccfeb550e3a81c336c2ce86f4",
      "old_mode": 33188,
      "old_path": "gazelle/python/testdata/naming_convention/BUILD.in",
      "new_id": "fee53ba7ff7e0ee15e7d461496a52e817cc68279",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/naming_convention/BUILD.in"
    },
    {
      "type": "modify",
      "old_id": "e2f067489cc46a87916cd5dcc834e2d7a3545c76",
      "old_mode": 33188,
      "old_path": "gazelle/python/testdata/naming_convention/BUILD.out",
      "new_id": "7392cfeb35f36c0e1e61fbd5dcddfa64dabb88bf",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/naming_convention/BUILD.out"
    },
    {
      "type": "modify",
      "old_id": "e59be07634074a7de61761dbceedd894647d39e0",
      "old_mode": 33188,
      "old_path": "gazelle/python/testdata/sibling_imports/README.md",
      "new_id": "d21a671b1c93086bdc13dfc2b3e2ea6ba6bc9313",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/sibling_imports/README.md"
    },
    {
      "type": "modify",
      "old_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "old_mode": 33188,
      "old_path": "gazelle/python/testdata/sibling_imports/pkg/BUILD.in",
      "new_id": "5c25b0d5a604837438874c0165d0f53041aed63c",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/sibling_imports/pkg/BUILD.in"
    },
    {
      "type": "modify",
      "old_id": "cae6c3f17a01c73dcf7268c1b413d2b991b9c831",
      "old_mode": 33188,
      "old_path": "gazelle/python/testdata/sibling_imports/pkg/BUILD.out",
      "new_id": "e8c13098c235fdca2a4b3260e30d531762efe775",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/sibling_imports/pkg/BUILD.out"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9509fd972710c8af1a3d9b4d7f662fca3a57f868",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/sibling_imports_disabled/BUILD.in"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7568f38f506f9582485d73aa6bf0f589338adeb3",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/sibling_imports_disabled/BUILD.out"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d534a44bf1a0d270329d2002898902e2a7dd851a",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/sibling_imports_disabled/README.md"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "faff6af87ac0ef60c3f9dacae80ca00b08118b58",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/sibling_imports_disabled/WORKSPACE"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "fad4fb1ff91c91baf5f95a3995602d971e78bbcc",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/sibling_imports_disabled/a.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a5eafc436f75228f6e118bb602a670c41747c8a3",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/sibling_imports_disabled/b.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/sibling_imports_disabled/pkg/BUILD.in"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e778ce1076e63b3470e63b098103c62cd75cfbe8",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/sibling_imports_disabled/pkg/BUILD.out"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/sibling_imports_disabled/pkg/__init__.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/sibling_imports_disabled/pkg/a.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d04d42367820e4dffc3a95b89248286139ae79ac",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/sibling_imports_disabled/pkg/b.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "01cc15da86cf648a79bbb2ea89fa11cade386552",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/sibling_imports_disabled/pkg/test_util.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "76f516f79f036a434d6f258ab067f5cb5cb9c95a",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/sibling_imports_disabled/pkg/typing.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3c551a1cb1807f7e43846b6cbb90385c24990694",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/sibling_imports_disabled/pkg/unit_test.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ed97d539c095cf1413af30cc23dea272095b97dd",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/sibling_imports_disabled/test.yaml"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f5fa1b34ea1c4b6306707d18a79ac52ee35d7633",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/sibling_imports_disabled/test_util.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "04494394c7d9b1a1f0f42bc465c8dc1285b90582",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/sibling_imports_disabled_file_mode/BUILD.in"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "da53e14864ad014c75e087c87b693cd44f5c26f0",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/sibling_imports_disabled_file_mode/BUILD.out"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0bfbcffb581f049c231613c70ea3b06713f54e01",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/sibling_imports_disabled_file_mode/README.md"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "faff6af87ac0ef60c3f9dacae80ca00b08118b58",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/sibling_imports_disabled_file_mode/WORKSPACE"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "fad4fb1ff91c91baf5f95a3995602d971e78bbcc",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/sibling_imports_disabled_file_mode/a.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a5eafc436f75228f6e118bb602a670c41747c8a3",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/sibling_imports_disabled_file_mode/b.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/sibling_imports_disabled_file_mode/pkg/BUILD.in"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ab161e135fc5f4956b34ad05b9d74efffd6de48f",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/sibling_imports_disabled_file_mode/pkg/BUILD.out"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/sibling_imports_disabled_file_mode/pkg/__init__.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/sibling_imports_disabled_file_mode/pkg/a.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d04d42367820e4dffc3a95b89248286139ae79ac",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/sibling_imports_disabled_file_mode/pkg/b.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "01cc15da86cf648a79bbb2ea89fa11cade386552",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/sibling_imports_disabled_file_mode/pkg/test_util.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "76f516f79f036a434d6f258ab067f5cb5cb9c95a",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/sibling_imports_disabled_file_mode/pkg/typing.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3c551a1cb1807f7e43846b6cbb90385c24990694",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/sibling_imports_disabled_file_mode/pkg/unit_test.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ed97d539c095cf1413af30cc23dea272095b97dd",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/sibling_imports_disabled_file_mode/test.yaml"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f5fa1b34ea1c4b6306707d18a79ac52ee35d7633",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/sibling_imports_disabled_file_mode/test_util.py"
    },
    {
      "type": "modify",
      "old_id": "3f2beb3147c3100b5f53c2f14774f27406613614",
      "old_mode": 33188,
      "old_path": "gazelle/python/testdata/simple_test_with_conftest/BUILD.in",
      "new_id": "6dfab75442503a72beeb56b40068cf99087c8db6",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/simple_test_with_conftest/BUILD.in"
    },
    {
      "type": "modify",
      "old_id": "18079bf2f47fc6fc3e5113afc6d99f1daa3aee62",
      "old_mode": 33188,
      "old_path": "gazelle/python/testdata/simple_test_with_conftest/BUILD.out",
      "new_id": "62e1c550e6a884b5a6c3444bf9daf7f574d24051",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/simple_test_with_conftest/BUILD.out"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f8a40fe26c4337fd553d7bff34e99b39d8caaf1e",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/simple_test_with_conftest_sibling_imports_disabled/BUILD.in"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b5a7066aff23b4d015a582ae15c8c6e62ecc2b6f",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/simple_test_with_conftest_sibling_imports_disabled/BUILD.out"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "98793c23de64e1b43f1fd18b71529a4c315c2151",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/simple_test_with_conftest_sibling_imports_disabled/README.md"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "faff6af87ac0ef60c3f9dacae80ca00b08118b58",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/simple_test_with_conftest_sibling_imports_disabled/WORKSPACE"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6a49193fe40560abd81a7c2d54c6f357b5f5c4c1",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/simple_test_with_conftest_sibling_imports_disabled/__init__.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d6085a41b47682cacf8163c24b1bf97f400af991",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/simple_test_with_conftest_sibling_imports_disabled/__test__.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3f2beb3147c3100b5f53c2f14774f27406613614",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/simple_test_with_conftest_sibling_imports_disabled/bar/BUILD.in"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ef8591f199ebaf334e124d64092c4e3944cb66d2",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/simple_test_with_conftest_sibling_imports_disabled/bar/BUILD.out"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0c592055593f33d66cf31ec511c2d8a355a6e774",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/simple_test_with_conftest_sibling_imports_disabled/bar/__init__.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c3d4734eedcd3b2b9d6c57086f74e151f05d90ce",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/simple_test_with_conftest_sibling_imports_disabled/bar/__test__.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ee70a51f035b5f8237457668e93df3787793d95b",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/simple_test_with_conftest_sibling_imports_disabled/bar/bar.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/simple_test_with_conftest_sibling_imports_disabled/bar/conftest.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/simple_test_with_conftest_sibling_imports_disabled/conftest.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "cf6862441921c923a5f4e26ea471e527ca34a57e",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/simple_test_with_conftest_sibling_imports_disabled/foo.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8071ef40940a7c3ab6d98850958a7ca55ca31ef9",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/simple_test_with_conftest_sibling_imports_disabled/test.yaml"
    },
    {
      "type": "modify",
      "old_id": "adfdefdc8a9fb2cd21bf9d574eb0d5cd731cdc0d",
      "old_mode": 33188,
      "old_path": "gazelle/python/testdata/subdir_sources/BUILD.in",
      "new_id": "e8f3827bd2bba297e5b37bccd89702af15e0c257",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/subdir_sources/BUILD.in"
    },
    {
      "type": "modify",
      "old_id": "5d77890d4f76c13681461a8467fd42b9349a23d9",
      "old_mode": 33188,
      "old_path": "gazelle/python/testdata/subdir_sources/BUILD.out",
      "new_id": "5b96ad75766db241d8f6e3290872676d6e685520",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/subdir_sources/BUILD.out"
    },
    {
      "type": "modify",
      "old_id": "001fd334a41e8b86d695f7abe1ecc8e5a29573f8",
      "old_mode": 33188,
      "old_path": "gazelle/pythonconfig/pythonconfig.go",
      "new_id": "b3d56591ee922d52f13c6834799a26f1459664f2",
      "new_mode": 33188,
      "new_path": "gazelle/pythonconfig/pythonconfig.go"
    }
  ]
}
