)]}'
{
  "commit": "705efccecdf8632612dfb538008efa02c862d615",
  "tree": "486b01e98e4f39ca54f19da093df5e13132e3eae",
  "parents": [
    "e0f2c71596dde6303803870c7c0ce13440b57dbe"
  ],
  "author": {
    "name": "Sebastian Berg",
    "email": "sebastian@sipsolutions.net",
    "time": "Tue Mar 26 23:20:11 2024 +0100"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Tue Mar 26 18:20:11 2024 -0400"
  },
  "message": "feat: make `numpy.h` compatible with both NumPy 1.x and 2.x (#5050)\n\n* API: Make `numpy.h` compatible with both NumPy 1.x and 2.x\r\n\r\n* TST: Update numpy dtype flags test to not covert flags to char\r\n\r\n* API: Add `numpy2.h` instead and make `numpy.h` safe\r\n\r\nThis means that users of `numpy.h` cannot be broken, but need to\r\nupdate to `numpy2.h` if they want to compile for NumPy 2.\r\n\r\nUsing Macros simply and didn\u0027t bother to try to remove unnecessary\r\ncode paths.\r\n\r\n* API: Rather than `numpy2.h` use a define for the user.\r\n\r\n* Thread `PYBIND11_NUMPY2_SUPPORT` through things and try to adept test matrix\r\n\r\n* Small fixups (shouldn\u0027t matter)?\r\n\r\n* Fixup.  Does upgrading scipy help?  (it shouldn\u0027t?)\r\n\r\n(Some other small fixup)\r\n\r\n* Use NumPy 2 nightlies for ubuntu-latest job also\r\n\r\n* BUG: Fix numpy.bool check\r\n\r\n* TST: Fix complexwarning\r\n\r\n* BUG: Fix the fact that only the 50 slot is filled with the copy alias\r\n\r\n(There were 3 functions all doing the same, only this slot survived 2.x)\r\n\r\n* TST: One more test tweak\r\n\r\n* TST: Use \"long\" name for long, since it changed on windows\r\n\r\n* TST: Apparently we didn\u0027t always have ulong, so just use `L`\r\n\r\n* TST: Enforce dtype\u003d\u0027l\u0027 for test as default isn\u0027t long anymore on windows\r\n\r\n* Rename macro and invert logic to PYBIND11_NUMPY_1_ONLY\r\n\r\n* PYBIND11_INTERNAL_NUMPY_1_ONLY_DETECTED\r\n\r\n* Test and code comment expansion\r\n\r\n* CI: Use pre-releases of numpy/scipy from pip via explicit version\r\n\r\n* CI: NumPy 2 only available on almalinux (as it is Python \u003e\u003d3.9)\r\n\r\n* MAINT: Match name more exactly and adopt error phrasing\r\n\r\n* MAINT: Pushed early, move helper to be private member\r\n\r\n* fix error message compilation when using NumPy 1.x-only backcompat\r\n\r\n* silence name shadowing warning\r\n\r\n* chore: minor optimization\r\n\r\nSigned-off-by: Henry Schreiner \u003chenryschreineriii@gmail.com\u003e\r\n\r\n---------\r\n\r\nSigned-off-by: Henry Schreiner \u003chenryschreineriii@gmail.com\u003e\r\nCo-authored-by: Ralf W. Grosse-Kunstleve \u003crwgk@google.com\u003e\r\nCo-authored-by: Henry Schreiner \u003chenryschreineriii@gmail.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "cf03eebfdfbb14bdefc340fa2c63f05d9498be6f",
      "old_mode": 33188,
      "old_path": ".github/workflows/ci.yml",
      "new_id": "fd44c1faaf8222d28d16de19b34efe1c15201cc3",
      "new_mode": 33188,
      "new_path": ".github/workflows/ci.yml"
    },
    {
      "type": "modify",
      "old_id": "1e75e99eb9576f973d71853ecf3b19acbecfdee7",
      "old_mode": 33188,
      "old_path": "CMakeLists.txt",
      "new_id": "890440dc17cdad134fd98f21cd1b2325d673aa69",
      "new_mode": 33188,
      "new_path": "CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "8b5beb0ef6cc7e3458130c060537fa16963a5b3d",
      "old_mode": 33188,
      "old_path": "include/pybind11/cast.h",
      "new_id": "3f3f966d081382c66b33dfd911db73b505435793",
      "new_mode": 33188,
      "new_path": "include/pybind11/cast.h"
    },
    {
      "type": "modify",
      "old_id": "83800e960bb7ed6322d0338a59beb6035d3cfb85",
      "old_mode": 33188,
      "old_path": "include/pybind11/detail/common.h",
      "new_id": "9f8e13e24fb459a6142e8e6f3787ecfa4bc48430",
      "new_mode": 33188,
      "new_path": "include/pybind11/detail/common.h"
    },
    {
      "type": "modify",
      "old_id": "8551aa264851e3bd92f63212eae5f4b465e6edd0",
      "old_mode": 33188,
      "old_path": "include/pybind11/numpy.h",
      "new_id": "12a0490e298879709ad26df294db87a19b38c713",
      "new_mode": 33188,
      "new_path": "include/pybind11/numpy.h"
    },
    {
      "type": "modify",
      "old_id": "ad5b47b4b358d5be220de79f954fac5d27b846a8",
      "old_mode": 33188,
      "old_path": "tests/conftest.py",
      "new_id": "8ebc702224599bde0c42a59c615c5fbfbefee7d8",
      "new_mode": 33188,
      "new_path": "tests/conftest.py"
    },
    {
      "type": "modify",
      "old_id": "4578e4b7fa6f3478751c1cf87e0228a631731af1",
      "old_mode": 33188,
      "old_path": "tests/pybind11_tests.cpp",
      "new_id": "81869ebe215eb9d40baa3a4c0b40508e51e5d407",
      "new_mode": 33188,
      "new_path": "tests/pybind11_tests.cpp"
    },
    {
      "type": "modify",
      "old_id": "a486c2f93bc1ca6d253d23c471ccfb5311ae5f9f",
      "old_mode": 33188,
      "old_path": "tests/test_eigen_matrix.py",
      "new_id": "9a2cafc0a6f5f9253d6909f88f62ab72adb4540c",
      "new_mode": 33188,
      "new_path": "tests/test_eigen_matrix.py"
    },
    {
      "type": "modify",
      "old_id": "0697daf3efc38a76d2e4ad8cc5ead4f9c48bf769",
      "old_mode": 33188,
      "old_path": "tests/test_numpy_array.py",
      "new_id": "25ad09ec3c458071cbdab1ee8e74140e2cad8d5a",
      "new_mode": 33188,
      "new_path": "tests/test_numpy_array.py"
    },
    {
      "type": "modify",
      "old_id": "053004a22f0ac8f076c40dee85ef1558aea22d12",
      "old_mode": 33188,
      "old_path": "tests/test_numpy_dtypes.cpp",
      "new_id": "519b69f4002e209fbd1fcb0665f4081f6c5fb383",
      "new_mode": 33188,
      "new_path": "tests/test_numpy_dtypes.cpp"
    },
    {
      "type": "modify",
      "old_id": "d10457eeb2e93565ccf0ffb7b990d5f60bbd34b5",
      "old_mode": 33188,
      "old_path": "tests/test_numpy_dtypes.py",
      "new_id": "e7854df4a6ee29aa66b7f90c5babb0098effba7a",
      "new_mode": 33188,
      "new_path": "tests/test_numpy_dtypes.py"
    }
  ]
}
