)]}'
{
  "commit": "bd42ad2becc8b890424612ae91d652a3b9bb82e3",
  "tree": "ce3fd829367627ed4d85c3b001a42fdb193fa0b0",
  "parents": [
    "b1546b6f2bd6806c5a941c81b6a1baca33c34549"
  ],
  "author": {
    "name": "William Smith",
    "email": "87392567+william-smith-skydio@users.noreply.github.com",
    "time": "Fri Nov 04 15:20:51 2022 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Fri Nov 04 15:20:51 2022 -0700"
  },
  "message": "Support annotations on pip packages with extras. (#865)\n\n* Support annotations on pip packages with extras.\r\n\r\nE.g., the following requirement:\r\n\r\n```\r\nrequests[security]\u003e\u003d2.8.1\r\n```\r\n\r\nThis is handled correctly by all of the other plumbing, but trying\r\nto add an annotation to `requests` will fail. This is because\r\nannotations have separate logic for parsing requirements in the\r\ngenerated .bzl file. It would previously turn the requirement into\r\n`requests[security]` rather than just `requests`.\r\n\r\n* Add test verifying that annotations work for packages with extras.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "33199b07aaa256b85c751f9ed3d8d83b49a996ba",
      "old_mode": 33188,
      "old_path": "examples/pip_parse_vendored/requirements.bzl",
      "new_id": "6f1fbd0b75d8026bd4772b9ecf787355e1465453",
      "new_mode": 33188,
      "new_path": "examples/pip_parse_vendored/requirements.bzl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a6ef824c1f832ac2d158b227e5d42e825af3071a",
      "new_mode": 33188,
      "new_path": "examples/pip_repository_annotations/.gitignore"
    },
    {
      "type": "modify",
      "old_id": "4fd124e6c7005f4ab12aa19008d3b49c837ee069",
      "old_mode": 33188,
      "old_path": "examples/pip_repository_annotations/BUILD",
      "new_id": "84089f77d09cb7e27893d332e87f569bf2dc8fcd",
      "new_mode": 33188,
      "new_path": "examples/pip_repository_annotations/BUILD"
    },
    {
      "type": "modify",
      "old_id": "aeea84207c884e7f64fb1ec26106a848e7d657de",
      "old_mode": 33188,
      "old_path": "examples/pip_repository_annotations/WORKSPACE",
      "new_id": "8fd998b7ae8a5007f4ab8fc6f7a0419c015630a8",
      "new_mode": 33188,
      "new_path": "examples/pip_repository_annotations/WORKSPACE"
    },
    {
      "type": "modify",
      "old_id": "e78880ae7284f5df5a03f36b8ce370279146ae84",
      "old_mode": 33188,
      "old_path": "examples/pip_repository_annotations/pip_repository_annotations_test.py",
      "new_id": "d53b9bccaace9d409aa038a85a97eb62a44578f4",
      "new_mode": 33188,
      "new_path": "examples/pip_repository_annotations/pip_repository_annotations_test.py"
    },
    {
      "type": "modify",
      "old_id": "a955311f634a3e05f653affef0ff10b13e92256c",
      "old_mode": 33188,
      "old_path": "examples/pip_repository_annotations/requirements.in",
      "new_id": "fd3f75c8887d0a4666a0d3c375f6c369f838be70",
      "new_mode": 33188,
      "new_path": "examples/pip_repository_annotations/requirements.in"
    },
    {
      "type": "modify",
      "old_id": "a2f161392ae5bf28d18319ed4459b08965137da9",
      "old_mode": 33188,
      "old_path": "examples/pip_repository_annotations/requirements.txt",
      "new_id": "44dcbdfccfe9eafdabe75dc5b0f705708098d479",
      "new_mode": 33188,
      "new_path": "examples/pip_repository_annotations/requirements.txt"
    },
    {
      "type": "modify",
      "old_id": "d0abcac89162f2374a929cdf7ed015a00ee91cb2",
      "old_mode": 33188,
      "old_path": "python/pip_install/extract_wheels/parse_requirements_to_bzl.py",
      "new_id": "30071aeaacba2e87ebe77eb9bbdc68c719d21bb4",
      "new_mode": 33188,
      "new_path": "python/pip_install/extract_wheels/parse_requirements_to_bzl.py"
    }
  ]
}
