)]}'
{
  "commit": "f9992f7f11472a825a73e096f2904122a71f094e",
  "tree": "7c4de476ff2835fa264ca4225861aa29213ec398",
  "parents": [
    "22f3de02efe54f00d532bcd77939710507e7209e"
  ],
  "author": {
    "name": "Shayan Hoshyari",
    "email": "108962133+shayanhoshyari@users.noreply.github.com",
    "time": "Sun Jan 11 10:51:17 2026 -0800"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Sun Jan 11 18:51:17 2026 +0000"
  },
  "message": "fix (venv_site_packages): Fix wrong runfiles.symlinks when py_binary is not in root module (#3505)\n\nWhen: 1) venv_site_packages is on 2) we have a py_binary in a non-root\nmodule (e.g. a tool used in rules), and it uses python deps that result\nin usage of runfiles.symlinks, the `ctx.runfile` based symlinks end up\ngoing in the wrong folder (`_main`), while the\n`ctx.actions.symlink(...)` files go in the right place. This results in\nan invalid `venv` and import errors.\n\nThe reason is that `actions.symlinks` always go to the `_main` module,\nas [Bazel docs\nexplain](https://bazel.build/extending/rules#runfiles_symlinks). To send\nsymlinks to other modules, one needs to use root_symlinks and prefix\nthem with the right module name.\n\nFixes: https://github.com/bazel-contrib/rules_python/issues/3503\n\n---------\n\nCo-authored-by: Shayan Hoshyari \u003choshyari@adobe.com\u003e\nCo-authored-by: Richard Levasseur \u003crlevasseur@google.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "1b884e9b3bc3185a1fb3ab88fb7862455d4856c0",
      "old_mode": 33188,
      "old_path": "python/private/py_executable.bzl",
      "new_id": "5bac6247ef88a31f621962f5205ecb507bfe48a2",
      "new_mode": 33188,
      "new_path": "python/private/py_executable.bzl"
    },
    {
      "type": "modify",
      "old_id": "02b18e57e871d326a887ba30fe44346c69a477dd",
      "old_mode": 33188,
      "old_path": "python/private/venv_runfiles.bzl",
      "new_id": "7f6af0c957f0421ce711c73731e5b5063ecbcdd9",
      "new_mode": 33188,
      "new_path": "python/private/venv_runfiles.bzl"
    },
    {
      "type": "modify",
      "old_id": "46f1b96faa053a600d908fb1b5d72453e62c426c",
      "old_mode": 33188,
      "old_path": "tests/modules/other/BUILD.bazel",
      "new_id": "665049b9f5136cf34d3c14d38a7c189ea94e35da",
      "new_mode": 33188,
      "new_path": "tests/modules/other/BUILD.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5455b23f400c03691b71ec57dcffcb7893a9141c",
      "new_mode": 33188,
      "new_path": "tests/modules/other/venv_bin.py"
    },
    {
      "type": "modify",
      "old_id": "2eb9678838a9d0e8527e0ebd92a5dca4c5c7a6ca",
      "old_mode": 33188,
      "old_path": "tests/venv_site_packages_libs/BUILD.bazel",
      "new_id": "e573dc6da6febd7977856659b7b948d02ae0d4b6",
      "new_mode": 33188,
      "new_path": "tests/venv_site_packages_libs/BUILD.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9fb71d5bc7aa79882ac6a50a0b689189a3dd6a52",
      "new_mode": 33261,
      "new_path": "tests/venv_site_packages_libs/py_binary_other_module_test.sh"
    }
  ]
}
