)]}'
{
  "commit": "7f6ae57f1662f7b1f29a788c96012a7d9208973a",
  "tree": "3980f7efe08e35d7a6fb7b3a3aeccd8a58b9427d",
  "parents": [
    "2116357ce529f6b638af568ac44d5dbc3becb5e8"
  ],
  "author": {
    "name": "Graham Sanderson",
    "email": "graham.sanderson@raspberrypi.com",
    "time": "Wed Aug 12 19:35:10 2026 -0500"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Wed Aug 12 19:35:10 2026 -0500"
  },
  "message": "Extract configs speedup (#3117)\n\n* don\u0027t scan CMake build trees in the config/build-define extractors\n\nAll three extractors walk the whole repo from the root (CI passes \".\"), with no\npruning, so a source tree containing CMake build directories rescans generated\ncopies of the very files being scanned. On a tree with 59 configured build\ndirectories this took extract_build_defines.py from 1.4s to 76s.\n\nSkip any directory containing CMakeCache.txt. Output is unchanged.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n\n* don\u0027t scan lib/ in the config/build-define extractors\n\nlib/ contains only third-party submodules (btstack, cyw43-driver, lwip, mbedtls,\ntinyusb), none of which use the PICO_CONFIG/PICO_BUILD_DEFINE/PICO_CMAKE_CONFIG\ncomment markers, but they account for 6445 of the 8011 .c/.h/.S files\nextract_configs.py was reading. Output is unchanged.\n\nThe check is anchored on the scanned root, so it skips only the top-level lib/;\na nested one would still be scanned.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n\n---------\n\nCo-authored-by: Claude Opus 5 \u003cnoreply@anthropic.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d80ab3670b9633a13528ae7bca74736abfb6fb50",
      "old_mode": 33261,
      "old_path": "tools/extract_build_defines.py",
      "new_id": "0693d712a9cd344e31fba043ba18d464b4b260d4",
      "new_mode": 33261,
      "new_path": "tools/extract_build_defines.py"
    },
    {
      "type": "modify",
      "old_id": "bf86527208cb93c209bef45fdca97e1d6162e079",
      "old_mode": 33261,
      "old_path": "tools/extract_cmake_configs.py",
      "new_id": "41b70ec10ff768c1190d9f4a114e7c51ac0099f5",
      "new_mode": 33261,
      "new_path": "tools/extract_cmake_configs.py"
    },
    {
      "type": "modify",
      "old_id": "a1e78b13ba1a4fe20d1c077f06a8635230e1907d",
      "old_mode": 33261,
      "old_path": "tools/extract_configs.py",
      "new_id": "1bd5b2ca9b8d022300f8c6e8316c9fc62b438fa7",
      "new_mode": 33261,
      "new_path": "tools/extract_configs.py"
    }
  ]
}
