)]}'
{
  "commit": "85e23b16b5ff609df55f7ab70da90fddf381a194",
  "tree": "b9f7b034f7c5ead03574e56b659b14949bfc15d7",
  "parents": [
    "325bf328f0cb452dde210c8f7009448632d218f3"
  ],
  "author": {
    "name": "Omar Ismail",
    "email": "omarismail@google.com",
    "time": "Fri Jul 03 10:29:15 2026 +0000"
  },
  "committer": {
    "name": "hfmehmed",
    "email": "118199697+hfmehmed@users.noreply.github.com",
    "time": "Mon Jul 06 13:29:23 2026 +0100"
  },
  "message": "Fix configuration cache invalidation in klib cross-compilation check\n\nKotlinNativeCompilation.crossCompilationSupported resolves the crossCompilationMetadata JSONs exported by project dependencies and probes their existence. Capturing it in onlyIf makes the configuration cache evaluate it at store time, before the exporting tasks have run. When the build subsequently creates these files, the next build discards the cache entry with: \"configuration cache cannot be reused because the file system entry ... has been created\".\n\nTo fix this, we mirror KGP\u0027s own compileKotlin\u003cTarget\u003e task behavior:\n\n* Keep the target-level condition (cross-compilation property enabled and no cinterops) in a stored provider\n* Declare the metadata JSONs as task inputs so that the exporting tasks run first.\n* Read and parse these metadata files in onlyIf at execution time.\n\nTESTED: Update the regression test (testNativeConfigurationCacheReuse) which could not catch this bug previously. The old test used a host-supported target that never took the cross-compilation target. The updated test targets iosArm64 to force the cross-compilation path, and builds the iosArm64 klib and asserts configuration cache reuse.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "6280e72bce7ba979469fef1b8b4530abf1e5aede",
      "old_mode": 33188,
      "old_path": "gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/KspAATask.kt",
      "new_id": "6c0238396bc01ab7e9912244a831482f4d5629eb",
      "new_mode": 33188,
      "new_path": "gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/KspAATask.kt"
    },
    {
      "type": "modify",
      "old_id": "0a31825e3d16a2fe0090f8e8f6d679dfcc4267cb",
      "old_mode": 33188,
      "old_path": "integration-tests/src/test/kotlin/com/google/devtools/ksp/test/primary/KMPImplementedIT.kt",
      "new_id": "056837c330a957794d44f46169a33dbae23a04b8",
      "new_mode": 33188,
      "new_path": "integration-tests/src/test/kotlin/com/google/devtools/ksp/test/primary/KMPImplementedIT.kt"
    }
  ]
}
