)]}'
{
  "commit": "7523d19c72a99fa2760734b69a1f4ad865efef0e",
  "tree": "274595f5e0135a11e3a1061c706715810c257fa8",
  "parents": [
    "ddc5c47f8e1b6a2f10b1000e4562f3f935a8315a"
  ],
  "author": {
    "name": "Adam Cozzette",
    "email": "adamc@aspect.build",
    "time": "Wed May 20 18:59:58 2026 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Wed May 20 18:59:58 2026 -0700"
  },
  "message": "fix: always use the target platform for `tool` in `js_run_devserver` (#2853)\n\nI realized that the logic here was more complicated than it needed to\nbe. With `js_run_binary`, we\u0027re running a JavaScript tool that often\noperates on JavaScript sources, so it makes sense that we need to think\nwhich inputs are built for the exec platform and which ones are built\nfor the target platform.\n\nBut `js_run_devserver` is different, because the `tool` we are working\nwith is not intended to run as part of a build action. All we are doing\nis packaging up the tool in a launcher script so that it can be executed\nwith `bazel run`. Therefore, `tool` should always be built for the\ntarget platform and never for the exec platform.\n\nThis simplifies things, because it makes it so that\n`use_execroot_entry_point` is just a relatively small runtime behavior\nchange rather than something that totally changes what platform we are\nbuilding for.\n\nSince `bazel run` does not use a sandbox, all the inputs end up present\nboth in the runfiles directory and directly in the execroot, and\nbasically all that `use_execroot_entry_point` does now is determine\nwhich of those two places we use as the entry point.\n\n---\n\n### Changes are visible to end-users: yes, but I doubt that anyone will\nnotice\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\nWe now always build all sources for the target platform in\n`js_run_devserver`, regardless of `use_execroot_entry_point`.\n\n### Test plan\n\n- Covered by existing test cases\n- New test cases added",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "42142365a18312a347ba992b3a523fc6cf051e2d",
      "old_mode": 33188,
      "old_path": "js/private/js_run_devserver.bzl",
      "new_id": "ec2cd26aa28c7f25e1f1d2600156af2f10c2ffe3",
      "new_mode": 33188,
      "new_path": "js/private/js_run_devserver.bzl"
    }
  ]
}
