)]}'
{
  "commit": "83141452349cd91a4a5867c913b5744a25458fba",
  "tree": "61378763f78f78c600df65074bb24015ded2d528",
  "parents": [
    "723bc465a3dc049f85b03d0a1c6135a95061e6a0"
  ],
  "author": {
    "name": "Henry Schreiner",
    "email": "henryfs@princeton.edu",
    "time": "Thu Aug 06 21:54:53 2026 -0400"
  },
  "committer": {
    "name": "Henry Schreiner",
    "email": "HenrySchreinerIII@gmail.com",
    "time": "Mon Aug 17 00:50:34 2026 -0400"
  },
  "message": "feat(cmake): opt-in precompiled pybind11 static library, starting with pytypes.h\n\nSplit the out-of-line pytypes.h definitions into pytypes-inl.h (fmtlib/\nCLI11 style): inline by default, compiled once into a per-project static\nlibrary when PYBIND11_PRECOMPILED is defined. Infrastructure:\n\n- pybind11_precompile() creates the lazy pybind11::precompiled STATIC\n  library from the installed or in-tree src/ sources; PRECOMPILE /\n  NO_PRECOMPILE keywords on pybind11_add_module and a global\n  PYBIND11_PRECOMPILE switch select it per target.\n- A link-time guard symbol encodes PYBIND11_INTERNALS_VERSION,\n  Py_GIL_DISABLED, PYBIND11_SIMPLE_GIL_MANAGEMENT, and\n  PYBIND11_DETAILED_ERROR_MESSAGES, so a configuration mismatch is one\n  readable undefined symbol.\n- src/ is installed to share/pybind11/src (wheel stays pure);\n  src/pybind11_combined.cpp is a single-TU build for non-CMake use.\n- Tests: PYBIND11_TEST_PRECOMPILE builds the whole suite against the\n  library, two new test_cmake_build cases, packaging file lists, tidy\n  preset, and a 3-platform CI job.\n\nAssisted-by: ClaudeCode:claude-fable-5\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "eb2fcf2b6704b4fa04be80c8911e386c865fd82a",
      "old_mode": 33188,
      "old_path": ".github/workflows/ci.yml",
      "new_id": "a16875a0c497b8ba63241e65bb04bd57763df2c4",
      "new_mode": 33188,
      "new_path": ".github/workflows/ci.yml"
    },
    {
      "type": "modify",
      "old_id": "65f794a49db08cc5ccf399f82ce393b553b0e79e",
      "old_mode": 33188,
      "old_path": "CMakeLists.txt",
      "new_id": "b65529c9b0ed59c4dabfb8d3714757861ddc4ab9",
      "new_mode": 33188,
      "new_path": "CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "42bf3ade9d845e473af956b413e98e2274717b8c",
      "old_mode": 33188,
      "old_path": "CMakePresets.json",
      "new_id": "6e86aa331fbb96c3d8a9a299050d9f7484b28d3b",
      "new_mode": 33188,
      "new_path": "CMakePresets.json"
    },
    {
      "type": "modify",
      "old_id": "09138db364a83888b793dafd7bcc680458e6570f",
      "old_mode": 33188,
      "old_path": "docs/Doxyfile",
      "new_id": "d0c184ccc0610033c5345e276987266a5cb3457c",
      "new_mode": 33188,
      "new_path": "docs/Doxyfile"
    },
    {
      "type": "modify",
      "old_id": "506a451a0ea9a4f2507813655cd04d9034cf8eca",
      "old_mode": 33188,
      "old_path": "include/pybind11/detail/common.h",
      "new_id": "efceeec68915615ee90442abd51e2f8f507d7d42",
      "new_mode": 33188,
      "new_path": "include/pybind11/detail/common.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ce2c80321d4ffd53d5f7a9c17b388884885a36fc",
      "new_mode": 33188,
      "new_path": "include/pybind11/detail/internals-inl.h"
    },
    {
      "type": "modify",
      "old_id": "295485ffab67a697cedfc3b69e66489b5d62d61a",
      "old_mode": 33188,
      "old_path": "include/pybind11/detail/internals.h",
      "new_id": "274e794b5fb6c7f053d28ea8ae109b589c7e0809",
      "new_mode": 33188,
      "new_path": "include/pybind11/detail/internals.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f2eea1070fc12b50232f3bbaec2b2cd799c1eca5",
      "new_mode": 33188,
      "new_path": "include/pybind11/pytypes-inl.h"
    },
    {
      "type": "modify",
      "old_id": "13a6ebaa4d83a68d26fc850fc2e233a8fd766753",
      "old_mode": 33188,
      "old_path": "include/pybind11/pytypes.h",
      "new_id": "71cc31b044d4f45995241665b9997f63e6c2f641",
      "new_mode": 33188,
      "new_path": "include/pybind11/pytypes.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "86a35495072a5ca8ca00da49c640e6740edbcc02",
      "new_mode": 33188,
      "new_path": "src/internals.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "751b0b1dbe1c713db1b854ddefe25b95761df3db",
      "new_mode": 33188,
      "new_path": "src/pybind11_combined.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c0d655da96052457d6441a9cfc9133dbc16d1cde",
      "new_mode": 33188,
      "new_path": "src/pytypes.cpp"
    },
    {
      "type": "modify",
      "old_id": "d6415b98bc65e4d997b8644606412e65b910e1a4",
      "old_mode": 33188,
      "old_path": "tests/CMakeLists.txt",
      "new_id": "c23e7668e17b8d7f5d12c983644ef3a1c40cd410",
      "new_mode": 33188,
      "new_path": "tests/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "164611db34c498ee4e38bbf039e2db45ef883479",
      "old_mode": 33188,
      "old_path": "tests/extra_python_package/test_files.py",
      "new_id": "b02892a738fa9e6c662f60702392c7640bc5cf42",
      "new_mode": 33188,
      "new_path": "tests/extra_python_package/test_files.py"
    },
    {
      "type": "modify",
      "old_id": "a4d25448e5c28d8762a0fb57d6605b1fb451399c",
      "old_mode": 33188,
      "old_path": "tests/test_cmake_build/CMakeLists.txt",
      "new_id": "33a78a6b1d9054ef0174926e54395a692ca86faf",
      "new_mode": 33188,
      "new_path": "tests/test_cmake_build/CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "268aebc0cee1d1e08e0ee41746fd4ca63cfdbbf5",
      "new_mode": 33188,
      "new_path": "tests/test_cmake_build/installed_precompile/CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "02e8c0f089cad80d5b4e52cc4eff364b1955ff7e",
      "new_mode": 33188,
      "new_path": "tests/test_cmake_build/subdirectory_precompile/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "d75fb675205dd0f1425f07841ff2a0fbd52d5509",
      "old_mode": 33188,
      "old_path": "tools/pybind11Common.cmake",
      "new_id": "b59ad2afff0478b7cf8f4f8648bab25b1ec40a7e",
      "new_mode": 33188,
      "new_path": "tools/pybind11Common.cmake"
    },
    {
      "type": "modify",
      "old_id": "f52b2fb891331a251de14c7a90425b2d2356e214",
      "old_mode": 33188,
      "old_path": "tools/pybind11Config.cmake.in",
      "new_id": "abcd43e199b78a32917dba1a073b88b9760d2741",
      "new_mode": 33188,
      "new_path": "tools/pybind11Config.cmake.in"
    },
    {
      "type": "modify",
      "old_id": "b0fe20768d34f384611ffef2eefdd85826a64a51",
      "old_mode": 33188,
      "old_path": "tools/pybind11NewTools.cmake",
      "new_id": "175268d11316bb9263dcd7b48151313761be4516",
      "new_mode": 33188,
      "new_path": "tools/pybind11NewTools.cmake"
    },
    {
      "type": "modify",
      "old_id": "81faee7d8bd854cb9319ac8a8f64789ccf29cc3a",
      "old_mode": 33188,
      "old_path": "tools/pybind11Tools.cmake",
      "new_id": "9a7e5c6217a15b7c56b0524e5c491f84aa3b8ecd",
      "new_mode": 33188,
      "new_path": "tools/pybind11Tools.cmake"
    }
  ]
}
