)]}'
{
  "commit": "ddc5c47f8e1b6a2f10b1000e4562f3f935a8315a",
  "tree": "a0df9f283425dc4bc9c62086e2ed23bd5372dac9",
  "parents": [
    "1ec4d1d9ec6ff7183cb27c252e3f8281e772a6c5"
  ],
  "author": {
    "name": "Adam Cozzette",
    "email": "adamc@aspect.build",
    "time": "Wed May 20 15:17:58 2026 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Wed May 20 15:17:58 2026 -0700"
  },
  "message": "feat: streamline invocation of binaries from npm and update examples (#2846)\n\nThe new example in examples/rspack started out as a test case by\n@jbedard and @nickschaap showing how `js_run_binary` can sometimes fail\nto work correctly when the execution and target platforms are different.\n\nI was able to get it working, primarily by setting\n`use_execroot_entry_point \u003d False`. The problem with the default\nbehavior (`use_execroot_entry_point \u003d True`) is that it runs\ntarget-platform sources during the build action, which can go haywire if\nthe target platform is meaningfully different from the execution\nplatform.\n\nGetting all the sources in the right place and built for the right\nplatform is not entirely straightforward, so I thought it would be good\nto have some simple examples showing this.\n\nA small new feature the examples rely on is the ability to pass `data`\nand `fixed_args` to the macro that wraps `js_run_binary()` in the\ngenerated `package_json.bzl` file. The args are forwarded to the\nunderlying `js_binary`.\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\nThe `bin.\u003cbinary name\u003e()` macro generated in `package_json.bzl` now\nsupports passing `data` and `fixed_args` through to the `js_binary` it\ncreates.\n\n### Test plan\n\n- Covered by existing test cases\n- New test cases added\n\n---------\n\nCo-authored-by: Claude Sonnet 4.6 \u003cnoreply@anthropic.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "432032fa13c0964284cde72c4c198bac837f36c9",
      "old_mode": 33261,
      "old_path": "examples/.aspect/rules/external_repository_action_cache/npm_translate_lock_LTE4Nzc1MDcwNjU\u003d",
      "new_id": "01e681166b3a8f43ba937e89a1b854fa3cbd4928",
      "new_mode": 33261,
      "new_path": "examples/.aspect/rules/external_repository_action_cache/npm_translate_lock_LTE4Nzc1MDcwNjU\u003d"
    },
    {
      "type": "modify",
      "old_id": "967468dba9a7c1960a392d89df41685b91f9af14",
      "old_mode": 33188,
      "old_path": "examples/.bazelignore",
      "new_id": "8cfc7d3416a863699cb36372caaf6627a03cbfec",
      "new_mode": 33188,
      "new_path": "examples/.bazelignore"
    },
    {
      "type": "modify",
      "old_id": "6cbd9b8d2259f968c821914a398a70372e3ec909",
      "old_mode": 33188,
      "old_path": "examples/MODULE.bazel",
      "new_id": "e906618ea60f584ce31dba1fd63c9f414b963b8c",
      "new_mode": 33188,
      "new_path": "examples/MODULE.bazel"
    },
    {
      "type": "modify",
      "old_id": "99159f51d8c5386712c0c96faa236b04ec80cb7f",
      "old_mode": 33188,
      "old_path": "examples/pnpm-lock.yaml",
      "new_id": "74b402d4a079425a3afc8c03ad7bed682eca45f4",
      "new_mode": 33188,
      "new_path": "examples/pnpm-lock.yaml"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e61fe6c7ec9ca01106af1d949edf09a106014167",
      "new_mode": 33188,
      "new_path": "examples/rspack/BUILD.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "89f9dbf88676f2930e30b1624e461654ea59cabb",
      "new_mode": 33188,
      "new_path": "examples/rspack/package.json"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a7f5c0af009c6b061491a89dac8b735c0096d671",
      "new_mode": 33188,
      "new_path": "examples/rspack/rspack.config.cjs"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c42f8804482fcdd927f52385c01bc26e3165824a",
      "new_mode": 33188,
      "new_path": "examples/rspack/rspack_entry.js"
    },
    {
      "type": "modify",
      "old_id": "8387d040ef7aad34a38774cfc5679ca4e32619bc",
      "old_mode": 33188,
      "old_path": "examples/vite3/BUILD.bazel",
      "new_id": "8503520abfa19ab2c16a35f6cfa7a948eaf9a820",
      "new_mode": 33188,
      "new_path": "examples/vite3/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "7c526fb9541ff3f8eb8e0bd3a9b40f72d969ca0c",
      "old_mode": 33188,
      "old_path": "examples/vite6/BUILD.bazel",
      "new_id": "86f48bfb5085e0c24dc96bec675ba87885ff63e5",
      "new_mode": 33188,
      "new_path": "examples/vite6/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "938baf70dd282ad5369239a1755b30688de6fc77",
      "old_mode": 33188,
      "old_path": "examples/webpack_cli/BUILD.bazel",
      "new_id": "733d8d93ef5cce94ab7ba3825a28992b2fab6995",
      "new_mode": 33188,
      "new_path": "examples/webpack_cli/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "e5ab0da96b2723fd85068b69461f2406e6c98f5c",
      "old_mode": 33188,
      "old_path": "examples/webpack_cli/webpack.config.js",
      "new_id": "01e91fa656237d175141fccd072b9cf516ae5919",
      "new_mode": 33188,
      "new_path": "examples/webpack_cli/webpack.config.js"
    },
    {
      "type": "modify",
      "old_id": "bf43f091adc53745b4957377d93c21eb49cb7e7c",
      "old_mode": 33188,
      "old_path": "js/private/coverage/bundle/BUILD.bazel",
      "new_id": "34ce8bb5fc4a4e0baf63d4d48a8f499a75e5c986",
      "new_mode": 33188,
      "new_path": "js/private/coverage/bundle/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "db3ceda9540ef2cb35526114db4139c338e7e43b",
      "old_mode": 33188,
      "old_path": "js/private/devserver/src/BUILD.bazel",
      "new_id": "a8ae232f1d16f5d1f2c300d9f3d62e2302da26c8",
      "new_mode": 33188,
      "new_path": "js/private/devserver/src/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "400a6bbc704e12ded13da7267a4804c6829365b2",
      "old_mode": 33188,
      "old_path": "js/private/test/node-patches/BUILD.bazel",
      "new_id": "902b182771b1672eca3a38029d574803fb71420f",
      "new_mode": 33188,
      "new_path": "js/private/test/node-patches/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "a017165e270dad8ef243bee3c0194d87f8f7ca1a",
      "old_mode": 33188,
      "old_path": "js/private/worker/src/BUILD.bazel",
      "new_id": "d439aeb58fd8cc23db8be0da02b441b394c309da",
      "new_mode": 33188,
      "new_path": "js/private/worker/src/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "7b3dd3e7e6d7dc0cc821fb67685c9bc91a706751",
      "old_mode": 33188,
      "old_path": "npm/private/lifecycle/src/BUILD.bazel",
      "new_id": "84c6d4b3f731e1eb6931fded760a6e5b1ab06ebe",
      "new_mode": 33188,
      "new_path": "npm/private/lifecycle/src/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "fae2a54fd0146f90346c801a3ddda997def23b8b",
      "old_mode": 33188,
      "old_path": "npm/private/npm_import.bzl",
      "new_id": "1ba92e5526aa5aa8f2d81700bf4cdb53cfc5f143",
      "new_mode": 33188,
      "new_path": "npm/private/npm_import.bzl"
    }
  ]
}
