)]}'
{
  "commit": "28b98f2d39296651917c9a63acf1bd679ae0a40f",
  "tree": "e3b0902d31bec62eb963e873c7a0f1502ab57318",
  "parents": [
    "7ca651c0e5e087a5d34c742c3c355726a4e9b8bb"
  ],
  "author": {
    "name": "Henry Schreiner",
    "email": "HenrySchreinerIII@gmail.com",
    "time": "Wed Jul 08 23:31:36 2026 -0400"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Wed Jul 08 23:31:36 2026 -0400"
  },
  "message": "ci: update cibuildwheel to v4.1 and pyodide to 314 (#6095)\n\n* ci: update cibuildwheel to v4.1 and pyodide to 314\n\nBump pypa/cibuildwheel from v3.4 to v4.1 across the Pyodide, iOS, and\nAndroid jobs. Move the Pyodide build to cp314-pyodide_wasm32\n(pyodide 314.0.0).\n\nDrop the iOS CIBW_SKIP: cp314-* workaround now that pypa/cibuildwheel#2494\nis resolved.\n\nAssisted-by: ClaudeCode:claude-opus-4.8\n\n* test: xfail array resize on numpy\u003c2.4 + Python 3.14\n\nRemoving the cp314 iOS skip surfaced a pre-existing numpy bug, not a\ncibuildwheel regression: numpy\u003c2.4 has a resize(refcheck\u003dTrue) regression\non Python 3.14 where the reference held by the bound function isn\u0027t\ndetected, so a resize that should raise instead succeeds and the later\nreshape rejects the non-square size. Fixed in numpy\u003e\u003d2.4, but the iOS test\nenvironment has no numpy wheel newer than 2.3.5.post1, so xfail the test\nfor that specific combination.\n\nAssisted-by: ClaudeCode:claude-opus-4.8\n\n* test: link numpy resize aliasing issue and trim comment\n\niOS numpy wheels updated to 2.5.0, so the xfail is a general numpy\u003c2.4 +\nPython 3.14 guard rather than iOS-specific. Reference numpy/numpy#30265.\n\nAssisted-by: ClaudeCode:claude-opus-4.8",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "1fa4c8a4a981793e6e5102a5732dc7e01e7c647f",
      "old_mode": 33188,
      "old_path": ".github/workflows/tests-cibw.yml",
      "new_id": "83107b23da830173a1529b2b3bc6dfeaf0c911d2",
      "new_mode": 33188,
      "new_path": ".github/workflows/tests-cibw.yml"
    },
    {
      "type": "modify",
      "old_id": "93477aa23fb5478fc29abaf7cee127d3f163542a",
      "old_mode": 33188,
      "old_path": "tests/test_numpy_array.py",
      "new_id": "e3f29e92a615fe2772c0b2a6f232b79fb3645cbb",
      "new_mode": 33188,
      "new_path": "tests/test_numpy_array.py"
    }
  ]
}
