)]}'
{
  "commit": "e923f9e86c29dde355ffbef80420e5de843a79e7",
  "tree": "4b5bab794ed46b1b85bfe46544f704029bf39256",
  "parents": [
    "0d6d8f303a5d8cbd1f0a94984395725eb5642473"
  ],
  "author": {
    "name": "Cal Jacobson",
    "email": "cj81499@users.noreply.github.com",
    "time": "Thu Aug 15 15:36:51 2024 -0400"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Thu Aug 15 19:36:51 2024 +0000"
  },
  "message": "feat: update `compile_pip_requirements` to support multiple input files (#1067)\n\n`pip-compile` can compile multiple input files into a single output\nfile, but `rules_python`\u0027s `compile_pip_requirements` doesn\u0027t currently\nsupport this.\n\nWith this change, the `requirements_in` argument to\n`compile_pip_requirements` can now accept a list of strings (in addition\nto the previously accepted argument types).\n\nIn order to support a variable number of input files, my coworker\n(@lpulley) and I updated `dependency_resolver.py` to use the `click` CLI\nlibrary. We felt this was acceptable since `pip-compile` already\nrequires `click` to run, so we\u0027re not adding a new dependency.\n\nWe also made changes to the script to avoid mutating `sys.argv`, instead\nopting to build a new list (`argv`) from scratch that\u0027ll be passed to\nthe `pip-compile` CLI. While subjective, I feel this improves\nreadability, since it\u0027s not immediately obvious what\u0027s in `sys.argv`,\nbut it\u0027s clear that `argv` begins empty, and is added to over the course\nof the program\u0027s execution.\n\n---------\n\nCo-authored-by: Logan Pulley \u003clpulley@ocient.com\u003e\nCo-authored-by: Ignas Anikevicius \u003c240938+aignas@users.noreply.github.com\u003e\nCo-authored-by: Richard Levasseur \u003crlevasseur@google.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "8d52bace116747c49d3b66bfced2b7853c9bd3b6",
      "old_mode": 33188,
      "old_path": "CHANGELOG.md",
      "new_id": "23d910ce3df72f86c954b82288f98e0361da5c5f",
      "new_mode": 33188,
      "new_path": "CHANGELOG.md"
    },
    {
      "type": "modify",
      "old_id": "afe5076b4f8ad9ec71db4bd54810992f02ebfbe8",
      "old_mode": 33188,
      "old_path": "python/private/pypi/dependency_resolver/dependency_resolver.py",
      "new_id": "0ff9b2fb7c23f71940a2c070cf71f9a62e19c121",
      "new_mode": 33188,
      "new_path": "python/private/pypi/dependency_resolver/dependency_resolver.py"
    },
    {
      "type": "modify",
      "old_id": "f284a00f6892d7aac3499195a67df877fbe40aa9",
      "old_mode": 33188,
      "old_path": "python/private/pypi/pip_compile.bzl",
      "new_id": "a6cabf70c12ce7a539214218f4a5b9e73150186c",
      "new_mode": 33188,
      "new_path": "python/private/pypi/pip_compile.bzl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3e3cab83ca279026b589fec91e824d48794c6a44",
      "new_mode": 33188,
      "new_path": "tests/multiple_inputs/BUILD.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7b6bade122ea93d488bbcdae30b9dec754df853a",
      "new_mode": 33188,
      "new_path": "tests/multiple_inputs/README.md"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "91efec38216d70109269e4fdec24c95574683fb3",
      "new_mode": 33188,
      "new_path": "tests/multiple_inputs/a/pyproject.toml"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a461f4ed9856d45042d6741735bce5d0ff5a277b",
      "new_mode": 33188,
      "new_path": "tests/multiple_inputs/b/pyproject.toml"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a036c3f33df032fa3e534d4a584a77b81728af6d",
      "new_mode": 33188,
      "new_path": "tests/multiple_inputs/multiple_inputs.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b8af28ac10f02e4b7e1faefda204136d2c106df6",
      "new_mode": 33188,
      "new_path": "tests/multiple_inputs/multiple_pyproject_toml.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "63edfe9f5315212c7a46042a11a21bcbad6a9ba3",
      "new_mode": 33188,
      "new_path": "tests/multiple_inputs/multiple_requirements_in.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a42590bebea6002a3c81cdbf89443ca1c3578d0b",
      "new_mode": 33188,
      "new_path": "tests/multiple_inputs/requirements_1.in"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "04cb10228e64c1abc94bf078e4d80c55c2e75158",
      "new_mode": 33188,
      "new_path": "tests/multiple_inputs/requirements_2.in"
    }
  ]
}
