)]}'
{
  "commit": "94677401bc56ed5d756f50b441a6a5c7f735a6d4",
  "tree": "a2bfa9247a230866a489d907b36d41a68c569772",
  "parents": [
    "7b222cfdb4e59b9fd2a609e1fbb233e94fdcde7c"
  ],
  "author": {
    "name": "Jon Brandvein",
    "email": "brandjon@google.com",
    "time": "Fri Nov 15 13:34:49 2019 -0500"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Fri Nov 15 13:34:49 2019 -0500"
  },
  "message": "Add pip3_import (#256)\n\nThis adds `pip3_import` as a wrapper around `pip_import` that sets `python_interpreter` to `\"python3\"`. This is important for requesting the Python 3 version of a package on systems where the `\"python\"` command is Python 2 (which is most of them).\r\n\r\nWe decline to add an analogous `pip2_import` wrapper at this time, because the command `\"python2\"` does not exist on all platforms by default (e.g. macOS).\r\n\r\n`piptool.py` is updated to prefix the names of the wheel repos (an implementation\r\ndetail of rules_python) with the name given to `pip_import`. This is needed to\r\navoid shadowing wheel repos when the same wheel name is used by separate\r\n`pip_import` invocations -- in particular when the same wheel is used for both\r\nPY2 and PY3. (Thanks to @joshclimacell for pointing this detail out in\r\nhis prototype 90a70d5a550a01646966ce61156e6f83f02b4b73.)\r\n\r\nRegenerated the .par files and docs.\r\n\r\nAlso updated the README to better explain the structure of the packaging rules. This includes mentioning `pip3_import`, concerns around versioning / hermeticity, and not depending on the wheel repo names (use `requirement()` instead).",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ccb80d362bbb671db07b1064fbbecdc714213bf1",
      "old_mode": 33188,
      "old_path": "README.md",
      "new_id": "ae63f0f81db01e15a789e5509de7451c23a17d82",
      "new_mode": 33188,
      "new_path": "README.md"
    },
    {
      "type": "modify",
      "old_id": "54aa47656277fb4a8d9ce6f434110d23f104adf3",
      "old_mode": 33261,
      "old_path": "docs/pip.md",
      "new_id": "037bdfa90baf2e17cad437b1a8aa34923fd1bb84",
      "new_mode": 33261,
      "new_path": "docs/pip.md"
    },
    {
      "type": "modify",
      "old_id": "ac78bac134d3028e9bd925810161df4dc7ea1719",
      "old_mode": 33188,
      "old_path": "packaging/piptool.py",
      "new_id": "766a6742fd9eb5c6a7c4b529540abe16e60653ba",
      "new_mode": 33188,
      "new_path": "packaging/piptool.py"
    },
    {
      "type": "modify",
      "old_id": "63a6d62b8f2145895be1ed8c90e2ddc22a83ffb7",
      "old_mode": 33188,
      "old_path": "packaging/whl.py",
      "new_id": "c140a13a2f685d62ce0ea8f6e882c2d9cbf25e37",
      "new_mode": 33188,
      "new_path": "packaging/whl.py"
    },
    {
      "type": "modify",
      "old_id": "2af8b9b3dfaf9bc760c38de9c57711043bcddb43",
      "old_mode": 33188,
      "old_path": "packaging/whl_test.py",
      "new_id": "1a29f5be14927fa046eb4efb1e443bf32864b743",
      "new_mode": 33188,
      "new_path": "packaging/whl_test.py"
    },
    {
      "type": "modify",
      "old_id": "231c723394fe574a05471cca34627d97debc9439",
      "old_mode": 33188,
      "old_path": "python/pip.bzl",
      "new_id": "37da2a2cac569e31dd2eb5cda5589a6b080ead49",
      "new_mode": 33188,
      "new_path": "python/pip.bzl"
    },
    {
      "type": "modify",
      "old_id": "d5dce0ca07a9de6656597292368e006e4317cc69",
      "old_mode": 33261,
      "old_path": "tools/piptool.par",
      "new_id": "57ef98d14edfea0ef26c6693512d4af12f5442a3",
      "new_mode": 33261,
      "new_path": "tools/piptool.par"
    },
    {
      "type": "modify",
      "old_id": "c7c0212a1bee328f26424012aede134e43d8fc3b",
      "old_mode": 33261,
      "old_path": "tools/whltool.par",
      "new_id": "964963f3ba84d9babddeaf1891db1c5904fe9095",
      "new_mode": 33261,
      "new_path": "tools/whltool.par"
    }
  ]
}
