)]}'
{
  "commit": "94858322db706c5044ab5b16f784b13a0b4a35a4",
  "tree": "f8c6afad1998426938643d27fe45a14707b41237",
  "parents": [
    "e9734b5ff9173b65a6524b8fc02b2a0d8ffce8db"
  ],
  "author": {
    "name": "Tamir Duberstein",
    "email": "tamird@gmail.com",
    "time": "Sat Oct 31 00:42:41 2026 +0000"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Sat Oct 31 00:42:41 2026 +0000"
  },
  "message": "fix(pypi): generate namespace package initializers without a shell (#4385)\n\nWheel namespace packages use an __init__.py file generated from a\nchecked-in template. Skylib\u0027s copy_file invokes cp through a shell on\nUnix, which fails on execution platforms that provide neither program.\n\nUse expand_template with no substitutions. This produces a regular\nfile with the same bytes from the same template, without spawning a\nprocess on the execution platform.\n\nThe namespace initializer generator was introduced in\nhttps://github.com/bazel-contrib/rules_python/commit/dce512024.",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1edbf74111859e7f5d00607492cfd915d231cca3",
      "new_mode": 33188,
      "new_path": "news/wheel-namespace-initializers.fixed.md"
    },
    {
      "type": "modify",
      "old_id": "149074dd3f79ebbb0de5eadeca6555311e81c7db",
      "old_mode": 33188,
      "old_path": "python/private/pypi/BUILD.bazel",
      "new_id": "1cf0cad986305f24b133d0c92afd8552f2342542",
      "new_mode": 33188,
      "new_path": "python/private/pypi/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "be6244efc7fc58e1a5db6cf016b2b38cdf2dac1e",
      "old_mode": 33188,
      "old_path": "python/private/pypi/namespace_pkgs.bzl",
      "new_id": "d58d1f2094767a9e8fd76accc17dd0ccefb30c9c",
      "new_mode": 33188,
      "new_path": "python/private/pypi/namespace_pkgs.bzl"
    },
    {
      "type": "modify",
      "old_id": "9c382d070cce71b4805d83d1b59a6ce93f9e1a05",
      "old_mode": 33188,
      "old_path": "tests/pypi/namespace_pkgs/namespace_pkgs_tests.bzl",
      "new_id": "391b13fd661d0a529bf9be8693e4382c7e6fb229",
      "new_mode": 33188,
      "new_path": "tests/pypi/namespace_pkgs/namespace_pkgs_tests.bzl"
    }
  ]
}
