)]}'
{
  "commit": "65d132671e89b09e9eb8624a15d2a5d1b481c2ab",
  "tree": "f51b4cbb1dd05078e5b98adf0773d8061424dad7",
  "parents": [
    "3fd5b8378faea1fb2926d9f49d695b14e4b472c8"
  ],
  "author": {
    "name": "Steven Casagrande",
    "email": "steven.casagrande@ibm.com",
    "time": "Thu Sep 05 13:13:46 2024 -0400"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Thu Sep 05 17:13:46 2024 +0000"
  },
  "message": "fix: make bootstrap_impl\u003dscript compute correct directory when RUNFILES_MANIFEST_FILE set (#2177)\n\nThe script-based bootstrap wasn\u0027t computing the correct runfiles\ndirectory when\n`RUNFILES_MANIFEST_FILE` was set. The path it computed stripped off the\nmanifest\nfile name, but didn\u0027t re-add the `.runfiles` suffix to point to the\nrunfiles\ndirectory.\n\nTo fix, just re-append the `.runfiles` suffix after it removes the\nmanifest file\nname portion of the path.\n\nReproducing this is a bit tricky and it\u0027s difficult to reproduce the\nnecessary build\nflags in a test; all of the following must be met:\n* `--enable_runfiles\u003dfalse`, but this cannot be set by transitions, only\nvia command line\n* `--build_runfile_manifests\u003dtrue` (this can be set in a transition, but\nsee below)\n* Due to https://github.com/bazelbuild/bazel/issues/7994, even if a\nmanifest is created,\nthe RUNFILES_MANIFEST_FILE env var won\u0027t be set _unless_ the test\nstrategy is local\n  (i.e. not sandboxed, which is the default).\n\nTo work around those issues, the test just recreates the necessary\nenvvar state and\ninvokes the binary. The underlying files may not exist, but that\u0027s OK\nfor the code\npaths were testing.\n\nFixes https://github.com/bazelbuild/rules_python/issues/2186\n\n---------\n\nCo-authored-by: Richard Levasseur \u003crlevasseur@google.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "6a901bb23667d2d3f2364e189dc00c57aec05ab3",
      "old_mode": 33188,
      "old_path": "CHANGELOG.md",
      "new_id": "e468e2bd9157e687c10857dadca5b397902aa396",
      "new_mode": 33188,
      "new_path": "CHANGELOG.md"
    },
    {
      "type": "modify",
      "old_id": "959e7babe6067c1016767d27099920ed48657d6a",
      "old_mode": 33188,
      "old_path": "python/private/stage1_bootstrap_template.sh",
      "new_id": "e7e418cafb77bf1d4b76e650bc208315678cdc41",
      "new_mode": 33188,
      "new_path": "python/private/stage1_bootstrap_template.sh"
    },
    {
      "type": "modify",
      "old_id": "2ee69f3f6689a4b4df7343ff93f1d1ea7cd3ba94",
      "old_mode": 33261,
      "old_path": "tests/bootstrap_impls/run_binary_zip_no_test.sh",
      "new_id": "c45cae54cd7298dfa18ff84288fa76f1197a382d",
      "new_mode": 33261,
      "new_path": "tests/bootstrap_impls/run_binary_zip_no_test.sh"
    }
  ]
}
