)]}'
{
  "commit": "da66a12d7d2dd29c1440c8b47eefa5814701d111",
  "tree": "3ea54e33b16141bd48a488bbca988270f6878475",
  "parents": [
    "da665337ff9121fa150e0af7884432823d3418e7"
  ],
  "author": {
    "name": "Kevin Liu",
    "email": "kevinjqliu@users.noreply.github.com",
    "time": "Mon Jun 29 23:33:23 2026 -0400"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Mon Jun 29 20:33:23 2026 -0700"
  },
  "message": "Prune dependency upper bounds (#3586)\n\nThis PR removes as many upperbounds restrictions as possible from our\ndependencies.\n\nWhy remove unnecessary upper bounds:\n- Makes PyIceberg easier to install alongside applications that already\nuse newer compatible dependency versions.\n- Reduces resolver conflicts and forced downgrades for downstream users,\nwhile keeping caps where there is a real compatibility boundary or known\nbad version.\n\nWe already removed upperbound for pyarrow in #2258\nAnd theres a request to remove upperbound for cachetools in #3214\n\nCloses #3214\n\nChanges:\n- Removes upper bounds that passed local validation, while keeping the\nremaining compatibility caps.\n- Refreshes `uv.lock` with upgraded packages.\n- Updates tests for newer Moto and PyArrow behavior exposed by the\nlockfile refresh.\n\nValidation:\n- `make test PYTHON\u003d3.12` (`3736 passed, 1534 deselected`)",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d2cafbb1774bd2c723630135694abdc6daff0384",
      "old_mode": 33188,
      "old_path": "pyproject.toml",
      "new_id": "e60222fcf9a7165dd8866b71a36be665b3ad18ad",
      "new_mode": 33188,
      "new_path": "pyproject.toml"
    },
    {
      "type": "modify",
      "old_id": "c8da49a87e5e43b5b23759e995673daee473cb63",
      "old_mode": 33188,
      "old_path": "tests/catalog/test_glue.py",
      "new_id": "89646f5719f1506ab8a3e79b9ef2f1c589e23361",
      "new_mode": 33188,
      "new_path": "tests/catalog/test_glue.py"
    },
    {
      "type": "modify",
      "old_id": "2a0c50a92175235c46013f0b1a23b56ac7c62144",
      "old_mode": 33188,
      "old_path": "tests/integration/test_writes/test_writes.py",
      "new_id": "30fdd76ab7892e8b7f992452ee455eb6b92f6a89",
      "new_mode": 33188,
      "new_path": "tests/integration/test_writes/test_writes.py"
    },
    {
      "type": "modify",
      "old_id": "d2951595cae8166a8b82dc203f558e7202c87057",
      "old_mode": 33188,
      "old_path": "uv.lock",
      "new_id": "002111053cce71c8c65ef983b067e7b558b043f4",
      "new_mode": 33188,
      "new_path": "uv.lock"
    }
  ]
}
