)]}'
{
  "commit": "c6e6381723eac2b19cb9c6acedfca2489c008602",
  "tree": "1ced38bd406d630c0a0b8ab34a03c6e128a5d2a0",
  "parents": [
    "60d0477cfc694d360ff5b9d36ab21d8ad11d2349"
  ],
  "author": {
    "name": "Alex Eagle",
    "email": "alex.eagle@robinhood.com",
    "time": "Sun Sep 20 07:40:22 2020 -0700"
  },
  "committer": {
    "name": "Alex Eagle",
    "email": "eagle@post.harvard.edu",
    "time": "Wed Sep 30 06:50:21 2020 -0700"
  },
  "message": "move rules_python_external out of experimental\n\n- mv experimental/rules_python_external -\u003e python/pip_install\n- mv examples/rules_python_external -\u003e examples/pip_install\n\nThis promotes rules_python_external as a public API in rules_python.\nIn a follow-up PR we\u0027ll update the documentation to indicate this and instruct users how to switch.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ca4af764603bff970223cd1cc27b36d9819d9523",
      "old_mode": 33188,
      "old_path": ".bazelrc",
      "new_id": "92711d83030302cc58b3c0782e42734ecc212099",
      "new_mode": 33188,
      "new_path": ".bazelrc"
    },
    {
      "type": "modify",
      "old_id": "d3487d23be0b3f4a7313c6d0a173743ba0d5043d",
      "old_mode": 33188,
      "old_path": "BUILD",
      "new_id": "8458bc7c8ded396152d580b3eebc1746a5b2351d",
      "new_mode": 33188,
      "new_path": "BUILD"
    },
    {
      "type": "modify",
      "old_id": "b84e2505a1b47679288eec63fa46ba0f29138779",
      "old_mode": 33188,
      "old_path": "docs/BUILD",
      "new_id": "4da9d80e0843b3ab425bed835d340585b11232b6",
      "new_mode": 33188,
      "new_path": "docs/BUILD"
    },
    {
      "type": "modify",
      "old_id": "2d9bdaa25018e690cb57e9acdf0e8ff5579d2ee9",
      "old_mode": 33188,
      "old_path": "examples/BUILD",
      "new_id": "92d899dce1bc6367e9f862f35d3ed0dc8c3b3ad4",
      "new_mode": 33188,
      "new_path": "examples/BUILD"
    },
    {
      "type": "rename",
      "old_id": "090705251641e5d7b6b3f94d4fec3206ae9310b8",
      "old_mode": 33188,
      "old_path": "examples/rules_python_external/BUILD",
      "new_id": "090705251641e5d7b6b3f94d4fec3206ae9310b8",
      "new_mode": 33188,
      "new_path": "examples/pip_install/BUILD",
      "score": 100
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "76577870f878002de7236e6f3ea8031c0e1194f7",
      "new_mode": 33188,
      "new_path": "examples/pip_install/README.md"
    },
    {
      "type": "rename",
      "old_id": "81dcd9be8ceb39aa7a6f8ea1bd3585b0761137a0",
      "old_mode": 33188,
      "old_path": "examples/rules_python_external/WORKSPACE",
      "new_id": "c492d1964c89ce1402c079f58e76a4634cf1dd63",
      "new_mode": 33188,
      "new_path": "examples/pip_install/WORKSPACE",
      "score": 96
    },
    {
      "type": "rename",
      "old_id": "fdb3c65b028f5113d9c41e09038d41044dcffce5",
      "old_mode": 33188,
      "old_path": "examples/rules_python_external/main.py",
      "new_id": "fdb3c65b028f5113d9c41e09038d41044dcffce5",
      "new_mode": 33188,
      "new_path": "examples/pip_install/main.py",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "cbc55425822f7b16fb1dad063eb180390977b258",
      "old_mode": 33188,
      "old_path": "examples/rules_python_external/requirements.txt",
      "new_id": "cbc55425822f7b16fb1dad063eb180390977b258",
      "new_mode": 33188,
      "new_path": "examples/pip_install/requirements.txt",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "0b3b3335779a7676a4358955e188f48037555e2d",
      "old_mode": 33188,
      "old_path": "examples/rules_python_external/test.py",
      "new_id": "0b3b3335779a7676a4358955e188f48037555e2d",
      "new_mode": 33188,
      "new_path": "examples/pip_install/test.py",
      "score": 100
    },
    {
      "type": "delete",
      "old_id": "b432f0b09eb20d477fe2343afa3d58f699457e23",
      "old_mode": 33188,
      "old_path": "examples/rules_python_external/README.md",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "657c9565d944009dec0310648994d9c7d182d90a",
      "old_mode": 33188,
      "old_path": "experimental/rules_python_external/BUILD",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "f780b0d298cf7df1da9ea076f56f5a4fa43432e1",
      "old_mode": 33188,
      "old_path": "experimental/rules_python_external/extract_wheels/BUILD",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "6aed7cde2fcd1c94d8f92bd76d9579e848cf9655",
      "old_mode": 33188,
      "old_path": "experimental/rules_python_external/extract_wheels/__main__.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "646b86ce3b4aa6abfdf22f554e8fa8af113a78c3",
      "old_mode": 33188,
      "old_path": "internal_setup.bzl",
      "new_id": "86099154859e6408a812dfdf31f887673e1b3ccf",
      "new_mode": 33188,
      "new_path": "internal_setup.bzl"
    },
    {
      "type": "modify",
      "old_id": "e6c8f632f26438687483e7a159ca575ad7479cc4",
      "old_mode": 33188,
      "old_path": "python/pip.bzl",
      "new_id": "bbaca941d1fb138a1d12713f5bcb0fd5feb00212",
      "new_mode": 33188,
      "new_path": "python/pip.bzl"
    },
    {
      "type": "rename",
      "old_id": "74570cb0c168e7784c95009789a9faa223a7fb06",
      "old_mode": 33188,
      "old_path": "experimental/rules_python_external/.gitignore",
      "new_id": "74570cb0c168e7784c95009789a9faa223a7fb06",
      "new_mode": 33188,
      "new_path": "python/pip_install/.gitignore",
      "score": 100
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b37170eb536fedd7dbd88622af5185ab93e2deb9",
      "new_mode": 33188,
      "new_path": "python/pip_install/BUILD"
    },
    {
      "type": "rename",
      "old_id": "c21dda017fdec6a30e3b445ec4939fab433d0d15",
      "old_mode": 33188,
      "old_path": "experimental/rules_python_external/README.md",
      "new_id": "c21dda017fdec6a30e3b445ec4939fab433d0d15",
      "new_mode": 33188,
      "new_path": "python/pip_install/README.md",
      "score": 100
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "92a0c7a9d9abb00c02c91eda527e35467a5f70ab",
      "new_mode": 33188,
      "new_path": "python/pip_install/extract_wheels/BUILD"
    },
    {
      "type": "rename",
      "old_id": "79f87e5bd26d3fd2e53fbdeb4c68d9bcab56dc76",
      "old_mode": 33188,
      "old_path": "experimental/rules_python_external/extract_wheels/__init__.py",
      "new_id": "879b6766b75ffec1caae5b2360fd79ec78b6e29d",
      "new_mode": 33188,
      "new_path": "python/pip_install/extract_wheels/__init__.py",
      "score": 97
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "40b690e2fb9d6a9877d3b7013c946ca99f40df26",
      "new_mode": 33188,
      "new_path": "python/pip_install/extract_wheels/__main__.py"
    },
    {
      "type": "rename",
      "old_id": "c78c51701f9d627b31bf67686e90ab34b6c27291",
      "old_mode": 33188,
      "old_path": "experimental/rules_python_external/extract_wheels/lib/BUILD",
      "new_id": "001e333133997ba5826c298e1acf4b319fe9725f",
      "new_mode": 33188,
      "new_path": "python/pip_install/extract_wheels/lib/BUILD",
      "score": 76
    },
    {
      "type": "rename",
      "old_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "old_mode": 33188,
      "old_path": "experimental/rules_python_external/extract_wheels/lib/__init__.py",
      "new_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "new_mode": 33188,
      "new_path": "python/pip_install/extract_wheels/lib/__init__.py",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "fb92c0a03b10b5875c916f4570340e081437af8c",
      "old_mode": 33188,
      "old_path": "experimental/rules_python_external/extract_wheels/lib/bazel.py",
      "new_id": "978f3a975bb0f32b31343f3a6098ddefdb058d97",
      "new_mode": 33188,
      "new_path": "python/pip_install/extract_wheels/lib/bazel.py",
      "score": 97
    },
    {
      "type": "rename",
      "old_id": "8f7e57fdbae95410fa144e7fdb8c94db6854d399",
      "old_mode": 33188,
      "old_path": "experimental/rules_python_external/extract_wheels/lib/namespace_pkgs.py",
      "new_id": "82804c569a0863576cbe989598eb5e1f8b983833",
      "new_mode": 33188,
      "new_path": "python/pip_install/extract_wheels/lib/namespace_pkgs.py",
      "score": 96
    },
    {
      "type": "rename",
      "old_id": "f1b299ebec2619b9536017f89e57e8b20e2ceae2",
      "old_mode": 33188,
      "old_path": "experimental/rules_python_external/extract_wheels/lib/namespace_pkgs_test.py",
      "new_id": "5eec5c31991c639e0399af8311a7451371eab435",
      "new_mode": 33188,
      "new_path": "python/pip_install/extract_wheels/lib/namespace_pkgs_test.py",
      "score": 95
    },
    {
      "type": "rename",
      "old_id": "830ce70547f27b73ba038631b5e4fcdb54041815",
      "old_mode": 33188,
      "old_path": "experimental/rules_python_external/extract_wheels/lib/purelib.py",
      "new_id": "99f62993170acf6a23a4e8b7a8ebe193b14f38e8",
      "new_mode": 33188,
      "new_path": "python/pip_install/extract_wheels/lib/purelib.py",
      "score": 96
    },
    {
      "type": "rename",
      "old_id": "e246379bcc48523e3e1cca2b5510472fd80ddd72",
      "old_mode": 33188,
      "old_path": "experimental/rules_python_external/extract_wheels/lib/requirements.py",
      "new_id": "e246379bcc48523e3e1cca2b5510472fd80ddd72",
      "new_mode": 33188,
      "new_path": "python/pip_install/extract_wheels/lib/requirements.py",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "c06297ab57b0c6ffed3fa6d3b7413b9d7f7a73e1",
      "old_mode": 33188,
      "old_path": "experimental/rules_python_external/extract_wheels/lib/requirements_test.py",
      "new_id": "ba7ee13a6934db3fbdda61fa4439dfcf004de1ce",
      "new_mode": 33188,
      "new_path": "python/pip_install/extract_wheels/lib/requirements_test.py",
      "score": 92
    },
    {
      "type": "rename",
      "old_id": "c13f4e8621a983c50afdd778b5c40abb3aafb123",
      "old_mode": 33188,
      "old_path": "experimental/rules_python_external/extract_wheels/lib/wheel.py",
      "new_id": "c13f4e8621a983c50afdd778b5c40abb3aafb123",
      "new_mode": 33188,
      "new_path": "python/pip_install/extract_wheels/lib/wheel.py",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "6f894e6bbf62d7ca3dccd4f9df4182085e5f1c33",
      "old_mode": 33188,
      "old_path": "experimental/rules_python_external/defs.bzl",
      "new_id": "b2cb0a84463f8288c8eaf022414452eb8857dc85",
      "new_mode": 33188,
      "new_path": "python/pip_install/pip_repository.bzl",
      "score": 77
    },
    {
      "type": "rename",
      "old_id": "00dc9007be58cccab803ae97b713170817023537",
      "old_mode": 33188,
      "old_path": "experimental/rules_python_external/repositories.bzl",
      "new_id": "df6367484f68ae4f64eb4afbf05f2b8f2a5c6531",
      "new_mode": 33188,
      "new_path": "python/pip_install/repositories.bzl",
      "score": 92
    }
  ]
}
