)]}'
{
  "commit": "c8346f9cba12301092a6946fd317220179ba3bea",
  "tree": "8424f6cbd3093dc2b38df61315f7fd0157f57908",
  "parents": [
    "21362155a181f6c3825676ae9351ef2cadde9cd4"
  ],
  "author": {
    "name": "Richard Levasseur",
    "email": "rlevasseur@google.com",
    "time": "Mon Dec 30 22:15:15 2024 -0800"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Tue Dec 31 06:15:15 2024 +0000"
  },
  "message": "feat: add pyi attributes/fields, original source fields (#2538)\n\nThis adds attributes and fields of use to static analysis.\n\nFor type definition files (usually `.pyi` files), the `pyi_srcs` and\n`pyi_deps`\nfields are added to the rules. They end up in the PyInfo fields\ndirect_pyi_files\nand transitive_pyi_files.\n\nSo that static analysis tools can retain access to a target\u0027s Python\nsource files,\neven if precompiling is enabled, `direct_original_sources` and\n`transitive_original_sources` fields are added to PyInfo.\n\nWork towards https://github.com/bazelbuild/rules_python/issues/2537,\nhttps://github.com/bazelbuild/rules_python/issues/296",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "fd5d455147d3683f3792ce7a26d6e84bf66435d4",
      "old_mode": 33188,
      "old_path": "CHANGELOG.md",
      "new_id": "7c2f84f83ab5cd50c8d53b2f3e5b2bfcc5199d4c",
      "new_mode": 33188,
      "new_path": "CHANGELOG.md"
    },
    {
      "type": "modify",
      "old_id": "e62abf9f71a8b533dc57e465edd5fb2cc70cc298",
      "old_mode": 33188,
      "old_path": "python/private/attributes.bzl",
      "new_id": "dfe0d4e71600f276ed00b759abcb98f7360bab61",
      "new_mode": 33188,
      "new_path": "python/private/attributes.bzl"
    },
    {
      "type": "modify",
      "old_id": "9c285f97bc0ee7233ba1a45468aee673e88eccab",
      "old_mode": 33188,
      "old_path": "python/private/common.bzl",
      "new_id": "b6a54532d3d05b5690f69f38d05cea4457d9e870",
      "new_mode": 33188,
      "new_path": "python/private/common.bzl"
    },
    {
      "type": "modify",
      "old_id": "40c74100f29b04ff7846be914631ec634132144f",
      "old_mode": 33188,
      "old_path": "python/private/py_executable.bzl",
      "new_id": "20af98da9d76e43add901e8c80c47b555a36a7ee",
      "new_mode": 33188,
      "new_path": "python/private/py_executable.bzl"
    },
    {
      "type": "modify",
      "old_id": "4b2b8888c9ea97a01457d55f353eae17b32b8785",
      "old_mode": 33188,
      "old_path": "python/private/py_info.bzl",
      "new_id": "2a026853629d09228ce8007200fa34896919730e",
      "new_mode": 33188,
      "new_path": "python/private/py_info.bzl"
    },
    {
      "type": "modify",
      "old_id": "6a65038e8a01e084a1cfca93940f46c9abdb8a4a",
      "old_mode": 33188,
      "old_path": "python/private/py_library.bzl",
      "new_id": "350ea35aa6ba3e70aae49c46a6bbbcb43ee9160c",
      "new_mode": 33188,
      "new_path": "python/private/py_library.bzl"
    },
    {
      "type": "modify",
      "old_id": "8e0d10d729957a2a8477da1733f718d58ead4d97",
      "old_mode": 33188,
      "old_path": "tests/base_rules/base_tests.bzl",
      "new_id": "a9fadd7564a69dae566e06a45db5d7fb3bdd1652",
      "new_mode": 33188,
      "new_path": "tests/base_rules/base_tests.bzl"
    },
    {
      "type": "modify",
      "old_id": "4067a59d24a267f2ac7489e86c9239f0ce06b33d",
      "old_mode": 33188,
      "old_path": "tests/base_rules/py_info/py_info_tests.bzl",
      "new_id": "e160e704de0a6ec884ed7b82b42bf6b4cf2f1636",
      "new_mode": 33188,
      "new_path": "tests/base_rules/py_info/py_info_tests.bzl"
    },
    {
      "type": "modify",
      "old_id": "bfed0b335df6ae748b86de9ea301759ff37b6e16",
      "old_mode": 33188,
      "old_path": "tests/support/py_info_subject.bzl",
      "new_id": "9122eaa9fd1532a5fdec417e3d8e1ad4c99814e1",
      "new_mode": 33188,
      "new_path": "tests/support/py_info_subject.bzl"
    }
  ]
}
