)]}'
{
  "commit": "36d23c8ec9c48c43d58382f679863403f9306420",
  "tree": "0db8d3b283558ecec00e277e3817c01369bf3697",
  "parents": [
    "90bab55677701a26a52772ead106bbb32c75f43b"
  ],
  "author": {
    "name": "Adam Cozzette",
    "email": "adamc@aspect.build",
    "time": "Wed Aug 05 07:59:07 2026 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Wed Aug 05 07:59:07 2026 -0700"
  },
  "message": "refactor(js_run_binary): support path mapping with use_execroot_entry_point (#2965)\n\nuse_execroot_entry_point hoisted a js_binary tool\u0027s entire runfiles tree\n(including its generated launcher, node/npm wrappers, and node-patches\nbootstrap) into a target-configuration rebuild, so that the entry point\ncould be resolved from the target-platform bin directory. The launcher\nscript bakes `$(COMPILATION_MODE)/$(TARGET_CPU)/$(BINDIR)` into its\ncontent, so this hoisted copy differed between -c fastbuild and -c opt,\ndefeating cross-config path mapping even though none of that toolchain\nscaffolding is ever read from the target-platform bin directory at\nruntime (only the entry point and its data are).\n\njs_binary now exposes a leaner \"execroot_data_files\" output group (entry\npoint + data, without the toolchain scaffolding), and js_run_binary\nhoists that instead of the tool\u0027s full runfiles.\n\n---\n\n### Changes are visible to end-users: yes\n\n- Searched for relevant documentation and updated as needed: yes\n- Breaking change (forces users to change their own code or config): no\n- Suggested release notes appear below: yes\n\nAllow path mapping to work with js_run_binary even with\nuse_execroot_entry_point enabled\n\n### Test plan\n\n- Covered by existing test cases\n- New test cases added",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "183c116e4031055e9919a8c268a4df32e5989250",
      "old_mode": 33188,
      "old_path": "e2e/path_mapping/js_run_binary_path_mapping_check/BUILD.bazel",
      "new_id": "0c0a07768aa00e230b613026cab33ded5ace46b2",
      "new_mode": 33188,
      "new_path": "e2e/path_mapping/js_run_binary_path_mapping_check/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "294e95908f7702d07aa8a8e77979c9773b626dc6",
      "old_mode": 33188,
      "old_path": "js/private/js_binary.bzl",
      "new_id": "f27cab5719236ffd74b2640b51b12e3090b12936",
      "new_mode": 33188,
      "new_path": "js/private/js_binary.bzl"
    },
    {
      "type": "modify",
      "old_id": "40ae93b4f01a46148405cf048ff452fe988ce217",
      "old_mode": 33188,
      "old_path": "js/private/js_run_binary.bzl",
      "new_id": "9b7475ba8940c63b59b4a80eb34bc05b1bb3d886",
      "new_mode": 33188,
      "new_path": "js/private/js_run_binary.bzl"
    }
  ]
}
