)]}'
{
  "commit": "d8b18349ded914fc3f99d69971873d561d64772a",
  "tree": "3614b9fb3fdc361b07de93eebe030ffd3236a8b7",
  "parents": [
    "fae1cfc68dfcc1534a494f3d59026ed9ba39cc0b"
  ],
  "author": {
    "name": "Ignas Anikevicius",
    "email": "240938+aignas@users.noreply.github.com",
    "time": "Mon Oct 12 15:35:46 2026 +0000"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Mon Oct 12 15:35:46 2026 +0000"
  },
  "message": "feat(rules): expose pytest_test rule for public use (#4244)\n\nThe pytest_test rule has gone through some great additions\nand I think it is time to advertise it to others as well.\n\nAt the same time:\n- Add `pytest-randomly` and `pytest-shard`. The latter is optional\n  dependency and used only the tests are sharded.\n- Move the rule to `private` and update callsites.\n- Add `pytest-randomly` to our lock file.\n\nThings that we could do in addition to this\n- Add `pip.dep` declarations. These may make the error messages easier\n  to interpret?\n- Move pytest-bazel to `bazel-contrib/rules_python` or as a standalone\n  project.\n\nCloses #3594\n\n---------\n\nCo-authored-by: Richard Levasseur \u003crichardlev@gmail.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "60975fc31fa9ede782f76836e6e962ff07072309",
      "old_mode": 33188,
      "old_path": "MODULE.bazel",
      "new_id": "532c0c183258e512b65350b59348a55203c73f63",
      "new_mode": 33188,
      "new_path": "MODULE.bazel"
    },
    {
      "type": "modify",
      "old_id": "586d667d71d48abe732c2e6a25dfb6ada8e4f7ee",
      "old_mode": 33188,
      "old_path": "dev/pyproject.toml",
      "new_id": "0be689ec7b8cc2acdca0ff9c4a59771f5e4ac8c0",
      "new_mode": 33188,
      "new_path": "dev/pyproject.toml"
    },
    {
      "type": "modify",
      "old_id": "98cde38214d1b66c42edee1d10cf02b6a5d3b15c",
      "old_mode": 33188,
      "old_path": "dev/requirements.txt",
      "new_id": "1cd5aabbcae80b3dcecdb85c439c46b80a4ef096",
      "new_mode": 33188,
      "new_path": "dev/requirements.txt"
    },
    {
      "type": "modify",
      "old_id": "7c0fcb6abe337e5b8a20a8462a32c1c776d28f4c",
      "old_mode": 33188,
      "old_path": "dev/update_deps/BUILD.bazel",
      "new_id": "2e72ad848fb2284b52c36c11eaae0fd9998c1b8a",
      "new_mode": 33188,
      "new_path": "dev/update_deps/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "b524eb1f617f2b8ae581a96a5a523917fa86dcbf",
      "old_mode": 33188,
      "old_path": "dev/uv.lock",
      "new_id": "dfc07d9c90eb79c6f9d9bfe9e4db83469ec3046d",
      "new_mode": 33188,
      "new_path": "dev/uv.lock"
    },
    {
      "type": "modify",
      "old_id": "79653a693ca8a5ec681af2c47173caa388d552b5",
      "old_mode": 33188,
      "old_path": "docs/BUILD.bazel",
      "new_id": "b0217c121cacb1db8242bb9fb9c1fd9682ba6233",
      "new_mode": 33188,
      "new_path": "docs/BUILD.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e749f2fdfbb23a02d5c46bda299788de722d7a19",
      "new_mode": 33188,
      "new_path": "news/4244.added.md"
    },
    {
      "type": "modify",
      "old_id": "f2fb827658ff3db7e491791c55a687532634a787",
      "old_mode": 33188,
      "old_path": "python/BUILD.bazel",
      "new_id": "137fe0052534fa740acccaea7826aeefec7d8bc2",
      "new_mode": 33188,
      "new_path": "python/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "d28add4edf1de9737cf651be4520ad723292c91a",
      "old_mode": 33188,
      "old_path": "python/private/BUILD.bazel",
      "new_id": "d13e13ad7370507b621724b0a8fb68f863e24658",
      "new_mode": 33188,
      "new_path": "python/private/BUILD.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b877cdda2658794f9828e35057b7074ec1cc5033",
      "new_mode": 33188,
      "new_path": "python/private/pytest_test/BUILD.bazel"
    },
    {
      "type": "rename",
      "old_id": "2587353306a87c7311c7344365610d7418410dd2",
      "old_mode": 33188,
      "old_path": "tests/support/pytest_test/pytest_bootstrap_template.py",
      "new_id": "78da932a03d5e8920c98ac618900c56c1d056f3d",
      "new_mode": 33188,
      "new_path": "python/private/pytest_test/pytest_bootstrap_template.py",
      "score": 66
    },
    {
      "type": "rename",
      "old_id": "bbdfffb24fb8630131d4e9e38eaf8ce1de866c70",
      "old_mode": 33188,
      "old_path": "tests/support/pytest_test/pytest_test.bzl",
      "new_id": "511c72d50f3d5ae57181f2724e90075393c79107",
      "new_mode": 33188,
      "new_path": "python/private/pytest_test/pytest_test.bzl",
      "score": 68
    },
    {
      "type": "modify",
      "old_id": "8b69682b49f012c335cadd82c894f8ea141a344c",
      "old_mode": 33188,
      "old_path": "python/private/sentinel_impl.bzl",
      "new_id": "8575087aa06271d7718041baa485d030367bc4f5",
      "new_mode": 33188,
      "new_path": "python/private/sentinel_impl.bzl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "be24e40fe5ef115b9b865a075a1b4f68d60e8729",
      "new_mode": 33188,
      "new_path": "python/pytest_test.bzl"
    },
    {
      "type": "modify",
      "old_id": "927fc305663de663eb5cc9f007d35c269e924483",
      "old_mode": 33188,
      "old_path": "tests/BUILD.bazel",
      "new_id": "50a3b005a64636bdf410cddb6539f89f968356c3",
      "new_mode": 33188,
      "new_path": "tests/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "2c4eae8d21f187877cc57d0b22c7d168c05a80f9",
      "old_mode": 33188,
      "old_path": "tests/bootstrap_impls/BUILD.bazel",
      "new_id": "8417ec5b9fc3878d3456cd0eb02852903f97696c",
      "new_mode": 33188,
      "new_path": "tests/bootstrap_impls/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "204671cb3e63a884a54a70f9e8215de8bda94442",
      "old_mode": 33188,
      "old_path": "tests/pytest_test/BUILD.bazel",
      "new_id": "664566d4a6f21de4a265d09b3f852d8be4387e7e",
      "new_mode": 33188,
      "new_path": "tests/pytest_test/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "30e2c41ab9c401f112a55d8527d4a5cf050ea548",
      "old_mode": 33188,
      "old_path": "tests/pytest_test/basic_test.py",
      "new_id": "c444b5d44d9ad74c0cbbcedaa35642973bb77230",
      "new_mode": 33188,
      "new_path": "tests/pytest_test/basic_test.py"
    },
    {
      "type": "modify",
      "old_id": "8699ac2ebd3806268e24ffd25c49c2062f38188e",
      "old_mode": 33188,
      "old_path": "tests/pytest_test/pytest_test_tests.bzl",
      "new_id": "2d75b76b75cfb8cee44170fb35b9127d4b1cb678",
      "new_mode": 33188,
      "new_path": "tests/pytest_test/pytest_test_tests.bzl"
    },
    {
      "type": "modify",
      "old_id": "08944efd9004460bae3c7dd7a15a6c5899ba1399",
      "old_mode": 33188,
      "old_path": "tests/runfiles/BUILD.bazel",
      "new_id": "8461a2c83c0e0685d3cd62986e96607c6d009882",
      "new_mode": 33188,
      "new_path": "tests/runfiles/BUILD.bazel"
    },
    {
      "type": "delete",
      "old_id": "4e6f6dd1686502d211627ad7e277fd8478be41e6",
      "old_mode": 33188,
      "old_path": "tests/support/pytest_test/BUILD.bazel",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "b4a41aff2ab3eef96fa4aac332b0b62cde90dd36",
      "old_mode": 33188,
      "old_path": "tests/tools/private/release/BUILD.bazel",
      "new_id": "6633752c8df9b9b22e5b730f8b1424b4141bbfb7",
      "new_mode": 33188,
      "new_path": "tests/tools/private/release/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "7943e4065f802663c5fa5ba9501b58d9ebd62ed8",
      "old_mode": 33188,
      "old_path": "tests/tools/zipapp/BUILD.bazel",
      "new_id": "cddc434a398c33a30937b6f1f23dd7c9ec7a9488",
      "new_mode": 33188,
      "new_path": "tests/tools/zipapp/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "d70fd6cdf41f11f5f99b6cfe16ab9ba23d085da2",
      "old_mode": 33188,
      "old_path": "tests/venv_site_packages_libs/BUILD.bazel",
      "new_id": "f3c0e46dde95bb5df1a87eace7afade4b6cd98a0",
      "new_mode": 33188,
      "new_path": "tests/venv_site_packages_libs/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "7f8a3bf590628d37f91693a9fa3893b8b97fbc4b",
      "old_mode": 33188,
      "old_path": "tests/workflows/BUILD.bazel",
      "new_id": "002fe41aa32bad7560d0a5e1a8c620184c38c600",
      "new_mode": 33188,
      "new_path": "tests/workflows/BUILD.bazel"
    }
  ]
}
