)]}'
{
  "commit": "cdf4f55badbaba432058e8fb0f097a25df6af656",
  "tree": "cd783708262324843d8304b4335d463943c05e18",
  "parents": [
    "b2c39269d3977e21b47cdfa69d0f9a0bec8f6482"
  ],
  "author": {
    "name": "Richard Levasseur",
    "email": "richardlev@gmail.com",
    "time": "Mon Jul 07 07:05:21 2025 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Mon Jul 07 14:05:21 2025 +0000"
  },
  "message": "feat(pypi): generate filegroup with all extracted wheel files (#3011)\n\nAdds a filegroup with all the files that came from the extracted wheel.\n\nThis has two benefits over using `whl_filegroup`: it avoids copying the\nwheel\nand makes the set of files directly visible to the analysis phase.\n\nSome wheels are multiple gigabytes in size (e.g. torch, cuda,\ntensorflow), so\navoiding the copy and archive processing saves a decent amount of time.\n\nKnowing the specific files at analysis time is generally beneficial. The\nparticular case I ran into was the CC rules were unhappy with a\nTreeArtifact\nof header files because they couldn\u0027t enforce some check about who was\nproperly providing headers that were included (layering check?).\n\nAnother example is using the unused_inputs_list optimization, which\nallows\nan action to ignore inputs that aren\u0027t actually used. e.g. an action\ncould\ntake all the wheel\u0027s files as inputs, only care about the headers, and\nthen\ntell bazel all the non-header files aren\u0027t relevant, and thus changes to\nother files don\u0027t re-run the thing that only cares about headers.\n\n---------\n\nCo-authored-by: google-labs-jules[bot] \u003c161369871+google-labs-jules[bot]@users.noreply.github.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2b57af606ed65acd8643c6b8feb93d71edc5ec21",
      "old_mode": 33188,
      "old_path": "CHANGELOG.md",
      "new_id": "c1d3a438147affe0e7fb8a01a61b292c49b08b4d",
      "new_mode": 33188,
      "new_path": "CHANGELOG.md"
    },
    {
      "type": "modify",
      "old_id": "6212097f8640483b8ca87eded53b798899655758",
      "old_mode": 33188,
      "old_path": "docs/pypi/use.md",
      "new_id": "a6681671143fe462d07e6e2f1eed2fbb4abcbb69",
      "new_mode": 33188,
      "new_path": "docs/pypi/use.md"
    },
    {
      "type": "modify",
      "old_id": "73df07b2d262bc9ac7270575f5df6b81e242024a",
      "old_mode": 33188,
      "old_path": "python/private/pypi/labels.bzl",
      "new_id": "22161b1496dcf0754ef278baf9e42400726aa739",
      "new_mode": 33188,
      "new_path": "python/private/pypi/labels.bzl"
    },
    {
      "type": "modify",
      "old_id": "d71c37cb4b39038cacc46a121776f5a7b6717092",
      "old_mode": 33188,
      "old_path": "python/private/pypi/pkg_aliases.bzl",
      "new_id": "4d3cc61590ea3b190d15affee18c9604c266a89b",
      "new_mode": 33188,
      "new_path": "python/private/pypi/pkg_aliases.bzl"
    },
    {
      "type": "modify",
      "old_id": "de5fcb9f91de89fc839a53594ede7db48347d5b5",
      "old_mode": 33188,
      "old_path": "python/private/pypi/whl_library.bzl",
      "new_id": "15bb680fea8958525a96c27aa71fa1a2d443a112",
      "new_mode": 33188,
      "new_path": "python/private/pypi/whl_library.bzl"
    },
    {
      "type": "modify",
      "old_id": "95c1f5e981e92ea8df86cfcf5d247c13cb037f2c",
      "old_mode": 33188,
      "old_path": "python/private/pypi/whl_library_targets.bzl",
      "new_id": "aed5bc74f58fbe0a2c03028d1f49be859ab69f16",
      "new_mode": 33188,
      "new_path": "python/private/pypi/whl_library_targets.bzl"
    },
    {
      "type": "modify",
      "old_id": "d2e6e43b9166298f627a47818988cd03eda7ec6a",
      "old_mode": 33188,
      "old_path": "python/private/whl_filegroup/whl_filegroup.bzl",
      "new_id": "c52211bfbca2417fe62d4fe975e4267e4cafc185",
      "new_mode": 33188,
      "new_path": "python/private/whl_filegroup/whl_filegroup.bzl"
    },
    {
      "type": "modify",
      "old_id": "123ee725f8bd8c5813276b2fe1e0074755de2191",
      "old_mode": 33188,
      "old_path": "tests/pypi/pkg_aliases/pkg_aliases_test.bzl",
      "new_id": "3fd08c393ca3bc17f78f258dfd2af52a73f983b1",
      "new_mode": 33188,
      "new_path": "tests/pypi/pkg_aliases/pkg_aliases_test.bzl"
    },
    {
      "type": "modify",
      "old_id": "bc58be9698bb1bf08986504eedf0406b374fa997",
      "old_mode": 33188,
      "old_path": "tests/pypi/whl_library_targets/whl_library_targets_tests.bzl",
      "new_id": "ec7ca63832c35ff2df5708eb3783a92d52fc43b0",
      "new_mode": 33188,
      "new_path": "tests/pypi/whl_library_targets/whl_library_targets_tests.bzl"
    }
  ]
}
