)]}'
{
  "commit": "c2ebcd380eca13477087ceeaba41aafd50fc840e",
  "tree": "a5bd354202e38625cabd57eb8a44f68f0da8c9fd",
  "parents": [
    "353b24e3db2fbd6e5abc24856bf60a1031900e9c"
  ],
  "author": {
    "name": "armandomontanez",
    "email": "armando@engflow.com",
    "time": "Tue Aug 11 09:17:29 2026 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Tue Aug 11 16:17:29 2026 +0000"
  },
  "message": "feat(bzlmod): make __init__.py generation configurable module-wide (#3997)\n\nIn #3841, a warning pushing users to migrate away from implicit\n`__init__.py` generation was added. While it\u0027s good to flag this bad\nbehavior, silencing it requires users to either explicitly configure\nthis option on every `py_binary` and `py_test` target, or configure the\noption globally in their `.bazelrc`.\n\nTo better facilitate a migration, this change introduces a mechanism for\nmodules to configure this option module-wide. This has multiple\nbenefits:\n\n1. Everyone working in the module doesn\u0027t need to remember to explicitly\nset `legacy_create_init` on every target.\n2. Everyone that depends on the module receives the correct behavior as\nconfigured by the module.\n3. It becomes possible to tell BCR-wide which modules have adopted this\nmigration.\n\nWork towards #2945\n\n---------\n\nCo-authored-by: Richard Levasseur \u003crichardlev@gmail.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "106f25134ecfce3958b0ea99a0b87cf8a824987c",
      "old_mode": 33188,
      "old_path": "examples/bzlmod/MODULE.bazel",
      "new_id": "d6b066fd1f331680712bb63e31b3e73d44f48d2a",
      "new_mode": 33188,
      "new_path": "examples/bzlmod/MODULE.bazel"
    },
    {
      "type": "modify",
      "old_id": "a128c39ca043e714b715f2bd87ccd7dd810a7b3b",
      "old_mode": 33188,
      "old_path": "examples/bzlmod/other_module/MODULE.bazel",
      "new_id": "be18ff21fd93185b63cb92ad028d20072c393111",
      "new_mode": 33188,
      "new_path": "examples/bzlmod/other_module/MODULE.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "34cbfc20e1d36a1f9c47e6ff4dd7bb575ac364bd",
      "new_mode": 33188,
      "new_path": "news/3997.added.md"
    },
    {
      "type": "modify",
      "old_id": "f19a07aaef0b309a0d51d2a23124d87116ad9af0",
      "old_mode": 33188,
      "old_path": "python/extensions/config.bzl",
      "new_id": "a6d03c6f70d33af045f397944e17603e19b730fd",
      "new_mode": 33188,
      "new_path": "python/extensions/config.bzl"
    },
    {
      "type": "modify",
      "old_id": "8ee6a2d01741b2be5e08b6a63ba680b74602f80e",
      "old_mode": 33188,
      "old_path": "python/private/internal_config_repo.bzl",
      "new_id": "0630eb5c2fa0947790fe9857a0644eab049e666e",
      "new_mode": 33188,
      "new_path": "python/private/internal_config_repo.bzl"
    },
    {
      "type": "modify",
      "old_id": "2ac2423b866eddd7d3e60e91d8fcb90e18bede01",
      "old_mode": 33188,
      "old_path": "python/private/py_executable.bzl",
      "new_id": "4ee484dcd0ecc4283ea68b311a2870e0c9434dc2",
      "new_mode": 33188,
      "new_path": "python/private/py_executable.bzl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9ea71dc09ea63da828923166c60c6e9e852f2e37",
      "new_mode": 33188,
      "new_path": "tests/explicit_init_py/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "665049b9f5136cf34d3c14d38a7c189ea94e35da",
      "old_mode": 33188,
      "old_path": "tests/modules/other/BUILD.bazel",
      "new_id": "2ce7c883252327746ce1d56bca7301037d7876ef",
      "new_mode": 33188,
      "new_path": "tests/modules/other/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "11a633d56b4fe31ba46b578adee6e5d26e118ef5",
      "old_mode": 33188,
      "old_path": "tests/modules/other/MODULE.bazel",
      "new_id": "12ee7672b6c6d79ee70a8c07d1e64ec6fd871724",
      "new_mode": 33188,
      "new_path": "tests/modules/other/MODULE.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "943909ee7157c3254793bc628e5ca508a0211959",
      "new_mode": 33188,
      "new_path": "tests/modules/other/ext.bzl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "abc32a944160bcc6fd07891c8ec8fcaf83396d72",
      "new_mode": 33188,
      "new_path": "tests/support/explicit_init_py_test.bzl"
    }
  ]
}
