)]}'
{
  "commit": "04a803c286451f7ad782369b7c529a46e6ad5c9e",
  "tree": "7ed3bc41b2248c8507e7ccb995d9ba8f599f6773",
  "parents": [
    "0fd7b64c2d35fe43d09bf250e3189a4386eb8d9e"
  ],
  "author": {
    "name": "Ignas Anikevicius",
    "email": "240938+aignas@users.noreply.github.com",
    "time": "Sun Jun 23 09:20:18 2024 +0900"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Sun Jun 23 00:20:18 2024 +0000"
  },
  "message": "refactor: move PyPI related extension and repository_rule setup to its own dir (#2003)\n\nThis is to ensure that future work is easier and its clear where to add\ntests.\nNow all of the unit tests can be run by just `bazel test\n//tests/pypi/...`.\n\nRefactor summary:\n- chore: add aignas to CODEOWNERS\n- chore: add a new directory for storing PyPI related code\n- move pypi_index_sources.bzl to private/pypi\n- chore: move parse_requirements_txt to private/pypi\n- move parse_whl_name to private/pypi\n- move whl_target_platforms to private/pypi\n- move parse_requirements to private/pypi\n- move pip_repo_name to private/pypi\n- remove unused file\n- move pip_config_settings to private/pypi\n- move pypi_index to pypi/private and rename\n- move labels.bzl to private/pypi\n- move generate_build_bazel to private/pypi\n- move render_pkg_aliases.bzl to private/pypi\n- move patch_whl.bzl to private/pypi\n- Move envsubst and render_tests to top level of tests\n- move pip_install_srcs to private/pypi\n- split and move pip_install/pip_repository.bzl to private/pypi\n- move the bzlmod extension to private/pypi",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "3449bcfac030d35d622b808b07fc8706bba04c3c",
      "old_mode": 33188,
      "old_path": ".github/CODEOWNERS",
      "new_id": "a75b5a91a3055e2dc5464dbdc3f102466fa7fa7b",
      "new_mode": 33188,
      "new_path": ".github/CODEOWNERS"
    },
    {
      "type": "modify",
      "old_id": "8298f49cf21887e43c34ad71909a2231ccd3e4f8",
      "old_mode": 33188,
      "old_path": "examples/pip_parse_vendored/requirements.bzl",
      "new_id": "50bfe9fe8ed3d14c49266e90ff9ae91240868f10",
      "new_mode": 33188,
      "new_path": "examples/pip_parse_vendored/requirements.bzl"
    },
    {
      "type": "modify",
      "old_id": "cbf29964fba936c1a8c2adc8ce03d3af975af3e8",
      "old_mode": 33188,
      "old_path": "python/BUILD.bazel",
      "new_id": "29b495bf90aa7b074979f8dd313eb6d266ee4cbb",
      "new_mode": 33188,
      "new_path": "python/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "1003efb8c2c04f2e6a17d28e3853a5ef33b25ed8",
      "old_mode": 33188,
      "old_path": "python/config_settings/BUILD.bazel",
      "new_id": "f6f46db77005552bd1dd1c5fa24cfd7eef32effa",
      "new_mode": 33188,
      "new_path": "python/config_settings/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "eb095ab746a77eed49e8afcca5280cf98aec48a1",
      "old_mode": 33188,
      "old_path": "python/extensions/BUILD.bazel",
      "new_id": "1bc2a711925b322ebb4dc290612b6e435cdde544",
      "new_mode": 33188,
      "new_path": "python/extensions/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "8cc091d3cbe0ec19af1d1f8223cce3fdcaeb5a98",
      "old_mode": 33188,
      "old_path": "python/pip.bzl",
      "new_id": "f1c74dd964e1d8c73e7d36bbebd5a3749f7e780f",
      "new_mode": 33188,
      "new_path": "python/pip.bzl"
    },
    {
      "type": "modify",
      "old_id": "91f2ec7b59e67218ab94716120c35ca835441010",
      "old_mode": 33188,
      "old_path": "python/pip_install/BUILD.bazel",
      "new_id": "1894c4d9156b50970a67fba81314411fb30870b8",
      "new_mode": 33188,
      "new_path": "python/pip_install/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "d6c8d9149cb2a3207be3ff2b7441ad9102458925",
      "old_mode": 33188,
      "old_path": "python/pip_install/pip_repository.bzl",
      "new_id": "18deee19930f4e52cbd5783c2e5c11cde6c6292f",
      "new_mode": 33188,
      "new_path": "python/pip_install/pip_repository.bzl"
    },
    {
      "type": "delete",
      "old_id": "887d2d34687b5e78ba18f1d29eabd0b1a6567fb1",
      "old_mode": 33188,
      "old_path": "python/pip_install/private/BUILD.bazel",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "488583dcb8a29e9de0c7c9e015633734dce90dfb",
      "old_mode": 33188,
      "old_path": "python/pip_install/private/pip_install_utils.bzl",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "e92e49fc5f858a223f0b8e0dfb8a7d125e1fc807",
      "old_mode": 33188,
      "old_path": "python/pip_install/private/srcs.bzl",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "3b49fdf181760655f8947c1e960376fca52eeefe",
      "old_mode": 33188,
      "old_path": "python/pip_install/requirements_parser.bzl",
      "new_id": "82ec1b946c807cd145e95cbfbce4d99c5623020b",
      "new_mode": 33188,
      "new_path": "python/pip_install/requirements_parser.bzl"
    },
    {
      "type": "modify",
      "old_id": "c2cfb39509db34b75cd5242bbe73b13dc14d9973",
      "old_mode": 33188,
      "old_path": "python/pip_install/tools/dependency_resolver/BUILD.bazel",
      "new_id": "467b0093327ca267fa400932da68a68daa9d9cf4",
      "new_mode": 33188,
      "new_path": "python/pip_install/tools/dependency_resolver/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "a396488d3df63b48c39dc982453ace04a7506766",
      "old_mode": 33188,
      "old_path": "python/pip_install/tools/wheel_installer/BUILD.bazel",
      "new_id": "0c24d5a4896989d3c606465021c7a116a05ed1a9",
      "new_mode": 33188,
      "new_path": "python/pip_install/tools/wheel_installer/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "cd385e3700e52747641e4d937827e3d45e1114a8",
      "old_mode": 33188,
      "old_path": "python/private/BUILD.bazel",
      "new_id": "ccc6acdcbf12bf9e9387783f48f17512d177666d",
      "new_mode": 33188,
      "new_path": "python/private/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "3362f34ffd78162f9af3f801adfeee73d1003ce8",
      "old_mode": 33188,
      "old_path": "python/private/bzlmod/BUILD.bazel",
      "new_id": "2cb35fc03ec6937791629d42e3190b69c4a73390",
      "new_mode": 33188,
      "new_path": "python/private/bzlmod/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "2ded3a4acd33d573fed16bb63fcf1789efee4d49",
      "old_mode": 33188,
      "old_path": "python/private/bzlmod/pip.bzl",
      "new_id": "ecf94b69d505179a7795830441b5f674abee1d4a",
      "new_mode": 33188,
      "new_path": "python/private/bzlmod/pip.bzl"
    },
    {
      "type": "delete",
      "old_id": "633062f399052aa3f71587fa3052bf0a6fa586f6",
      "old_mode": 33188,
      "old_path": "python/private/normalize_platform.bzl",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1530837f7d72e24348fb5a4ce389ecc66ecea48f",
      "new_mode": 33188,
      "new_path": "python/private/pypi/BUILD.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6be57039123d94087d8b82f0a7ab04d50a85df0a",
      "new_mode": 33188,
      "new_path": "python/private/pypi/README.md"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "79ffea54a171de23e167b7b98caebaa4481fedd2",
      "new_mode": 33188,
      "new_path": "python/private/pypi/attrs.bzl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e98208a2a6a3a8d888a66bcb14d568bc3c1f8c4a",
      "new_mode": 33188,
      "new_path": "python/private/pypi/bzlmod.bzl"
    },
    {
      "type": "rename",
      "old_id": "b13b39b725494b408c1df99397de7e63999d934b",
      "old_mode": 33188,
      "old_path": "python/private/pip_config_settings.bzl",
      "new_id": "974121782f76b04f4e4bc0cf5584739ed2461b10",
      "new_mode": 33188,
      "new_path": "python/private/pypi/config_settings.bzl",
      "score": 98
    },
    {
      "type": "rename",
      "old_id": "1d271c7318f1a8aa73a076025efb34bd81f20058",
      "old_mode": 33188,
      "old_path": "python/private/pip_flags.bzl",
      "new_id": "d834be8cc6c9a891edbd351e5539068f1cb93dca",
      "new_mode": 33188,
      "new_path": "python/private/pypi/flags.bzl",
      "score": 97
    },
    {
      "type": "rename",
      "old_id": "5fa93e22b78fd5b30001c4d281416a1e8c411355",
      "old_mode": 33188,
      "old_path": "python/pip_install/private/generate_group_library_build_bazel.bzl",
      "new_id": "54da066b4273fefd88979587a901d8471f54cc2c",
      "new_mode": 33188,
      "new_path": "python/private/pypi/generate_group_library_build_bazel.bzl",
      "score": 98
    },
    {
      "type": "rename",
      "old_id": "f3ddd3bcab341cfa782029fae4e267bee9dd5d40",
      "old_mode": 33188,
      "old_path": "python/pip_install/private/generate_whl_library_build_bazel.bzl",
      "new_id": "d25f73a04991b27c7bf9bac77ee94d2da8b8350b",
      "new_mode": 33188,
      "new_path": "python/private/pypi/generate_whl_library_build_bazel.bzl",
      "score": 99
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ff800e2f1850f09c5ffc883d946c169dc1f30f53",
      "new_mode": 33188,
      "new_path": "python/private/pypi/group_library.bzl"
    },
    {
      "type": "rename",
      "old_id": "d42eb8b0566de3fdf15002dcbb67075a929c1157",
      "old_mode": 33188,
      "old_path": "python/private/bzlmod/pip_repository.bzl",
      "new_id": "5e209d6f9f9381b66f74018407a24262aef31a79",
      "new_mode": 33188,
      "new_path": "python/private/pypi/hub_repository.bzl",
      "score": 78
    },
    {
      "type": "rename",
      "old_id": "470a8c9f5a018212276289bc67a43b7ca6825329",
      "old_mode": 33188,
      "old_path": "python/private/pypi_index_sources.bzl",
      "new_id": "21660141db0039d29d1ea9285e52423d39ab6a32",
      "new_mode": 33188,
      "new_path": "python/private/pypi/index_sources.bzl",
      "score": 97
    },
    {
      "type": "rename",
      "old_id": "73df07b2d262bc9ac7270575f5df6b81e242024a",
      "old_mode": 33188,
      "old_path": "python/private/labels.bzl",
      "new_id": "73df07b2d262bc9ac7270575f5df6b81e242024a",
      "new_mode": 33188,
      "new_path": "python/private/pypi/labels.bzl",
      "score": 100
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4a54703ac49fddaea9b51e246d7fa5dc8440ff36",
      "new_mode": 33188,
      "new_path": "python/private/pypi/package_annotation.bzl"
    },
    {
      "type": "rename",
      "old_id": "21e132b4f872251205499dbf2e0da6b61fb90bfe",
      "old_mode": 33188,
      "old_path": "python/private/parse_requirements.bzl",
      "new_id": "22a6f0a875324a72c8a925812e8827364f0269c1",
      "new_mode": 33188,
      "new_path": "python/private/pypi/parse_requirements.bzl",
      "score": 98
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6f51d034dad29ad21fbad3bb3a8761a6f6a38712",
      "new_mode": 33188,
      "new_path": "python/private/pypi/parse_requirements_txt.bzl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f7cd032acafb552be4de18eb045d76185f76a8b9",
      "new_mode": 33188,
      "new_path": "python/private/pypi/parse_simpleapi_html.bzl"
    },
    {
      "type": "rename",
      "old_id": "063ac84a9220ac931114f812dc41d266050b4f66",
      "old_mode": 33188,
      "old_path": "python/private/parse_whl_name.bzl",
      "new_id": "063ac84a9220ac931114f812dc41d266050b4f66",
      "new_mode": 33188,
      "new_path": "python/private/pypi/parse_whl_name.bzl",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "9e3119f744d4fb1f7d38a72926732889eac4d799",
      "old_mode": 33188,
      "old_path": "python/private/patch_whl.bzl",
      "new_id": "c2c633da7f561f996ee1ed6441bacfc12d832e0f",
      "new_mode": 33188,
      "new_path": "python/private/pypi/patch_whl.bzl",
      "score": 87
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a22f4d9d2c483b2d19b0ea06b799ef7edaffc109",
      "new_mode": 33188,
      "new_path": "python/private/pypi/pip_repository.bzl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "23000869e9d35862b56bdedf9557d5c1ae0026b8",
      "new_mode": 33188,
      "new_path": "python/private/pypi/pip_repository_attrs.bzl"
    },
    {
      "type": "rename",
      "old_id": "82ac764f0016416db8aee2aa13dc8e82073794fb",
      "old_mode": 33188,
      "old_path": "python/private/render_pkg_aliases.bzl",
      "new_id": "eb907fee0f155c39c61a2d0b6613fe815f6eab19",
      "new_mode": 33188,
      "new_path": "python/private/pypi/render_pkg_aliases.bzl",
      "score": 97
    },
    {
      "type": "rename",
      "old_id": "9052ac39c611330803acfe53aa832a38501ec6d2",
      "old_mode": 33188,
      "old_path": "python/private/repack_whl.py",
      "new_id": "9052ac39c611330803acfe53aa832a38501ec6d2",
      "new_mode": 33188,
      "new_path": "python/private/pypi/repack_whl.py",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "ba227aeb2d71d62edfd45de20d763200313e5335",
      "old_mode": 33188,
      "old_path": "python/private/bzlmod/requirements.bzl.tmpl",
      "new_id": "ba227aeb2d71d62edfd45de20d763200313e5335",
      "new_mode": 33188,
      "new_path": "python/private/pypi/requirements.bzl.tmpl.bzlmod",
      "score": 100
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2f4bcd6916304fc4c3df0b06cf3c1300a6d9f034",
      "new_mode": 33188,
      "new_path": "python/private/pypi/requirements.bzl.tmpl.workspace"
    },
    {
      "type": "rename",
      "old_id": "64d908e32b533f353493a86644b6cd60f518d2cf",
      "old_mode": 33188,
      "old_path": "python/private/pypi_index.bzl",
      "new_id": "b258fef07ae819aab4e9d393ce5daada773a5299",
      "new_mode": 33188,
      "new_path": "python/private/pypi/simpleapi_download.bzl",
      "score": 67
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "cae0db3e2b46d1d31744c528fb594950412bc8c1",
      "new_mode": 33188,
      "new_path": "python/private/pypi/whl_library.bzl"
    },
    {
      "type": "rename",
      "old_id": "bef4304e15e4e813b5573324ce37bb508b81351a",
      "old_mode": 33188,
      "old_path": "python/private/pip_repo_name.bzl",
      "new_id": "295f5a45c45b741c6db9e33061dc4788fafd049c",
      "new_mode": 33188,
      "new_path": "python/private/pypi/whl_repo_name.bzl",
      "score": 93
    },
    {
      "type": "rename",
      "old_id": "bee795732a2046e7ea3c7f810d41791fcd014238",
      "old_mode": 33188,
      "old_path": "python/private/whl_target_platforms.bzl",
      "new_id": "bee795732a2046e7ea3c7f810d41791fcd014238",
      "new_mode": 33188,
      "new_path": "python/private/pypi/whl_target_platforms.bzl",
      "score": 100
    },
    {
      "type": "modify",
      "old_id": "dade9cba9b5ad0d4504c26c01f6ccd76ca316e2f",
      "old_mode": 33188,
      "old_path": "python/private/text_util.bzl",
      "new_id": "702a08e28147e500109e201088f237e3ee360aa9",
      "new_mode": 33188,
      "new_path": "python/private/text_util.bzl"
    },
    {
      "type": "rename",
      "old_id": "ec9970559c58f272557d251d3f3abec2d825fd22",
      "old_mode": 33188,
      "old_path": "tests/private/envsubst/BUILD.bazel",
      "new_id": "ec9970559c58f272557d251d3f3abec2d825fd22",
      "new_mode": 33188,
      "new_path": "tests/envsubst/BUILD.bazel",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "dd5e706ccc5a775d16743eeee00b85e10aa75210",
      "old_mode": 33188,
      "old_path": "tests/private/envsubst/envsubst_tests.bzl",
      "new_id": "dd5e706ccc5a775d16743eeee00b85e10aa75210",
      "new_mode": 33188,
      "new_path": "tests/envsubst/envsubst_tests.bzl",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "3aa3b0076af6718f01f3333862b62017a8633ec5",
      "old_mode": 33188,
      "old_path": "tests/pip_hub_repository/normalize_name/BUILD.bazel",
      "new_id": "3aa3b0076af6718f01f3333862b62017a8633ec5",
      "new_mode": 33188,
      "new_path": "tests/normalize_name/BUILD.bazel",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "0c9456787b8d0f78d8aefcad71a06bba23d501f4",
      "old_mode": 33188,
      "old_path": "tests/pip_hub_repository/normalize_name/normalize_name_tests.bzl",
      "new_id": "0c9456787b8d0f78d8aefcad71a06bba23d501f4",
      "new_mode": 33188,
      "new_path": "tests/normalize_name/normalize_name_tests.bzl",
      "score": 100
    },
    {
      "type": "delete",
      "old_id": "60d25de7dfeb7329201c656e2e4a852254e3f525",
      "old_mode": 33188,
      "old_path": "tests/pip_install/BUILD.bazel",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "5a27e112dbdb1203d6ff946b9c00576e23ea07d7",
      "old_mode": 33188,
      "old_path": "tests/pip_install/group_library/BUILD.bazel",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "2787f16f9499de7015d2e73970b77e6c3895095f",
      "old_mode": 33188,
      "old_path": "tests/pip_install/requirements_parser/BUILD.bazel",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "5a27e112dbdb1203d6ff946b9c00576e23ea07d7",
      "old_mode": 33188,
      "old_path": "tests/pip_install/whl_library/BUILD.bazel",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "c3752e0ac34dc6e549e147e07714d1653b6516d7",
      "old_mode": 33188,
      "old_path": "tests/private/pip_config_settings/BUILD.bazel",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "7c6782daaf5e8cfdfe3ebbec4ee82f0bcff5fb39",
      "old_mode": 33188,
      "old_path": "tests/private/pip_repo_name/BUILD.bazel",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "d365896cd3f8c5f43ebcc5fa0aa7c60efc984768",
      "old_mode": 33188,
      "old_path": "tests/private/pypi_index/BUILD.bazel",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "212615f48036a0872ecf2bc564eb448081aa9457",
      "old_mode": 33188,
      "old_path": "tests/private/pypi_index_sources/BUILD.bazel",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "15dbd7f70e4c4bcb8db3d20498f81a9350125392",
      "new_mode": 33188,
      "new_path": "tests/pypi/config_settings/BUILD.bazel"
    },
    {
      "type": "rename",
      "old_id": "a66e7f47d5a89515bd1de72aa9ab135f1a2c5003",
      "old_mode": 33188,
      "old_path": "tests/private/pip_config_settings/pip_config_settings_tests.bzl",
      "new_id": "87e18b412fd8d8ef7009010cfa82b44d9c862890",
      "new_mode": 33188,
      "new_path": "tests/pypi/config_settings/config_settings_tests.bzl",
      "score": 98
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "df5ab8232064d46c6ccd68538fc80512b1aa793a",
      "new_mode": 33188,
      "new_path": "tests/pypi/generate_group_library_build_bazel/BUILD.bazel"
    },
    {
      "type": "rename",
      "old_id": "cf082c299098db425f00ed9a7f21ba30d7739b32",
      "old_mode": 33188,
      "old_path": "tests/pip_install/group_library/generate_build_bazel_tests.bzl",
      "new_id": "a46aa413a3def3be9728dfc4a01052570daa1514",
      "new_mode": 33188,
      "new_path": "tests/pypi/generate_group_library_build_bazel/generate_group_library_build_bazel_tests.bzl",
      "score": 91
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "bea8e82ce37fa757becc64e90be6f1b1a8a4c995",
      "new_mode": 33188,
      "new_path": "tests/pypi/generate_whl_library_build_bazel/BUILD.bazel"
    },
    {
      "type": "rename",
      "old_id": "62858afc94c5042a55e2172b5d242be61d23432c",
      "old_mode": 33188,
      "old_path": "tests/pip_install/whl_library/generate_build_bazel_tests.bzl",
      "new_id": "3d4df14b5b093be7f136ebad87033d4d36ecbe19",
      "new_mode": 33188,
      "new_path": "tests/pypi/generate_whl_library_build_bazel/generate_whl_library_build_bazel_tests.bzl",
      "score": 98
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7cd327abef79b473a01babc32eeb907dd3649ce2",
      "new_mode": 33188,
      "new_path": "tests/pypi/index_sources/BUILD.bazel"
    },
    {
      "type": "rename",
      "old_id": "48d790fc68984e6ae0c5fdf5ac0471c08c27128c",
      "old_mode": 33188,
      "old_path": "tests/private/pypi_index_sources/pypi_index_sources_tests.bzl",
      "new_id": "0a767078ba34e5e73db516c0da6ba1a57875107e",
      "new_mode": 33188,
      "new_path": "tests/pypi/index_sources/index_sources_tests.bzl",
      "score": 88
    },
    {
      "type": "rename",
      "old_id": "3d7976e406dec5290db1789bc9853309661379b6",
      "old_mode": 33188,
      "old_path": "tests/private/parse_requirements/BUILD.bazel",
      "new_id": "3d7976e406dec5290db1789bc9853309661379b6",
      "new_mode": 33188,
      "new_path": "tests/pypi/parse_requirements/BUILD.bazel",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "81cf5234601ff0f6a9e6054694cf1e8f3dcbb634",
      "old_mode": 33188,
      "old_path": "tests/private/parse_requirements/parse_requirements_tests.bzl",
      "new_id": "13ce8f44ed408fa1fb8341fb0b4fb044ab2a6a85",
      "new_mode": 33188,
      "new_path": "tests/pypi/parse_requirements/parse_requirements_tests.bzl",
      "score": 98
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "526fa73d4b12d844c44516d7af4ba87577a95825",
      "new_mode": 33188,
      "new_path": "tests/pypi/parse_requirements_txt/BUILD.bazel"
    },
    {
      "type": "rename",
      "old_id": "5ea742e70d5fa141943f121fcb9c186d9f3a5052",
      "old_mode": 33188,
      "old_path": "tests/pip_install/requirements_parser/requirements_parser_tests.bzl",
      "new_id": "f4e899054ab33c0ab92ab90f5dd5006ddd6b1a0d",
      "new_mode": 33188,
      "new_path": "tests/pypi/parse_requirements_txt/parse_requirements_txt_tests.bzl",
      "score": 87
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e63ef0d5fa42875864a483e77334f08781ae5687",
      "new_mode": 33188,
      "new_path": "tests/pypi/parse_simpleapi_html/BUILD.bazel"
    },
    {
      "type": "rename",
      "old_id": "fa381065b16164824c99d78234bfddc4dc9885c9",
      "old_mode": 33188,
      "old_path": "tests/private/pypi_index/pypi_index_tests.bzl",
      "new_id": "a60bb1f3306ee14d2c36a8c93ea5c4e105294b05",
      "new_mode": 33188,
      "new_path": "tests/pypi/parse_simpleapi_html/parse_simpleapi_html_tests.bzl",
      "score": 94
    },
    {
      "type": "rename",
      "old_id": "c2fb36574882826f5533f0a6af523436977498ad",
      "old_mode": 33188,
      "old_path": "tests/private/parse_whl_name/BUILD.bazel",
      "new_id": "c2fb36574882826f5533f0a6af523436977498ad",
      "new_mode": 33188,
      "new_path": "tests/pypi/parse_whl_name/BUILD.bazel",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "c249f9fb1a03d2fc62901abffa4a55ce804ba75d",
      "old_mode": 33188,
      "old_path": "tests/private/parse_whl_name/parse_whl_name_tests.bzl",
      "new_id": "4a88a6e7c5525cb5bcf389f6a02030bf01cdcb30",
      "new_mode": 33188,
      "new_path": "tests/pypi/parse_whl_name/parse_whl_name_tests.bzl",
      "score": 96
    },
    {
      "type": "rename",
      "old_id": "f2e01266663e832e03e4c63ee68fb10c1ba8a309",
      "old_mode": 33188,
      "old_path": "tests/pip_hub_repository/render_pkg_aliases/BUILD.bazel",
      "new_id": "f2e01266663e832e03e4c63ee68fb10c1ba8a309",
      "new_mode": 33188,
      "new_path": "tests/pypi/render_pkg_aliases/BUILD.bazel",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "da8a918aed30d35fc2b344a7b78c60a4900b4b61",
      "old_mode": 33188,
      "old_path": "tests/pip_hub_repository/render_pkg_aliases/render_pkg_aliases_test.bzl",
      "new_id": "0d4c75e3c2c2bc012a1ce0c7143d5de1fc246f8e",
      "new_mode": 33188,
      "new_path": "tests/pypi/render_pkg_aliases/render_pkg_aliases_test.bzl",
      "score": 98
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8671dd7754f717f0ee60bfa473891a2760631b7d",
      "new_mode": 33188,
      "new_path": "tests/pypi/whl_repo_name/BUILD.bazel"
    },
    {
      "type": "rename",
      "old_id": "574d55827725c92061f59971dba73a4ab69f58ef",
      "old_mode": 33188,
      "old_path": "tests/private/pip_repo_name/pip_repo_name_tests.bzl",
      "new_id": "8b7df835300132dffcbeef3373f04510c7f43f0b",
      "new_mode": 33188,
      "new_path": "tests/pypi/whl_repo_name/whl_repo_name_tests.bzl",
      "score": 82
    },
    {
      "type": "rename",
      "old_id": "6c35b08d3228ac4f211c35a67f0f83c45f620186",
      "old_mode": 33188,
      "old_path": "tests/private/whl_target_platforms/BUILD.bazel",
      "new_id": "6c35b08d3228ac4f211c35a67f0f83c45f620186",
      "new_mode": 33188,
      "new_path": "tests/pypi/whl_target_platforms/BUILD.bazel",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "59e9d779189cf7301019713343b27d256aae1fd4",
      "old_mode": 33188,
      "old_path": "tests/private/whl_target_platforms/select_whl_tests.bzl",
      "new_id": "3fd80e3ee3476f596e9142ffa78d9f54243605cb",
      "new_mode": 33188,
      "new_path": "tests/pypi/whl_target_platforms/select_whl_tests.bzl",
      "score": 98
    },
    {
      "type": "rename",
      "old_id": "07f3158b314a57ad375fde2ab2ea7e469712e1a5",
      "old_mode": 33188,
      "old_path": "tests/private/whl_target_platforms/whl_target_platforms_tests.bzl",
      "new_id": "a72bdc275fa7b7f1d007c043c7d8312bfb81705d",
      "new_mode": 33188,
      "new_path": "tests/pypi/whl_target_platforms/whl_target_platforms_tests.bzl",
      "score": 97
    },
    {
      "type": "rename",
      "old_id": "c9c2106a12efa666a88fd9073c9e47cf3864573c",
      "old_mode": 33188,
      "old_path": "tests/private/text_util/BUILD.bazel",
      "new_id": "c9c2106a12efa666a88fd9073c9e47cf3864573c",
      "new_mode": 33188,
      "new_path": "tests/text_util/BUILD.bazel",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "14967a9eabf189bca1ad042fbe8c9a9ddd48dd14",
      "old_mode": 33188,
      "old_path": "tests/private/text_util/render_tests.bzl",
      "new_id": "14967a9eabf189bca1ad042fbe8c9a9ddd48dd14",
      "new_mode": 33188,
      "new_path": "tests/text_util/render_tests.bzl",
      "score": 100
    }
  ]
}
