)]}'
{
  "log": [
    {
      "commit": "3b730dc5145d0789f06669dacc06b06cb0acffa4",
      "tree": "a01b88a5a222ad734d9dca097ea3cbe5065c1082",
      "parents": [
        "0a6f81a55766db05dacf710b6637f35b7eda4b98"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Fri Jul 10 14:23:30 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Fri Jul 10 14:23:30 2026 -0700"
      },
      "message": "[SPARK-58091] Upgrade `swift-system` to 1.7.4\n\n### What changes were proposed in this pull request?\n\nThis PR aims to upgrade `swift-system` dependency to 1.7.4.\n\n### Why are the changes needed?\n\nTo bring the latest bug fixes.\n\n- https://github.com/apple/swift-system/releases/tag/1.7.4\n- https://github.com/apple/swift-system/releases/tag/1.7.3\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nPass the CIs.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Fable 5\n\nCloses #436 from dongjoon-hyun/SPARK-58091.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "0a6f81a55766db05dacf710b6637f35b7eda4b98",
      "tree": "5512bc898b5e07da41c2d8b154e976081255a91d",
      "parents": [
        "9f4743875f9c8d9ea9b24d0aa7f7e851ec197bd4"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Wed Jul 08 13:58:27 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Wed Jul 08 13:58:27 2026 -0700"
      },
      "message": "[SPARK-58051] Replace release-stripped asserts with runtime validation\n\n### What changes were proposed in this pull request?\n\nReplace release-stripped `assert(...)` calls with `guard`/`throw` validation and add `SparkConnectError.InvalidArrowData`:\n\n- `DataFrame.execute()` — validate Arrow IPC continuation tokens and bounds-check server-supplied sizes before slicing.\n- `DataFrame.show()` — require one row / one column before accessing `rows[0]`.\n- `DataFrameWriter.executeWriteOperation` — reject `path` and `tableName` both set.\n- `SparkSession.Builder.create()` — require `setConf` success.\n\n### Why are the changes needed?\n\n`assert(...)` is compiled out in release builds, so these checks never ran in production. A malformed server response could trap while slicing on unvalidated sizes. `guard`/`throw` makes the checks effective in release and turns traps into recoverable errors.\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nPass the CIs.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Opus 4.8\n\nCloses #435 from dongjoon-hyun/SPARK-58051.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "9f4743875f9c8d9ea9b24d0aa7f7e851ec197bd4",
      "tree": "d5ed40bcc87dfd37c56d62510675828a803bf2b4",
      "parents": [
        "13b02de782bb2dded6dd4849c447e39777dc5314"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Wed Jul 08 13:24:25 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Wed Jul 08 13:24:25 2026 -0700"
      },
      "message": "[SPARK-58048] Add `Swift 6.4` build test CI\n\n### What changes were proposed in this pull request?\n\nThis PR aims to add `Swift 6.4` build test CI.\n\n### Why are the changes needed?\n\nTo be ready for the upcoming Swift 6.4.\n- https://forums.swift.org/t/swift-6-4-release-process/85421\n  - Branch Cut: 2026-05-04\n\n### Does this PR introduce _any_ user-facing change?\n\nNo, this is a test infra change.\n\n### How was this patch tested?\n\nPass the CIs and check the log.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Fable 5\n\nCloses #434 from dongjoon-hyun/SPARK-58048.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "13b02de782bb2dded6dd4849c447e39777dc5314",
      "tree": "cacd4d953b83dd79b34efc2f1b4831b4853a62f1",
      "parents": [
        "e65e87f5deefa35379cadc36be6d4d62d7719862"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Mon Jul 06 11:33:23 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Mon Jul 06 11:33:23 2026 -0700"
      },
      "message": "[SPARK-57967] Upgrade Swift Docker image to 6.3.3\n\n### What changes were proposed in this pull request?\n\nThis PR aims to upgrade the Swift Docker image to 6.3.3.\n\n- `docker run swift:6.3.3` in the CI build and integration test jobs (`build_and_test.yml`)\n- `FROM swift:6.3.3` and the `swift-6.3.3-RELEASE` static Linux SDK URL in the four example Dockerfiles (`app`, `pi`, `spark-sql`, `stream`)\n\n### Why are the changes needed?\n\nTo use the latest Swift 6.3.3 release for building and testing.\n- https://github.com/swiftlang/swift/releases/tag/swift-6.3.3-RELEASE (2026-06-30)\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nPass the CIs.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Fable 5\n\nCloses #433 from dongjoon-hyun/SPARK-57967.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "e65e87f5deefa35379cadc36be6d4d62d7719862",
      "tree": "75573ec2c26de9164e6e468931a1e38b3f29d0a5",
      "parents": [
        "c787a51f5e9722941f978fcba53589c54ccc5d85"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Thu Jul 02 15:39:07 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Thu Jul 02 15:39:07 2026 -0700"
      },
      "message": "[SPARK-57916] Add `Security Best Practices` documentation\n\n### What changes were proposed in this pull request?\n\nThis PR aims to add a `Security Best Practices` documentation page to DocC.\n\n### Why are the changes needed?\n\nTo document the client\u0027s security behavior for production deployments:\n\n- The connection is plaintext unless the connection string contains `use_ssl\u003dtrue`.\n- The `SPARK_CONNECT_AUTHENTICATE_TOKEN` environment variable is recommended over the `token\u003d` parameter.\n- Server certificates are validated against the OS trust store; custom CA, mTLS, and certificate pinning are not supported.\n\n### Does this PR introduce _any_ user-facing change?\n\nNo. This is a documentation-only change.\n\n### How was this patch tested?\n\nManually checked with `markdownlint`.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Fable 5\n\nCloses #432 from dongjoon-hyun/SPARK-57916.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "c787a51f5e9722941f978fcba53589c54ccc5d85",
      "tree": "811e90716e9fe0566fe1e29d029b115ae5eda31b",
      "parents": [
        "e526d8071b79df3e94907d26508abe64a03abccf"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Thu Jul 02 15:35:26 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Thu Jul 02 15:35:26 2026 -0700"
      },
      "message": "[SPARK-57914] Pin `apache/skywalking-eyes` to `v0.8.0` commit hash\n\n### What changes were proposed in this pull request?\n\nThis PR aims to pin `apache/skywalking-eyes` GitHub Action to the `v0.8.0` release commit hash instead of the `main` branch.\n\n### Why are the changes needed?\n\nCurrently, the `License Check` job tracks the `main` branch of `apache/skywalking-eyes`, so any upstream change is picked up immediately and may break or alter CI behavior unexpectedly. Pinning to the commit hash of the released `v0.8.0` tag (`61275cc`, `Release Apache SkyWalking-Eyes 0.8.0`) makes the CI reproducible and immutable.\n\n### Does this PR introduce _any_ user-facing change?\n\nNo. This is a CI-only change.\n\n### How was this patch tested?\n\nPass the CIs, especially the `License Check` job.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Fable 5\n\nCloses #431 from dongjoon-hyun/SPARK-57914.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "e526d8071b79df3e94907d26508abe64a03abccf",
      "tree": "7f852c286628cb83f44a8b2860ce559c86e452ef",
      "parents": [
        "fdb2b6d940c2f34f9c3e9b7a5fe5edd7c112d422"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Thu Jul 02 15:34:30 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Thu Jul 02 15:34:30 2026 -0700"
      },
      "message": "[SPARK-57913] Use 4.2.0 RC5 for Spark 4.2 integration tests\n\n### What changes were proposed in this pull request?\n\nThis PR updates the `integration-test-mac-spark42` CI job to use `Apache Spark 4.2.0` RC5. In addition, this PR adds a SHA-512 checksum verification step for the downloaded distribution.\n\n### Why are the changes needed?\n\nTo test against the latest `Apache Spark 4.2.0` RC5.\n- https://dist.apache.org/repos/dist/dev/spark/v4.2.0-rc5-bin/\n\nThe pinned SHA-512 checksum matches the official `spark-4.2.0-bin-hadoop3.tgz.sha512` and guarantees the integrity of the downloaded artifact before it is used in the tests.\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nPass the CIs and check the log.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Opus 4.8\n\nCloses #430 from dongjoon-hyun/SPARK-57913.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "fdb2b6d940c2f34f9c3e9b7a5fe5edd7c112d422",
      "tree": "5756b3c3b3ee15dc481b1f0cb3bec2f1f977c0cd",
      "parents": [
        "7eb801f3beebbb263b941c95cec5f14bf2472bb3"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Thu Jul 02 15:33:32 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Thu Jul 02 15:33:32 2026 -0700"
      },
      "message": "[SPARK-57912] Improve connection string handling\n\n### What changes were proposed in this pull request?\n\nThis PR improves the connection string handling of `SparkConnectClient`.\n\n1. `init(remote:)` throws `SparkConnectError.InvalidArgument` instead of crashing on an invalid URL, a non-`sc` scheme, or a parameter without a value (e.g., `sc://host:15002/;token\u003d`).\n2. Parameter values are split with `maxSplits: 1`, so values containing `\u003d` (e.g., `token\u003dabcd\u003d\u003d`) are no longer truncated.\n3. The `Unknown parameter` warning prints only the key to prevent accidental credential exposure.\n\n### Why are the changes needed?\n\nInvalid connection strings should surface as catchable errors instead of crashes, and credentials should not leak into logs or be silently truncated.\n\n### Does this PR introduce _any_ user-facing change?\n\nYes, only for invalid inputs. Previously the process crashed; now `SparkConnectError.InvalidArgument` is thrown.\n\n### How was this patch tested?\n\nPass the CIs with the newly added test cases.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Fable 5\n\nCloses #429 from dongjoon-hyun/SPARK-57912.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "7eb801f3beebbb263b941c95cec5f14bf2472bb3",
      "tree": "e8356f57a033f2ad27aea4869cbb09b57de615d4",
      "parents": [
        "1996a53fdb479a101d1c4d78ec4da120f8d58701"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Sat Jun 27 22:14:09 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Sat Jun 27 22:14:09 2026 -0700"
      },
      "message": "[SPARK-57734] Use 4.2.0 RC4 for Spark 4.2 integration tests\n\n### What changes were proposed in this pull request?\n\nThis PR updates the `integration-test-mac-spark42` CI job to use `Apache Spark 4.2.0` RC4.\n\n### Why are the changes needed?\n\nTo test against the latest `Apache Spark 4.2.0` RC4.\n- https://dist.apache.org/repos/dist/dev/spark/v4.2.0-rc4-bin/\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nPass the CIs and check the log.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Opus 4.8\n\nCloses #428 from dongjoon-hyun/SPARK-57734.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "1996a53fdb479a101d1c4d78ec4da120f8d58701",
      "tree": "79a5b3dcf6dd97324dcc60c67499f7ca17935fa7",
      "parents": [
        "7cb508386fdec8516a0034592e77bf97d395bafa"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Sat Jun 27 20:38:41 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Sat Jun 27 20:38:41 2026 -0700"
      },
      "message": "[SPARK-57733] Upgrade `gRPC Swift NIO Transport` to 2.9.0\n\n### What changes were proposed in this pull request?\n\nThis PR upgrades the `grpc-swift-nio-transport` dependency to `2.9.0`.\n\n### Why are the changes needed?\n\nTo adopt the latest `grpc-swift-nio-transport` release (`2.9.0`).\n- https://github.com/grpc/grpc-swift-nio-transport/releases/tag/2.9.0\n  - https://github.com/grpc/grpc-swift-nio-transport/pull/182\n  - https://github.com/grpc/grpc-swift-nio-transport/pull/183\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nPass the CIs.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Opus 4.8\n\nThis patch had conflicts when merged, resolved by\nCommitter: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n\nCloses #427 from dongjoon-hyun/SPARK-57733.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "7cb508386fdec8516a0034592e77bf97d395bafa",
      "tree": "63403d07a0d3a267dbe734fb3f94efecbb8a9ab4",
      "parents": [
        "a7b89bf1ea42f0c372dde8eb6acb905a72b9de8f"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Sat Jun 27 20:33:51 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Sat Jun 27 20:33:51 2026 -0700"
      },
      "message": "[SPARK-57732] Upgrade `grpc-swift-2` to 2.4.2\n\n### What changes were proposed in this pull request?\n\nThis PR upgrades the `grpc-swift-2` dependency to `2.4.2`.\n\n### Why are the changes needed?\n\nTo stay current with the latest patch release of `grpc-swift-2`.\n- https://github.com/grpc/grpc-swift-2/releases/tag/2.4.2\n  - https://github.com/grpc/grpc-swift-2/pull/49\n  - https://github.com/grpc/grpc-swift-2/pull/47\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nPass the CIs.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Opus 4.8\n\nThis patch had conflicts when merged, resolved by\nCommitter: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n\nCloses #426 from dongjoon-hyun/SPARK-57732.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "a7b89bf1ea42f0c372dde8eb6acb905a72b9de8f",
      "tree": "ceb3e5f6b81c3e73152517f3417fad2d641ca5c5",
      "parents": [
        "e41476ae2184e1b6764290cc756600b53f475a41"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Sat Jun 27 20:21:55 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Sat Jun 27 20:21:55 2026 -0700"
      },
      "message": "[SPARK-57731] Upgrade `gRPC Swift Protobuf` to 2.4.1\n\n### What changes were proposed in this pull request?\n\nThis PR aims to upgrade `grpc-swift-protobuf` to 2.4.1.\n\n### Why are the changes needed?\n\nTo bring the latest bug fixes and improvements.\n- https://github.com/grpc/grpc-swift-protobuf/releases/tag/2.4.1\n  - https://github.com/grpc/grpc-swift-protobuf/pull/102\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nPass the CIs.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Opus 4.8\n\nCloses #425 from dongjoon-hyun/SPARK-57731.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "e41476ae2184e1b6764290cc756600b53f475a41",
      "tree": "77af0bd2f112afc7bb64cc7ec53e1a0a15c62023",
      "parents": [
        "5de2fe61dccc322e325424c699f21caa7062f188"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Thu Jun 18 14:51:52 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Thu Jun 18 14:51:52 2026 -0700"
      },
      "message": "[SPARK-57542] Support `nearestByJoin` for `DataFrame`\n\n### What changes were proposed in this pull request?\n\nThis PR adds the public `DataFrame.nearestByJoin` API .\n\n### Why are the changes needed?\n\n`NearestByJoin` is a new relation in Apache Spark `4.2.0`. This keeps the Swift\nclient at API parity with PySpark/Spark SQL.\n\n### Does this PR introduce _any_ user-facing change?\n\nNo behavior change because this is a new method.\n\n### How was this patch tested?\n\nPass the CIs with a newly added test case.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Opus 4.8\n\nCloses #424 from dongjoon-hyun/SPARK-57542.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "5de2fe61dccc322e325424c699f21caa7062f188",
      "tree": "c706417c40d48d73a49eb69582e588cb8c8e1c97",
      "parents": [
        "41a6b74c01ce84e6559a8f84ea7c01541e46284f"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Thu Jun 18 14:35:45 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Thu Jun 18 14:35:45 2026 -0700"
      },
      "message": "[SPARK-57541] Use 4.2.0 RC3 for Spark 4.2 integration tests\n\n### What changes were proposed in this pull request?\n\nThis PR updates the `integration-test-mac-spark42` CI job to use `Apache Spark 4.2.0` RC3.\n\n### Why are the changes needed?\n\nTo test against the latest `Apache Spark 4.2.0` RC3.\n- https://dist.apache.org/repos/dist/dev/spark/v4.2.0-rc3-bin/\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nPass the CIs and check the log.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Opus 4.8\n\nCloses #423 from dongjoon-hyun/SPARK-57541.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "41a6b74c01ce84e6559a8f84ea7c01541e46284f",
      "tree": "d10a5b3e1de96ab7976702f6d81c3cf6584a60dd",
      "parents": [
        "f458d5ffcaee2478a90bcd5644931e4efe74fd92"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Thu Jun 18 08:22:16 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Thu Jun 18 08:22:16 2026 -0700"
      },
      "message": "[SPARK-57522] Update `Spark Connect`-generated `Swift` source code with `4.2.0-rc3`\n\n### What changes were proposed in this pull request?\n\nThis PR updates the `Spark Connect`-generated Swift source code by regenerating with `4.2.0-rc3`.\n\n- apache/spark#55446\n- apache/spark#55589\n- apache/spark#55682\n\n### Why are the changes needed?\n\nTo keep the generated Swift source code in sync with Apache Spark `4.2.0-rc3` protobuf definitions.\n\n```\n$ git clone -b v4.2.0-rc3 https://github.com/apache/spark.git\n$ cd spark/sql/connect/common/src/main/protobuf/\n$ protoc --swift_out\u003d. spark/connect/*.proto\n$ protoc --grpc-swift_out\u003d. spark/connect/*.proto\n\n// Remove empty GRPC files\n$ cd spark/connect\n$ grep \u0027This file contained no services\u0027 * | awk -F: \u0027{print $1}\u0027 | xargs rm\n```\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nPass the CIs.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Opus 4.8\n\nCloses #422 from dongjoon-hyun/SPARK-57522.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "f458d5ffcaee2478a90bcd5644931e4efe74fd92",
      "tree": "86b406cf58404feb9590f78bfadc925b1ce5d0cd",
      "parents": [
        "c63d92f28274ec786d1363726e00f4265aac1ae1"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Sat Jun 13 21:08:00 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Sat Jun 13 21:08:00 2026 -0700"
      },
      "message": "[SPARK-57431] Upgrade `Swift System` to 1.7.2\n\n### What changes were proposed in this pull request?\n\nThis PR aims to upgrade `swift-system` to `1.7.2` and add it to the `Requirements` section of `README.md`.\n\n### Why are the changes needed?\n\nTo keep our dependencies up to date with the latest minor release.\n\n- https://github.com/apple/swift-system/releases/tag/1.7.0\n  - https://github.com/apple/swift-system/pull/278\n  - https://github.com/apple/swift-system/pull/253\n- https://github.com/apple/swift-system/releases/tag/1.7.1\n- https://github.com/apple/swift-system/releases/tag/1.7.2\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nPass the CI.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Code (Claude Opus 4.8)\n\nCloses #421 from dongjoon-hyun/SPARK-57431.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "c63d92f28274ec786d1363726e00f4265aac1ae1",
      "tree": "ce1e1c75a46c6033622f1664b047e2cd0c45361c",
      "parents": [
        "6788d8d8b6b3511ce2fa4340e6d1766b23e144ff"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Thu Jun 11 10:05:22 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Thu Jun 11 10:05:22 2026 -0700"
      },
      "message": "[SPARK-57392] Use Apache Spark 4.0.3 in integration tests\n\n### What changes were proposed in this pull request?\n\nThis PR aims to use Apache Spark `4.0.3` instead of `4.0.3 RC1` and `4.0.2` in integration tests.\n\n### Why are the changes needed?\n\nApache Spark 4.0.3 is officially released.\n- https://spark.apache.org/news/spark-4-0-3-released.html\n- https://github.com/apache/spark/releases/tag/v4.0.3\n\n### Does this PR introduce _any_ user-facing change?\n\nNo, this is a test-only change.\n\n### How was this patch tested?\n\nPass the CIs.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Code (Fable 5)\n\nCloses #420 from dongjoon-hyun/SPARK-57392.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "6788d8d8b6b3511ce2fa4340e6d1766b23e144ff",
      "tree": "7e73ec6a18239049301be5ef9170aecf2437ff8e",
      "parents": [
        "53e27ceef0dfff660303c22ec0950088bf23c666"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Thu Jun 11 09:27:39 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Thu Jun 11 09:27:39 2026 -0700"
      },
      "message": "[SPARK-57390] Use `apache/spark:4.0.2-scala` image in `integration-test-ubuntu`\n\n### What changes were proposed in this pull request?\n\nThis PR aims to use `apache/spark:4.0.2-scala` image instead of `apache/spark:4.0.2` in `integration-test-ubuntu` job.\n\n### Why are the changes needed?\n\nThe `-scala` image variant is smaller than the default image because it doesn\u0027t include Python/R. This minimizes the image download overhead in CI.\n\nNote that the other integration test jobs are already using the `-scala` variants, `apache/spark:4.1.2-scala` and `apache/spark:4.2.0-preview5-scala`. This makes `integration-test-ubuntu` consistent with them.\n\n### Does this PR introduce _any_ user-facing change?\n\nNo, this is a test infra change.\n\n### How was this patch tested?\n\nPass the CIs including `integration-test-ubuntu` job.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Code (claude-fable-5)\n\nCloses #419 from dongjoon-hyun/SPARK-57390.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "53e27ceef0dfff660303c22ec0950088bf23c666",
      "tree": "5601aa8d50705641cf0b0ee9f3c4ed0079b4940a",
      "parents": [
        "e7307b6b113e155d60da5a8c907404c430f71f92"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Tue Jun 09 17:38:46 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Tue Jun 09 17:38:46 2026 -0700"
      },
      "message": "[SPARK-57357] Remove `web` example\n\n### What changes were proposed in this pull request?\n\nThis PR aims to remove `web` example.\n\n### Why are the changes needed?\n\nTo simplify the repository.\n\n### Does this PR introduce _any_ user-facing change?\n\nNo behavior change because this is a removal of example.\n\n### How was this patch tested?\n\nManual review.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Code (Claude Opus 4.8)\n\nCloses #418 from dongjoon-hyun/SPARK-57357.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "e7307b6b113e155d60da5a8c907404c430f71f92",
      "tree": "7f4ea18de1b1636aff01076f2f7ee58fcde553dd",
      "parents": [
        "cd4e6207002d85aec0524acf7cf4a2fe34426daa"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Tue Jun 09 09:46:36 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Tue Jun 09 09:46:36 2026 -0700"
      },
      "message": "[SPARK-57347] Remove `spark.sql.geospatial.enabled\u003dtrue` from `integration-test-mac-spark42`\n\n### What changes were proposed in this pull request?\n\nThis PR removes the `-c spark.sql.geospatial.enabled\u003dtrue` configuration from the `start-connect-server.sh` invocation in the `integration-test-mac-spark42` job of `.github/workflows/build_and_test.yml`.\n\n```diff\n- ./start-connect-server.sh -c spark.sql.geospatial.enabled\u003dtrue -c spark.sql.timeType.enabled\u003dtrue\n+ ./start-connect-server.sh -c spark.sql.timeType.enabled\u003dtrue\n```\n\n### Why are the changes needed?\n\nFrom Apache Spark 4.2.0 RC1, geospatial support (`GEOMETRY`/`GEOGRAPHY` types) is enabled by default, so explicitly passing `spark.sql.geospatial.enabled\u003dtrue` is redundant.\n\n- https://github.com/apache/spark/pull/55734\n\n### Does this PR introduce _any_ user-facing change?\n\nNo. This is a CI-only change.\n\n### How was this patch tested?\n\nPass the CI, specifically the `integration-test-mac-spark42` job which runs the full test suite (including the `geography.sql` and `geometry.sql` golden tests) against a Spark 4.2.0 RC1 Connect server.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Code (Claude Opus 4.8)\n\nCloses #417 from dongjoon-hyun/SPARK-57347.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "cd4e6207002d85aec0524acf7cf4a2fe34426daa",
      "tree": "9bc41b9dec53bb63ca5a9765aa1ca72752c183ca",
      "parents": [
        "90fa414397047527f2e8b469ff4cb14945e235c5"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Mon Jun 08 22:52:37 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Mon Jun 08 22:52:37 2026 -0700"
      },
      "message": "[SPARK-57334] Upgrade `gRPC Swift NIO Transport` to 2.8.0\n\n### What changes were proposed in this pull request?\n\nThis PR upgrades the `grpc-swift-nio-transport` dependency to `2.8.0`.\n\n### Why are the changes needed?\n\nTo adopt the latest `grpc-swift-nio-transport` release (`2.8.0`).\n- https://github.com/grpc/grpc-swift-nio-transport/releases/tag/2.8.0\n  - https://github.com/grpc/grpc-swift-nio-transport/pull/175\n  - https://github.com/grpc/grpc-swift-nio-transport/pull/177\n  - https://github.com/grpc/grpc-swift-nio-transport/pull/181\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nPass the CIs.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Code (Claude Opus 4.8)\n\nCloses #416 from dongjoon-hyun/SPARK-57334.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "90fa414397047527f2e8b469ff4cb14945e235c5",
      "tree": "1b10a4ba8529032ce0ceaf1b5f1fe8413830cdbd",
      "parents": [
        "f763844e7ff536635152dee0f20faf33cfad77cd"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Mon Jun 08 20:35:31 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Mon Jun 08 20:35:31 2026 -0700"
      },
      "message": "[SPARK-57333] Use 4.2.0 RC1 for Spark 4.2 integration tests\n\n### What changes were proposed in this pull request?\n\nThis PR updates the `integration-test-mac-spark42` CI job to use `Apache Spark 4.2.0` RC1.\n\n### Why are the changes needed?\n\nTo test against the latest `Apache Spark 4.2.0` RC1.\n- https://dist.apache.org/repos/dist/dev/spark/v4.2.0-rc1-bin/\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nPass the CIs and check the log.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Opus 4.8\n\nCloses #415 from dongjoon-hyun/SPARK-57333.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "f763844e7ff536635152dee0f20faf33cfad77cd",
      "tree": "de6b396117bf25d7d5506b6dbdc0ba561fce9e64",
      "parents": [
        "2abb238ddeac63396b293a591e29a60d03070d8a"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Sun Jun 07 21:13:15 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Sun Jun 07 21:13:15 2026 -0700"
      },
      "message": "[SPARK-57312] Use 4.0.3 RC1 for Spark 4.0 integration tests\n\n### What changes were proposed in this pull request?\n\nThis PR updates the `integration-test-mac` and `integration-test-mac-spark4-iceberg` CI jobs to use `Apache Spark 4.0.3` RC1.\n\n### Why are the changes needed?\n\nTo test against the latest `Apache Spark 4.0.3` RC1.\n- https://dist.apache.org/repos/dist/dev/spark/v4.0.3-rc1-bin/\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nPass the CIs and check the log.\n- https://github.com/dongjoon-hyun/spark-connect-swift/actions/runs/27114872726/job/80019783778\n```\nx spark-4.0.3-bin-hadoop3/\n```\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Opus 4.8\n\nCloses #414 from dongjoon-hyun/SPARK-57312.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "2abb238ddeac63396b293a591e29a60d03070d8a",
      "tree": "19668a66dd41e0727202bfc2a92b919912c71f29",
      "parents": [
        "112f838bcf58c955e57c11fae6e726e849caf213"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Sun Jun 07 18:54:31 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Sun Jun 07 18:54:31 2026 -0700"
      },
      "message": "[SPARK-57311] Check the startup logs to make Iceberg integration tests robust\n\n### What changes were proposed in this pull request?\n\nThis PR adds a readiness wait loop to the `integration-test-mac-spark4-iceberg` and\n`integration-test-mac-spark41-iceberg` jobs. After `./start-connect-server.sh`, the job now\nwaits (up to 60 seconds) until `Spark Connect server started at` appears in\n`/tmp/spark/logs/*.out` before running the tests.\n\n### Why are the changes needed?\n\nThese two jobs pass `--packages org.apache.iceberg:...`, which resolves and downloads the\nIceberg jars at server startup. This creates a large window where the Spark Connect server is\nnot yet listening. Since the Swift client has no connection retry, `swift test` can start before\nthe server is ready and fail immediately, making the jobs flaky. Waiting for the ready log line\nremoves this race.\n\n- https://github.com/apache/spark-connect-swift/actions/runs/26650934447/job/78548793141\n\n### Does this PR introduce _any_ user-facing change?\n\nNo. This is a CI-only change.\n\n### How was this patch tested?\n\nPass the CI (`integration-test-mac-spark4-iceberg` and `integration-test-mac-spark41-iceberg`).\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Code (Claude Opus 4.8)\n\nCloses #413 from dongjoon-hyun/SPARK-57311.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "112f838bcf58c955e57c11fae6e726e849caf213",
      "tree": "deadef315536039fad5d7bdeeff04450de3a34b1",
      "parents": [
        "10a345563547936f2deb4692821c73a8fdbf0df2"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Sun Jun 07 18:51:55 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Sun Jun 07 18:51:55 2026 -0700"
      },
      "message": "[SPARK-57310] Support `stat.freqItems` for `DataFrame`\n\n### What changes were proposed in this pull request?\n\nThis PR aims to support `freqItems` for `DataFrame` by wiring the `StatFreqItems`\nSpark Connect relation through `DataFrameStatFunctions`, exposed via `DataFrame.stat`\nlike PySpark/Scala.\n\n```swift\npublic func freqItems(_ cols: [String], support: Double \u003d 0.01) async throws -\u003e DataFrame\n```\n\nLike `stat.crosstab`, `freqItems` returns a `DataFrame` whose output columns are named\n`\u003ccolumn\u003e_freqItems`. The optional `support` (the minimum frequency for an item to be\nconsidered frequent) defaults to `0.01`, matching PySpark/Scala.\n\n### Why are the changes needed?\n\nTo improve API coverage by mirroring PySpark/Scala `DataFrameStatFunctions`.\n\n### Does this PR introduce _any_ user-facing change?\n\nYes, this PR adds a new API, `DataFrame.stat.freqItems`.\n\n### How was this patch tested?\n\nPass the CIs with a newly added test, `DataFrameStatFunctionsTests.freqItems`.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Code (Claude Opus 4.8)\n\nThis patch had conflicts when merged, resolved by\nCommitter: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n\nCloses #412 from dongjoon-hyun/SPARK-57310.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "10a345563547936f2deb4692821c73a8fdbf0df2",
      "tree": "792eda515d072aa6da3c43abe978035756b4b87d",
      "parents": [
        "d0a7ab491f2ec29d9a0dca40dc00a2157e86766a"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Sun Jun 07 18:47:58 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Sun Jun 07 18:47:58 2026 -0700"
      },
      "message": "[SPARK-57309] Support `stat.sampleBy` for `DataFrame`\n\n### What changes were proposed in this pull request?\n\nThis PR aims to support `sampleBy` for `DataFrame` by wiring the `StatSampleBy`\nSpark Connect relation through `DataFrameStatFunctions`, exposed via `DataFrame.stat`\nlike PySpark/Scala.\n\n```swift\npublic func sampleBy\u003cT: Sendable \u0026 Hashable\u003e(_ col: String, _ fractions: [T: Double], _ seed: Int64) async -\u003e DataFrame\npublic func sampleBy\u003cT: Sendable \u0026 Hashable\u003e(_ col: String, _ fractions: [T: Double]) async -\u003e DataFrame\n```\n\n`sampleBy` returns a stratified sample without replacement based on the fraction\ngiven for each stratum. A stratum that is not specified is treated as having a\nfraction of zero. The seed is optional; a random seed is used when it is omitted.\n\n### Why are the changes needed?\n\nTo improve API coverage by mirroring PySpark/Scala `DataFrameStatFunctions`.\n\n### Does this PR introduce _any_ user-facing change?\n\nYes, this PR adds a new API, `DataFrame.stat.sampleBy`.\n\n### How was this patch tested?\n\nPass the CIs with a new test case, `sampleBy`, in `DataFrameStatFunctionsTests`.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Code (Claude Opus 4.8)\n\nThis patch had conflicts when merged, resolved by\nCommitter: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n\nCloses #411 from dongjoon-hyun/SPARK-57309.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "d0a7ab491f2ec29d9a0dca40dc00a2157e86766a",
      "tree": "dfc368b25fb58caa4e1f2fcd7bb2c7def95d371a",
      "parents": [
        "95774f2d5a5924b0331020e8a8740fac1baa035f"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Sun Jun 07 18:44:44 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Sun Jun 07 18:44:44 2026 -0700"
      },
      "message": "[SPARK-57308] Support `stat.approxQuantile` for `DataFrame`\n\n### What changes were proposed in this pull request?\n\nThis PR aims to support `approxQuantile` for `DataFrame` by wiring the\n`StatApproxQuantile` Spark Connect relation through `DataFrameStatFunctions`,\nexposed via `DataFrame.stat` like PySpark/Scala.\n\n```swift\npublic func approxQuantile(_ col: String, _ probabilities: [Double], _ relativeError: Double) async throws -\u003e [Double]\npublic func approxQuantile(_ cols: [String], _ probabilities: [Double], _ relativeError: Double) async throws -\u003e [[Double]]\n```\n\n### Why are the changes needed?\n\nTo improve API coverage by mirroring PySpark/Scala `DataFrameStatFunctions`.\n\n### Does this PR introduce _any_ user-facing change?\n\nYes, this PR adds a new API, `DataFrame.stat.approxQuantile`.\n\n### How was this patch tested?\n\nPass the CIs with a newly added test in `DataFrameStatFunctionsTests`.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Code (Claude Opus 4.8)\n\nCloses #410 from dongjoon-hyun/SPARK-57308.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "95774f2d5a5924b0331020e8a8740fac1baa035f",
      "tree": "09af459ea11ad91487b1c907393c69cbec965822",
      "parents": [
        "e56c5ca7e1dfa2e801ecec8ee9726ef483810cf5"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Sun Jun 07 15:29:19 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Sun Jun 07 15:29:19 2026 -0700"
      },
      "message": "[SPARK-57307] Support `stat.crosstab` for `DataFrame`\n\n### What changes were proposed in this pull request?\n\nThis PR aims to support `crosstab` for `DataFrame` by wiring the `StatCrosstab`\nSpark Connect relation through `DataFrameStatFunctions`, exposed via\n`DataFrame.stat` like PySpark/Scala.\n\n```swift\npublic func crosstab(_ col1: String, _ col2: String) async throws -\u003e DataFrame\n```\n\nUnlike `stat.cov`/`stat.corr` which return a `Double`, `crosstab` returns a\n`DataFrame` (a contingency table): the first column is named `\u003ccol1\u003e_\u003ccol2\u003e` and\nholds the distinct values of `col1`, while the remaining column names are the\ndistinct values of `col2`.\n\n### Why are the changes needed?\n\nTo improve API coverage by mirroring PySpark/Scala `DataFrameStatFunctions`.\n\n### Does this PR introduce _any_ user-facing change?\n\nYes, this PR adds a new API, `DataFrame.stat.crosstab`.\n\n### How was this patch tested?\n\nPass the CIs.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Code (Claude Opus 4.8)\n\nCloses #409 from dongjoon-hyun/SPARK-57307.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "e56c5ca7e1dfa2e801ecec8ee9726ef483810cf5",
      "tree": "e5536623f30f79503ef5df03f5d4892fba48a918",
      "parents": [
        "e035f3d9cb564d9a7b09b8f70ec08babcb83cb59"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Sun Jun 07 14:11:27 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Sun Jun 07 14:11:27 2026 -0700"
      },
      "message": "[SPARK-57306] Move `DataFrameNaFunctions` tests to new `DataFrameNaFunctionsTests`\n\n### What changes were proposed in this pull request?\n\nThis PR moves the `DataFrameNaFunctions` test cases (`naFill`, `naDrop`, `naReplace`) out of `DataFrameTests.swift` into a new dedicated `DataFrameNaFunctionsTests.swift` file.\n\n### Why are the changes needed?\n\nTo improve test organization. The `na.(fill|drop|replace)` APIs are backed by a separate `DataFrameNaFunctions` source file, so their tests belong in a matching test file. This keeps `DataFrameTests.swift` focused and mirrors the source layout.\n\n### Does this PR introduce _any_ user-facing change?\n\nNo. This is a test-only refactoring with no test logic changes.\n\n### How was this patch tested?\n\nPass the CIs.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Opus 4.8\n\nCloses #408 from dongjoon-hyun/SPARK-57306.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "e035f3d9cb564d9a7b09b8f70ec08babcb83cb59",
      "tree": "db031a39407ca92ef0fc12f642ad23bbc793177b",
      "parents": [
        "9fc11ff80c349430b1371cac82c670fd46f71967"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Sun Jun 07 14:10:10 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Sun Jun 07 14:10:10 2026 -0700"
      },
      "message": "[SPARK-57305] Support `stat.(cov|corr)` for `DataFrame`\n\n### What changes were proposed in this pull request?\n\nThis PR aims to support `cov` and `corr` for `DataFrame` by wiring the\n`StatCov`/`StatCorr` Spark Connect relations through a new\n`DataFrameStatFunctions`, exposed via `DataFrame.stat` like PySpark/Scala.\n\n```swift\npublic func cov(_ col1: String, _ col2: String) async throws -\u003e Double\npublic func corr(_ col1: String, _ col2: String, method: String \u003d \"pearson\") async throws -\u003e Double\n```\n\n### Why are the changes needed?\n\nTo improve API coverage by mirroring PySpark/Scala `DataFrameStatFunctions`.\n\n### Does this PR introduce _any_ user-facing change?\n\nYes, this PR adds new APIs, `DataFrame.stat.cov` and `DataFrame.stat.corr`.\n\n### How was this patch tested?\n\nPass the CIs with a newly added test suite, `DataFrameStatFunctionsTests`.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Code (Claude Opus 4.8)\n\nCloses #407 from dongjoon-hyun/SPARK-57305.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "9fc11ff80c349430b1371cac82c670fd46f71967",
      "tree": "8f4f2b5ae49b208fa94880abd1eff2f492c951ac",
      "parents": [
        "db0806c293a7ea279dc82b6a6843f348b276ad78"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Sun Jun 07 13:25:32 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Sun Jun 07 13:25:32 2026 -0700"
      },
      "message": "[SPARK-57304] Support `na.(fill|drop|replace)` for `DataFrame`\n\n### What changes were proposed in this pull request?\n\nThis PR adds the `DataFrameNaFunctions` API (via `DataFrame.na`), mirroring\nPySpark\u0027s `df.na.fill/drop/replace` and wiring the existing `NAFill`, `NADrop`,\nand `NAReplace` Spark Connect messages into the Swift client.\n\n- `fill`, `drop`, `replace` on `DataFrame.na`\n- `getNAFill`, `getNADrop`, `getNAReplace` plan builders in `SparkConnectClient`\n\n### Why are the changes needed?\n\nTo reach feature parity with PySpark/Spark SQL for handling missing data.\n\n### Does this PR introduce _any_ user-facing change?\n\nYes, this adds new public APIs.\n\n```swift\ntry await df.na.fill(0).show()\ntry await df.na.drop().show()\ntry await df.na.replace(\"s\", [\"a\": \"z\"]).show()\n```\n\n### How was this patch tested?\n\nPass the CI build.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Code (Claude Opus 4.8)\n\nCloses #406 from dongjoon-hyun/SPARK-57304.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "db0806c293a7ea279dc82b6a6843f348b276ad78",
      "tree": "0a24696d39adbdcdd7b034bb46ff648adeed2a92",
      "parents": [
        "0f001a5e75c39c294a945c609aff81fb015e35ee"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Sun Jun 07 11:35:37 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Sun Jun 07 11:35:37 2026 -0700"
      },
      "message": "[SPARK-57302] Support `withColumn/withColumns` for `DataFrame`\n\n### What changes were proposed in this pull request?\n\nThis PR adds `withColumn` and `withColumns` transformations to `DataFrame`, exposing the Spark Connect `WithColumns` relation that was already defined in the generated protobuf but not surfaced in the Swift API.\n\nNew public APIs in `DataFrame+Transformations.swift`:\n\n```swift\npublic func withColumn(_ colName: String, _ expr: String) -\u003e DataFrame\npublic func withColumns(_ colsMap: [String: String]) -\u003e DataFrame\n```\n\n- `withColumn` adds a new column or replaces an existing column with the same name; it delegates to `withColumns` with a single-entry map.\n- The column expression is provided as a SQL expression string and parsed on the server, consistent with the existing `filter(_:)` / `selectExpr(_:)` APIs (this client has no `Column` type).\n- A static plan builder `SparkConnectClient.getWithColumns(_:_:)` constructs the `WithColumns` relation by mapping each `(name, expr)` pair to an `Expression.Alias`, mirroring the sibling `getWithColumnRenamed(_:_:)`.\n- Adds the `WithColumns` type alias in `TypeAliases.swift`, matching the existing `WithColumnsRenamed` alias.\n\n### Why are the changes needed?\n\n`DataFrame.withColumn` / `withColumns` are among the most commonly used PySpark and Spark SQL APIs for deriving or replacing columns from expressions. The Swift client previously supported only column *renaming* (`withColumnRenamed`) and had no way to add or replace a column from a computed expression. This change improves API parity with PySpark/Spark SQL.\n\n### Does this PR introduce _any_ user-facing change?\n\nYes. This adds two new public `DataFrame` APIs.\n\n```swift\nlet df \u003d try await spark.range(1)                    // columns: [id]\ntry await df.withColumn(\"b\", \"id + 1\").show()        // columns: [id, b]\ntry await df.withColumns([\"b\": \"id + 1\",\n                          \"c\": \"id * 2\"]).show()     // columns: [id, b, c]\n```\n\n### How was this patch tested?\n\nPass the CIs.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Code (Claude Opus 4.8)\n\nCloses #405 from dongjoon-hyun/SPARK-57302.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "0f001a5e75c39c294a945c609aff81fb015e35ee",
      "tree": "a2bc127be960bae241d403824ec76d8acf2d530c",
      "parents": [
        "44bf60b989c2c8bc7dd0f8d8b2c9f635ccc11cbb"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Sat Jun 06 22:07:51 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Sat Jun 06 22:07:51 2026 -0700"
      },
      "message": "[SPARK-57299] Upgrade `Swift System` to 1.6.5\n\n### What changes were proposed in this pull request?\n\nThis PR aims to upgrade `swift-system` to `1.6.5`.\n\n### Why are the changes needed?\n\nTo keep our dependencies up to date with the latest patch release.\n\n- https://github.com/apple/swift-system/releases/tag/1.6.5\n  - https://github.com/apple/swift-system/pull/309\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nPass the CI.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Code (Claude Opus 4.8)\n\nCloses #404 from dongjoon-hyun/SPARK-57299.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "44bf60b989c2c8bc7dd0f8d8b2c9f635ccc11cbb",
      "tree": "cc47570be2161a68c4237154e1e49fb38b7d996a",
      "parents": [
        "d11940e9c1d230bea004aaf954b5a18d2adef1c5"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Fri Jun 05 08:59:48 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Fri Jun 05 08:59:48 2026 -0700"
      },
      "message": "[SPARK-57279] Add `SECURITY.md` for scan-agent discoverability\n\n### What changes were proposed in this pull request?\n\nThis PR aims to add `SECURITY.md` for scan-agent discoverability.\n\n### Why are the changes needed?\n\nLike Apache Spark main repository, we had better provide this.\n- https://github.com/apache/spark/blob/master/SECURITY.md\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nManual review.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nNo.\n\nCloses #403 from dongjoon-hyun/SPARK-57279.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "d11940e9c1d230bea004aaf954b5a18d2adef1c5",
      "tree": "4fa04248ebd3ceddd80ca353813ca5dc7d1e0dcd",
      "parents": [
        "cc389008d25b088fced35773a18ce5104409c71a"
      ],
      "author": {
        "name": "Liang-Chi Hsieh",
        "email": "liangchi.hsieh@databricks.com",
        "time": "Fri May 29 18:44:36 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Fri May 29 18:44:36 2026 -0700"
      },
      "message": "[SPARK-57156] Harden fork CI status workflows against run/check-run race and pagination\n\n### What changes were proposed in this pull request?\n\nPort the hardening fixes from Apache Spark (SPARK-57154, SPARK-57155) to this\nrepository\u0027s `notify_test_workflow.yml` and `update_build_status.yml`, which were\nintroduced here as a copy of Spark\u0027s fork-based CI status mechanism (SPARK-57151).\n\n`notify_test_workflow.yml`:\n\n1. When listing the fork\u0027s workflow runs, instead of blindly taking the most\n   recent run (`workflow_runs[0]`) and throwing if its `head_sha` does not match\n   the PR head SHA, retry (up to 3 times, 3s apart) looking for the run whose\n   `head_sha` matches the PR head SHA. The listing endpoint orders by most recent,\n   so the run for the just-pushed SHA may not be registered yet and a stale run\n   from a previous push could be returned.\n\n2. When resolving the `Run / License Check` check-run id (used only to render a\n   Check-run view link instead of the Actions view, see SPARK-37879), a missing\n   check-run no longer throws. The check-run materializes later than the workflow\n   run, especially when the matrix is queued, so this is now best-effort: if it\n   cannot be found, the `Build` check is still created pointing at the Actions\n   run URL.\n\n`update_build_status.yml`:\n\n3. List a commit\u0027s check-runs with `github.paginate(..., per_page: 100)` instead\n   of a single un-paginated request, matching `notify_test_workflow.yml`. The\n   default page size is 30, so the target `Build` check could fall off the first\n   page on a SHA that accumulates more check-runs than that.\n\n4. Wrap `JSON.parse(cr.output.text)` in try/catch and `continue` on failure, so a\n   `Build` check with empty or malformed output text does not abort the whole\n   scheduled run and block updates for every PR queued behind it.\n\n### Why are the changes needed?\n\nThe race conditions previously left a PR with no `Build` check at all, and the\nscheduled updater only syncs existing checks, so the PR had no status reported\nuntil the next push. The pagination and parsing issues silently block status\nupdates, leaving PRs stuck in `queued`.\n\n### Does this PR introduce _any_ user-facing change?\n\nNo. CI infrastructure only.\n\n### How was this patch tested?\n\nStatic verification: the embedded `actions/github-script` bodies pass\n`node --check`, and the workflow YAML parses.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Code (Claude Opus 4.8)\n\nCloses #402 from viirya/SPARK-57156-harden-ci-status.\n\nAuthored-by: Liang-Chi Hsieh \u003cliangchi.hsieh@databricks.com\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "cc389008d25b088fced35773a18ce5104409c71a",
      "tree": "9e1e1d542aa1f07c8f74311e95da01792697a0b0",
      "parents": [
        "12822332efe87759df51ea750a828d862d76c6e0"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Fri May 29 11:56:22 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Fri May 29 11:56:22 2026 -0700"
      },
      "message": "[SPARK-57151] Run CI in forked repositories and report build status to PRs\n\n### What changes were proposed in this pull request?\n\nMake `build_and_test.yml` a reusable (`workflow_call`) workflow and add Apache\nSpark\u0027s fork-based CI status mechanism:\n\n- `build_main.yml` — runs on `push` to all branches and calls `build_and_test.yml`.\n- `notify_test_workflow.yml` — on `pull_request_target`, creates a `Build` check\n  on the PR that points to the fork\u0027s run.\n- `update_build_status.yml` — every 15 minutes, syncs the `Build` check from the\n  fork\u0027s run.\n- Add `images/workflow-enable-button.png` used by the notify message, and repoint\n  the README badge and `AGENTS.md` to `build_main.yml`.\n\nFlow:\n\n```mermaid\nflowchart TD\n    subgraph fork[\"Forked repo (contributor)\"]\n        P([push to any branch]) --\u003e BM[\"build_main.yml — job: Run\"]\n        BM --\u003e|workflow_call| BAT[\"build_and_test.yml (reusable):\u003cbr/\u003eLicense Check, build, integration tests\"]\n        BAT --\u003e CR[\"check runs:\u003cbr/\u003eRun / License Check, ...\"]\n    end\n\n    subgraph up[\"Upstream repo (apache/spark-connect-swift)\"]\n        PRT([pull_request_target]) --\u003e N[\"notify_test_workflow.yml\"]\n        SCH([schedule: every 15 min]) --\u003e U[\"update_build_status.yml\"]\n        N --\u003e|create| B([\"Build check on PR\"])\n        U --\u003e|\"PATCH status / conclusion\"| B\n    end\n\n    BM -.-\u003e|\"① find run (id: build_main.yml)\"| N\n    CR -.-\u003e|\"② link check-run view\"| N\n    BM -.-\u003e|\"③ poll run status\"| U\n```\n\n### Why are the changes needed?\n\nLike Apache Spark main repository, run the heavy test matrix in contributors\u0027 forks and mirror only a single `Build`\nstatus check upstream, instead of running the matrix in the upstream repo on every\nPR. This matches the Apache Spark main repository.\n\n### Does this PR introduce _any_ user-facing change?\n\nNo. CI and documentation only.\n\n### How was this patch tested?\n\nStatic verification of the cross-workflow wiring: the `Run / License Check`\ncheck-run name, the shared `Build` check name, and the `run_id` passed from\n`notify` to `update`. Full behavior takes effect only after merge to `main`, since\nthe `pull_request_target`/`schedule` workflows and `main`-pinned URLs resolve from\nthe default branch.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Code (Claude Opus 4.8)\n\nCloses #399 from dongjoon-hyun/SPARK-57151.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "12822332efe87759df51ea750a828d862d76c6e0",
      "tree": "5b1d05b9041e418923d2d974fb980ce52f26146d",
      "parents": [
        "5386dd587cd51c3041965822aca4fe3e049b8daf"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Fri May 29 10:04:17 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Fri May 29 10:04:17 2026 -0700"
      },
      "message": "[SPARK-57146] Add `AGENTS.md` and symlink `CLAUDE.md` to it\n\n### What changes were proposed in this pull request?\n\nThis PR adds `AGENTS.md`, a guide for AI coding agents (project overview, layout, build/test, conventions, contribution workflow), and adds `CLAUDE.md` as a relative symlink to it so both share one source of truth.\n\n### Why are the changes needed?\n\nTo give AI coding agents accurate, project-specific context in a single place.\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nDocumentation-only change. Verified the `CLAUDE.md` symlink resolves to `AGENTS.md`.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Code (Opus 4.8)\n\nCloses #398 from dongjoon-hyun/SPARK-57146.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "5386dd587cd51c3041965822aca4fe3e049b8daf",
      "tree": "e66ec8cc1ca6a518f2328afb4f62d539810fc1fe",
      "parents": [
        "ffe3de220f97cb363d27a1cd091597b96e6b7169"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Tue May 26 19:32:58 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Tue May 26 19:32:58 2026 -0700"
      },
      "message": "[SPARK-57094] Use `exact` always instead of `branch` in `Package.swift`\n\n### What changes were proposed in this pull request?\n\nThis PR aims to use `exact` always instead of `branch` in `Package.swift`\n\n### Why are the changes needed?\n\nA `branch:` reference is mutable. Pinning to the matching tag makes the dependency reproducible and consistent with the other four dependencies, which all use `exact:`.\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\n`swift package resolve` keeps `Package.resolved` at the same revision `03fffb25e2d777462b719cb4964249c30b19d58f` for `flatbuffer`.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Opus 4.7\n\nCloses #397 from dongjoon-hyun/SPARK-57094.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "ffe3de220f97cb363d27a1cd091597b96e6b7169",
      "tree": "a17a1118e29da63e697f310180121d0bbbcff3c4",
      "parents": [
        "0380236c20060ff176d1e56c63c51c599488cfa9"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Tue May 26 15:48:31 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Tue May 26 15:48:31 2026 -0700"
      },
      "message": "[SPARK-57090] Make `Documentation` up-to-date\n\n### What changes were proposed in this pull request?\n\nThis PR updates `Sources/SparkConnect/Documentation.docc` to surface the public APIs added during SPARK-57044 ~ SPARK-57087.\n\n- Add `Catalog.md`, `DataFrameReader.md`, `DataFrameWriter.md` topic-curation pages.\n- Expand the top-level `## Topics` in `SparkConnect.md` to cover all major public types.\n- Add missing members (`version`, `newSession()`, `table(_:)`, `readStream`, `addArtifact`, `executeCommand`, `time`, `streams`, etc.) to `SparkSession.md`.\n- Add a \"Catalog Operations\" example to `GettingStarted.md`.\n\n### Why are the changes needed?\n\nThe DocC bundle had not been updated for the recently added `Catalog` methods and `DataFrameReader` overloads, leaving them either unlisted or auto-rendered without category structure.\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\n- `swift build` passes.\n- Every DocC symbol reference in the new/edited `.md` files was cross-checked against the actual public signatures in the source.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Code (claude-opus-4-7)\n\nCloses #396 from dongjoon-hyun/SPARK-57090.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "0380236c20060ff176d1e56c63c51c599488cfa9",
      "tree": "75d1b605e6821e9964b95825511b9c7a50e66f6a",
      "parents": [
        "b7224a88e763f76a7e2709f9ea36b496fa438fef"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Tue May 26 14:59:49 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Tue May 26 15:00:23 2026 -0700"
      },
      "message": "[SPARK-57087] Support `listFunctions` in `Catalog`\n\nThis PR aims to support `listFunctions` in `Catalog`.\n\nFor feature parity with Apache Spark\u0027s `Catalog.listFunctions` API.\n\nNo, this is a new API.\n\nPass the CIs with the newly added test case.\n\nGenerated-by: Claude Code\n\nThis patch had conflicts when merged, resolved by\nCommitter: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n\nCloses #395 from dongjoon-hyun/SPARK-57087.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "b7224a88e763f76a7e2709f9ea36b496fa438fef",
      "tree": "1788e119f543819f2a084551ad06842f73035196",
      "parents": [
        "3641296336c2289bb882e9ad5f49a2597549ba93"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Tue May 26 14:58:09 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Tue May 26 14:58:09 2026 -0700"
      },
      "message": "[SPARK-57086] Support `recoverPartitions` in `Catalog`\n\n### What changes were proposed in this pull request?\n\nThis PR aims to support `recoverPartitions` in `Catalog`.\n\n### Why are the changes needed?\n\nFor feature parity with `spark.catalog.recoverPartitions`.\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nPass the CIs with a new test case.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Opus 4.7\n\nCloses #394 from dongjoon-hyun/SPARK-57086.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "3641296336c2289bb882e9ad5f49a2597549ba93",
      "tree": "27485f2ef97ed14383df86723638716b66b64485",
      "parents": [
        "c97e125ac1b7cf6ef20e803b070dc8c45213081d"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Tue May 26 14:57:15 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Tue May 26 14:57:15 2026 -0700"
      },
      "message": "[SPARK-57085] Support `getFunction` in `Catalog`\n\n### What changes were proposed in this pull request?\n\nThis PR aims to support `getFunction` in `Catalog`.\n\n### Why are the changes needed?\n\nFor feature parity.\n\n### Does this PR introduce _any_ user-facing change?\n\nNo because this is a new addition in an unreleased branch.\n\n### How was this patch tested?\n\nPass the CIs with the newly added test case.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Opus 4.7\n\nCloses #393 from dongjoon-hyun/SPARK-57085.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "c97e125ac1b7cf6ef20e803b070dc8c45213081d",
      "tree": "077e974cfa6f555cbcb4dbe220b0e16d715309dc",
      "parents": [
        "47608475a0b528af63466e9e932fff49c5ce89d8"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Tue May 26 12:04:41 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Tue May 26 12:04:41 2026 -0700"
      },
      "message": "[SPARK-57084] Add `geometry` and `geography` SQL tests and answer files\n\n### What changes were proposed in this pull request?\n\nThis PR aims to add `geometry.sql` and `geography.sql` test queries for the new `GEOMETRY` and `GEOGRAPHY` geospatial types enabled by default in Apache Spark 4.2.\n- https://github.com/apache/spark/pull/55734\n\n### Why are the changes needed?\n\nApache Spark 4.2 enabled new geospatial types (`GEOMETRY` and `GEOGRAPHY`) by default. We need test coverage for these types in the Swift client.\n\n- https://spark.apache.org/docs/4.2.0-preview5/sql-ref-geospatial-types.html\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nPass the CIs with the newly added test queries. The `spark.sql.geospatial.enabled\u003dtrue` configuration is enabled in the Spark 4.2 integration test jobs.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Opus 4.7\n\nCloses #392 from dongjoon-hyun/SPARK-57084.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "47608475a0b528af63466e9e932fff49c5ce89d8",
      "tree": "d391486d7649f7f05d1a7fbb2f77ec01549cca46",
      "parents": [
        "773c23861d0b4c56240106272a545a157c1519cd"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Tue May 26 08:10:22 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Tue May 26 08:10:22 2026 -0700"
      },
      "message": "[SPARK-57063] Support `csv(DataFrame)` in `DataFrameReader`\n\n### What changes were proposed in this pull request?\n\nThis PR aims to support `csv(DataFrame)` overload in `DataFrameReader`.\n\n### Why are the changes needed?\n\nFor feature parity with PySpark/Scala `spark.read.csv(csvDataset)`, and to exercise `Spark_Connect_Parse.ParseFormat.csv` (Apache Spark 4.2.0+).\n- https://github.com/apache/spark/pull/55274\n\n### Does this PR introduce _any_ user-facing change?\n\nNo behavior change. New public overload added.\n\n### How was this patch tested?\n\nPass the CIs with the newly added test case.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Opus 4.7\n\nCloses #391 from dongjoon-hyun/SPARK-57063.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "773c23861d0b4c56240106272a545a157c1519cd",
      "tree": "8052952d9da0749649a94c46635d32e753905755",
      "parents": [
        "d57fe8c7eabd9403cbd7b7b07522950cdfb09acf"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Mon May 25 18:55:18 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Mon May 25 18:55:18 2026 -0700"
      },
      "message": "[SPARK-57062] Support `json(DataFrame)` in `DataFrameReader`\n\n### What changes were proposed in this pull request?\n\nThis PR aims to support `json(DataFrame)` overload in `DataFrameReader`.\n\n### Why are the changes needed?\n\nFor feature parity with PySpark/Scala `spark.read.json(jsonDataset)`, and to exercise `Spark_Connect_Parse.ParseFormat.json` (Apache Spark 4.2.0+).\n- https://github.com/apache/spark/pull/55097\n\n### Does this PR introduce _any_ user-facing change?\n\nNo behavior change. New public overload added.\n\n### How was this patch tested?\n\nPass the CIs with the newly added test case.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Opus 4.7\n\nCloses #390 from dongjoon-hyun/SPARK-57062.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "d57fe8c7eabd9403cbd7b7b07522950cdfb09acf",
      "tree": "f7347a554e5c96888376d52d4416b841ce52befe",
      "parents": [
        "972244e9c7cfd0c6ad4d641f3801d8425cfc098b"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Mon May 25 18:34:37 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Mon May 25 18:34:37 2026 -0700"
      },
      "message": "[SPARK-57061] Support `xml(DataFrame)` in `DataFrameReader`\n\n### What changes were proposed in this pull request?\n\nThis PR aims to support `xml(DataFrame)` overload in `DataFrameReader`.\n\n### Why are the changes needed?\n\nFor feature parity with PySpark/Scala `spark.read.xml(xmlDataset)`, and to exercise the newly added `Spark_Connect_Parse.ParseFormat.xml` (Apache Spark 4.2.0+).\n- https://github.com/apache/spark/pull/55332\n\n### Does this PR introduce _any_ user-facing change?\n\nNo behavior change. New public overload added.\n\n### How was this patch tested?\n\nPass the CIs with the newly added test case.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Opus 4.7\n\nCloses #389 from dongjoon-hyun/SPARK-57061.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "972244e9c7cfd0c6ad4d641f3801d8425cfc098b",
      "tree": "ca14fefdb1fc015f4fac006303ca562a5fbd0720",
      "parents": [
        "7de270bc00d220d515456fec1a80cf1dc5d36599"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Mon May 25 18:33:58 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Mon May 25 18:33:58 2026 -0700"
      },
      "message": "[SPARK-57060] Support `analyzeTable` in `Catalog`\n\n### What changes were proposed in this pull request?\n\nThis PR aims to support `Spark_Connect_AnalyzeTable` message added in Apache Spark Connect 4.2.0-preview5.\n- https://github.com/apache/spark/pull/55025\n\n### Why are the changes needed?\n\nFor feature parity with Spark Connect.\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nPass the CIs with the newly added test case.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Opus 4.7\n\nCloses #388 from dongjoon-hyun/SPARK-57060.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "7de270bc00d220d515456fec1a80cf1dc5d36599",
      "tree": "4b88e850bcd1ba888764f31c3256fdbb7eaded31",
      "parents": [
        "ccf841c98ef968b02eae521f8d0533f947428aa1"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Mon May 25 17:46:51 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Mon May 25 17:46:51 2026 -0700"
      },
      "message": "[SPARK-57059] Add `integration-test-mac-spark41-iceberg` GitHub Actions job\n\n### What changes were proposed in this pull request?\n\nThis PR aims to add a new GitHub Actions job, `integration-test-mac-spark41-iceberg`, which runs Apache Iceberg integration tests against Apache Spark 4.1.2 on macOS.\n\nThe new job mirrors the existing `integration-test-mac-spark4-iceberg` job with the following differences:\n- Spark distribution: `spark-4.1.2-bin-hadoop3`\n- Spark Connect package: `org.apache.spark:spark-connect_2.13:4.1.2`\n- Iceberg runtime: `org.apache.iceberg:iceberg-spark-runtime-4.1_2.13:1.11.0`\n- Java version: 21 (Spark 4.1 supports JDK 21)\n\n### Why are the changes needed?\n\nApache Spark 4.1.2 is the latest 4.1.x release, and we already have `integration-test-mac-spark41` covering core integration tests against 4.1.2. However, there is no CI coverage that verifies the Iceberg integration (`DataFrameWriterV2Tests`, `IcebergTest`) against Spark 4.1. This PR closes that gap so that regressions affecting the Spark 4.1 + Iceberg combination are caught in CI.\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nPass the CIs with the new `integration-test-mac-spark41-iceberg` job.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Opus 4.7\n\nCloses #387 from dongjoon-hyun/SPARK-57059.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "ccf841c98ef968b02eae521f8d0533f947428aa1",
      "tree": "33c7eb76a20927b906d8b6949a1b86589f05ba34",
      "parents": [
        "70d2be07dafe66ad1a2486f14b5bbc0aac8ad824"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Sun May 24 21:45:43 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Sun May 24 21:45:43 2026 -0700"
      },
      "message": "[SPARK-57051] Support `getCreateTableString` in `Catalog`\n\n### What changes were proposed in this pull request?\n\nThis PR aims to support `Spark_Connect_GetCreateTableString` message added in Apache Spark Connect 4.2.0-preview5.\n- https://github.com/apache/spark/pull/55025\n\n### Why are the changes needed?\n\nFor feature parity with Spark Connect.\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nPass the CIs with the newly added test case.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Opus 4.7\n\nThis patch had conflicts when merged, resolved by\nCommitter: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n\nCloses #386 from dongjoon-hyun/SPARK-57051.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "70d2be07dafe66ad1a2486f14b5bbc0aac8ad824",
      "tree": "bc6848b553462c5568c4de380f98eeb210f56328",
      "parents": [
        "1fbe1b658d9d11190cfd098c186e3a767d54b448"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Sun May 24 21:41:34 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Sun May 24 21:41:34 2026 -0700"
      },
      "message": "[SPARK-57050] Support `getTableProperties` in `Catalog`\n\n### What changes were proposed in this pull request?\n\nThis PR aims to support `Spark_Connect_GetTableProperties` added in Apache Spark Connect 4.2.0-preview5.\n- https://github.com/apache/spark/pull/55025\n\n### Why are the changes needed?\n\nFor feature parity with other Spark Connect clients.\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nPass the CIs with a newly added test case.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Code (Opus 4.7)\n\nCloses #385 from dongjoon-hyun/SPARK-57050.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "1fbe1b658d9d11190cfd098c186e3a767d54b448",
      "tree": "06760f72968f1cdfcf22edbbb0740e6adfab289d",
      "parents": [
        "763077d9d6a14e35921f75854085604e9c44689d"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Sun May 24 21:40:53 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Sun May 24 21:40:53 2026 -0700"
      },
      "message": "[SPARK-57049] Support `listPartitions` in `Catalog`\n\n### What changes were proposed in this pull request?\n\nThis PR aims to support `Spark_Connect_ListPartitions` added in Apache Spark Connect 4.2.0-preview5\n- https://github.com/apache/spark/pull/55025\n\n### Why are the changes needed?\n\nTo improve API coverage.\n\n### Does this PR introduce _any_ user-facing change?\n\nNo because this is a new API addition.\n\n### How was this patch tested?\n\nPass the CIs with a newly added test case.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Opus 4.7\n\nCloses #384 from dongjoon-hyun/SPARK-57049.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "763077d9d6a14e35921f75854085604e9c44689d",
      "tree": "6181993f6afec5ed5dd787ebae1f775942fb614c",
      "parents": [
        "938c78a9fc7ad88741fcd39456072be2e0794849"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Sun May 24 20:58:12 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Sun May 24 20:58:12 2026 -0700"
      },
      "message": "[SPARK-57048] Add `*.pyc` and `*.pyo` to `.gitignore`\n\n### What changes were proposed in this pull request?\n\nThis PR aims to add `*.pyc` and `*.pyo` to `.gitignore` to exclude Python bytecode files from being tracked by Git.\n\n### Why are the changes needed?\n\nLike Apache Spark main repository, to prevent accidental commits of Python compiled bytecode files (`*.pyc`, `*.pyo`) that may be generated when running Python scripts in this repository (e.g., `dev/spark_jira_utils.py`).\n\nhttps://github.com/apache/spark/blob/30bdf0b39fa6b28ea149ddd43ecd962b2b3c0cd2/.gitignore#L6-L7\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nManual review of `.gitignore`.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Opus 4.7\n\nCloses #383 from dongjoon-hyun/SPARK-57048.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "938c78a9fc7ad88741fcd39456072be2e0794849",
      "tree": "59f72821ccfdd409b36dd615617dd89c0fc2a2a5",
      "parents": [
        "3f3bf1730e4f07fb25a26329e8c3f0ab7ba1df88"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Sun May 24 20:57:25 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Sun May 24 20:57:25 2026 -0700"
      },
      "message": "[SPARK-57047] Support `listViews` in `Catalog`\n\n### What changes were proposed in this pull request?\n\nThis PR aims to support `Spark_Connect_ListViews` added in Apache Spark Connect 4.2.0-preview5\n- https://github.com/apache/spark/pull/55025\n\n### Why are the changes needed?\n\nFor feature parity with other Spark Connect clients.\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nPass the CIs with a newly added test case.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Code (Opus 4.7)\n\nCloses #382 from dongjoon-hyun/SPARK-57047.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "3f3bf1730e4f07fb25a26329e8c3f0ab7ba1df88",
      "tree": "eff183500bb2db8c7c8e73e3f7b36aea96e8919e",
      "parents": [
        "c7adf4d451a3d0a7fd867fda499a5282a8fe74a8"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Sun May 24 20:56:27 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Sun May 24 20:56:27 2026 -0700"
      },
      "message": "[SPARK-57046] Support `truncateTable` in `Catalog`\n\n### What changes were proposed in this pull request?\n\nThis PR aims to support `Spark_Connect_TruncateTable` message added in Apache Spark Connect 4.2.0-preview5\n- https://github.com/apache/spark/pull/55025\n\n### Why are the changes needed?\n\nFor feature parity with Spark Connect.\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nPass the CIs with the newly added test case.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Opus 4.7\n\nCloses #381 from dongjoon-hyun/SPARK-57046.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "c7adf4d451a3d0a7fd867fda499a5282a8fe74a8",
      "tree": "dd47d7b96c9108435a9b98c9cd8144930d4aa7c5",
      "parents": [
        "624f706e1652c048496e40bcc0c6b97c385ae39c"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Sun May 24 20:55:42 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Sun May 24 20:55:42 2026 -0700"
      },
      "message": "[SPARK-57045] Support `drop(Table|View)` in `Catalog`\n\n### What changes were proposed in this pull request?\n\nThis PR aims to support `Spark_Connect_DropTable` and `Spark_Connect_DropView` messages added in Apache Spark Connect 4.2.0-preview5\n- https://github.com/apache/spark/pull/55025\n\n### Why are the changes needed?\n\nTo provide new functionality.\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nPass the CIs with the newly added test cases.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Opus 4.7\n\nCloses #380 from dongjoon-hyun/SPARK-57045.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "624f706e1652c048496e40bcc0c6b97c385ae39c",
      "tree": "76e4874178ba804fc791ef1ad0004673a42a3af0",
      "parents": [
        "12507da860616c800cd386685a9c974382c687d2"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Sun May 24 20:54:48 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Sun May 24 20:54:48 2026 -0700"
      },
      "message": "[SPARK-57044] Support `(create|drop)Database` in `Catalog`\n\n### What changes were proposed in this pull request?\n\nThis PR adds `Catalog.createDatabase` and `Catalog.dropDatabase` to the Spark Connect Swift client.\n\n### Why are the changes needed?\n\nThe `Spark_Connect_CreateDatabase` and `Spark_Connect_DropDatabase` proto messages were added in Spark Connect 4.2.0-preview5\n- https://github.com/apache/spark/pull/55025\n\n### Does this PR introduce _any_ user-facing change?\n\nNo, these are new methods.\n\n### How was this patch tested?\n\nPass the CIs with the newly added test cases.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Code (Claude Opus 4.7)\n\nCloses #379 from dongjoon-hyun/SPARK-57044.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "12507da860616c800cd386685a9c974382c687d2",
      "tree": "b2a9efddafce1a010f9a82136f92e4644b38033f",
      "parents": [
        "e72a9b65e72762d2e50bef96294abf9eb021a6a0"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Fri May 22 14:01:00 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Fri May 22 14:01:00 2026 -0700"
      },
      "message": "[SPARK-57014] Update `Spark Connect`-generated `Swift` source code with `4.2.0-preview5`\n\n### What changes were proposed in this pull request?\n\nThis PR updates the `Spark Connect`-generated Swift source code by regenerating with `4.2.0-preview5`.\n\n- apache/spark#54740\n- apache/spark#55025\n- apache/spark#55139\n- apache/spark#55332\n\n### Why are the changes needed?\n\nTo keep the generated Swift source code in sync with Apache Spark `4.2.0-preview5` protobuf definitions and the latest `grpc-swift`/`swift-protobuf` code generators.\n\n```\n$ git clone -b v4.2.0-preview5 https://github.com/apache/spark.git\n$ cd spark/sql/connect/common/src/main/protobuf/\n$ protoc --swift_out\u003d. spark/connect/*.proto\n$ protoc --grpc-swift_out\u003d. spark/connect/*.proto\n\n// Remove empty GRPC files\n$ cd spark/connect\n$ grep \u0027This file contained no services\u0027 * | awk -F: \u0027{print $1}\u0027 | xargs rm\n```\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nPass the CIs.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Opus 4.7\n\nCloses #378 from dongjoon-hyun/SPARK-57014.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "e72a9b65e72762d2e50bef96294abf9eb021a6a0",
      "tree": "db7565689bb43fc5bece1fa6a9b0c163c32d461d",
      "parents": [
        "f3efeea7fec7f067ed166618618156b86964fe1f"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Fri May 22 13:49:26 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Fri May 22 13:49:26 2026 -0700"
      },
      "message": "[SPARK-57013] Drop Spark 3.5 Support\n\n### What changes were proposed in this pull request?\n\nThis PR removes Apache Spark 3.5 related contents and code.\n\n### Why are the changes needed?\n\nAccording to the Apache Spark EOL policy, we drop Spark 3.5 support. Spark 3.5.x reached **the planned EOL on 2026-04-12**. The only exception is the extension to the main repository which is irrelevant to `Apache Spark Connect Swift Client` as mentioned in the website.\n\n- https://spark.apache.org/versioning-policy.html\n\n\u003cimg width\u003d\"981\" height\u003d\"348\" alt\u003d\"Screenshot 2026-05-22 at 13 03 12\" src\u003d\"https://github.com/user-attachments/assets/602f66d1-20ab-4b99-a046-86aa57d9f95f\" /\u003e\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nPass the CIs.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Opus 4.7\n\nCloses #377 from dongjoon-hyun/SPARK-57013.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "f3efeea7fec7f067ed166618618156b86964fe1f",
      "tree": "0eb5747c30e0811030a04df0c176586f634f8aac",
      "parents": [
        "eebe4d846a1d32a2c58d0a87ed64bb5e7f4aaca2"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Fri May 22 13:37:34 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Fri May 22 13:37:34 2026 -0700"
      },
      "message": "[SPARK-56857] Upgrade Swift to 6.3.2\n\n### What changes were proposed in this pull request?\n\nThis PR aims to use `Swift 6.3.2` instead of `Swift 6.3.1`.\n\n### Why are the changes needed?\n\nTo pick up [Swift 6.3.2 (2026-05-11)](https://github.com/swiftlang/swift/releases/tag/swift-6.3.2-RELEASE), which contains 91 commits on top of 6.3.1, with a heavy focus on concurrency and stack-nesting correctness — directly relevant to this async-heavy project. Notable fixes include:\n\n- Follow-up SIL/IRGen work hardening `async let` stack allocation (e.g. *\"Fix a bug involving two async lets on the stack at once\"*, *\"Don\u0027t delay stack deallocation of non-nested allocations\"*), continuing the line of fixes started in 6.3.1 ([swiftlang/swift#87896](https://github.com/swiftlang/swift/pull/87896), [#88254](https://github.com/swiftlang/swift/pull/88254)).\n- *\"[Concurrency] Fix `stripConcurrency` to avoid dropping parameter isolation\"*.\n- *\"[SILOptimizer] fix an erroneous `hop_to_executor` removal\"* and *\"Prevent function signature optimization from removing implicit leading isolation parameter\"*.\n- *\"[IRGen] Sign protocol witnesses in relative witness table access\"* / ptrauth discriminator cache fix ([#88105](https://github.com/swiftlang/swift/pull/88105), [#88135](https://github.com/swiftlang/swift/pull/88135)).\n- *\"COWOpts: Don\u0027t look through `struct_extract` for multi-field structs\"*.\n\nFull commit range: [swift-6.3.1-RELEASE...swift-6.3.2-RELEASE](https://github.com/swiftlang/swift/compare/swift-6.3.1-RELEASE...swift-6.3.2-RELEASE).\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nPass the CIs.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Opus 4.7 (1M context)\n\nCloses #367 from dongjoon-hyun/SPARK-56857.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "eebe4d846a1d32a2c58d0a87ed64bb5e7f4aaca2",
      "tree": "b737c2b00c60c62a7e412099637e4a67d2dceabe",
      "parents": [
        "ba80e29d6c7c655d635bc903f55e4cc3986c4d40"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Fri May 22 13:26:06 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Fri May 22 13:26:06 2026 -0700"
      },
      "message": "[SPARK-57009] Add `dev/spark_jira_utils.py`\n\n### What changes were proposed in this pull request?\n\nExtract JIRA helpers from `dev/create_jira_and_branch.py` into a new `dev/spark_jira_utils.py`, ported from [`apache/spark`\u0027s `dev/spark_jira_utils.py`](https://github.com/apache/spark/blob/master/dev/spark_jira_utils.py) with the version regex adapted to `connect-swift-\\d+\\.\\d+\\.\\d+`.\n\n### Why are the changes needed?\n\nTo remove duplication and give future JIRA-related dev scripts a single shared entry point, matching the upstream Apache Spark layout.\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nManual review. I used this newly revised script to prepare this PR via the following.\n\n```\n$ dev/create_jira_and_branch.py -p SPARK-56376 \u0027Add `dev/spark_jira_utils.py`\u0027\nCreating a subtask of SPARK-56376 with title: Add `dev/spark_jira_utils.py`\nCreated JIRA issue: SPARK-57009\ngit checkout -b SPARK-57009\nSwitched to a new branch \u0027SPARK-57009\u0027\nCreated and checked out branch: SPARK-57009\n[\u0027git\u0027, \u0027commit\u0027, \u0027-a\u0027, \u0027-m\u0027, \u0027[SPARK-57009] Add `dev/spark_jira_utils.py`\u0027]\nCreated a commit with message: [SPARK-57009] Add `dev/spark_jira_utils.py`\n```\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Code (claude-opus-4-7)\n\nCloses #375 from dongjoon-hyun/SPARK-57009.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "ba80e29d6c7c655d635bc903f55e4cc3986c4d40",
      "tree": "d2f9256bb250191b5e38b467b52e8349d58626a8",
      "parents": [
        "b5a5de1f5e9ac6439b5dcecb300bb2d5a4874947"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Fri May 22 13:24:58 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Fri May 22 13:24:58 2026 -0700"
      },
      "message": "[SPARK-57010] Upgrade `Iceberg` to 1.11.0 in integration tests\n\n### What changes were proposed in this pull request?\n\nThis PR aims to upgrade `Iceberg` to 1.11.0 in integration tests.\n\n### Why are the changes needed?\n\nTo use the latest and bug fixed version:\n- https://github.com/apache/iceberg/releases/tag/apache-iceberg-1.11.0\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nPass the CIs.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Opus 4.7\n\nCloses #376 from dongjoon-hyun/SPARK-57010.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "b5a5de1f5e9ac6439b5dcecb300bb2d5a4874947",
      "tree": "31b7ac644e29f6bdceab28fc201175b4a7f89de2",
      "parents": [
        "96580cff070d5463ca3d0c4bd7991714d1bf2740"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Fri May 22 13:23:56 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Fri May 22 13:23:56 2026 -0700"
      },
      "message": "[SPARK-56858] Use `Xcode 26.5` in CIs\n\n### What changes were proposed in this pull request?\n\nThis PR aims to upgrade Xcode to `26.5` in GitHub Actions.\n\n### Why are the changes needed?\n\nTo validate Apache Spark Connect Swift with the latest Xcode toolchain on CI.\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nPass the CIs.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Opus 4.7\n\nCloses #368 from dongjoon-hyun/SPARK-56858.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "96580cff070d5463ca3d0c4bd7991714d1bf2740",
      "tree": "6c9fd3406c67cfcd627756412800fb7cb91b1bc5",
      "parents": [
        "4e54aee279fbd13bbf1ecc9f542795f6edf1fd21"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Fri May 22 10:40:18 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Fri May 22 10:40:18 2026 -0700"
      },
      "message": "[SPARK-57008] Regenerate `Spark Connect`-generated Swift source code with `protoc-gen-grpc-swift-2` 2.4.0\n\n### What changes were proposed in this pull request?\n\nThis PR aims to regenerate `Spark Connect`-generated Swift source code with `protoc-gen-grpc-swift-2` 2.4.0\n\n### Why are the changes needed?\n\nTo apply new rule to generate Swift code.\n\n- https://formulae.brew.sh/formula/protoc-gen-grpc-swift\n  - https://github.com/grpc/grpc-swift-protobuf/releases/tag/2.4.0 (2026-05-18)\n\nIn short, `nonisolated` keywords are added.\n\n```\n-  struct Geography: Sendable {\n+  nonisolated struct Geography: Sendable {\n```\n\nPlease note that I used the same Apache Spark tag which is `4.2.0-preview3` to avoid any change from Apache Spark side.\n- #309\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nPass the CIs.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nNo.\n\nCloses #374 from dongjoon-hyun/SPARK-57008.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "4e54aee279fbd13bbf1ecc9f542795f6edf1fd21",
      "tree": "1f1824ba5ed2616dd2a9e816ae0cf9372a9920d5",
      "parents": [
        "e394532ff816c1ac64da05d7cdd481f86a4dbed7"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Fri May 22 10:22:00 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Fri May 22 10:22:00 2026 -0700"
      },
      "message": "[SPARK-57007] Use Spark 4.1.2 in docs, examples, and tests\n\n### What changes were proposed in this pull request?\n\nThis PR aims to use `Apache Spark 4.1.2`  in `README.md`, `Examples`, and GitHub Action CIs (`integration-test-ubuntu-spark41` and `integration-test-token`).\n\n### Why are the changes needed?\n\n`Apache Spark 4.1.2` has been officially released.\n- https://spark.apache.org/news/spark-4-1-2-released.html\n- https://github.com/apache/spark/releases/tag/v4.1.2\n\n### Does this PR introduce _any_ user-facing change?\n\nNo behavior change.\n\n### How was this patch tested?\n\nPass the CIs and manually check like the following.\n\n**BEFORE**\n```\n$ git grep \u00274\\.1\\.1\u0027 | wc -l\n      22\n```\n\n**AFTER**\n```\n$ git grep \u00274\\.1\\.1\u0027 | wc -l\n       0\n```\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Opus 4.7\n\nCloses #373 from dongjoon-hyun/SPARK-57007.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "e394532ff816c1ac64da05d7cdd481f86a4dbed7",
      "tree": "16c9152a293b5b66608c6e4a0d9cd4df75b557ea",
      "parents": [
        "917db481d55b5a2a5541dc33e8ff34e363390776"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Thu May 21 13:29:19 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Thu May 21 13:29:19 2026 -0700"
      },
      "message": "[SPARK-56996] Use Spark 4.1.2 instead of RC1\n\n### What changes were proposed in this pull request?\n\nThis PR aims to use `Apache Spark 4.1.2` instead of `4.1.2 RC1` for the `integration-test-mac-spark41` CI job.\n\n### Why are the changes needed?\n\n`Apache Spark 4.1.2` has been officially released.\n- https://spark.apache.org/news/spark-4-1-2-released.html\n- https://github.com/apache/spark/releases/tag/v4.1.2\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nPass the CIs.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Opus 4.7\n\nCloses #372 from dongjoon-hyun/SPARK-56996.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "917db481d55b5a2a5541dc33e8ff34e363390776",
      "tree": "b6a7cf29fad73447ee9e2d5ff819bf0ebade9eb1",
      "parents": [
        "4101b0d3293fe164b4b9c61f1c93f06d36d458d1"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Tue May 19 12:19:00 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Tue May 19 12:19:00 2026 -0700"
      },
      "message": "[SPARK-56951] Use 4.1.2 RC1 for Spark 4.1 integration tests\n\n### What changes were proposed in this pull request?\n\nThis PR updates the `integration-test-mac-spark41` CI job to use `Apache Spark 4.1.2` RC1.\n\n### Why are the changes needed?\n\nTo test against the latest `Apache Spark 4.1.2` release candidate.\n- [[VOTE] Release Spark 4.1.2 (RC1)](https://lists.apache.org/thread/locxv3h4tkbsvcf8t600kyvx16xw6xl3)\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nPass the CIs.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Opus 4.7\n\nCloses #371 from dongjoon-hyun/SPARK-56951.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "4101b0d3293fe164b4b9c61f1c93f06d36d458d1",
      "tree": "4f9925619c2e9a30c75e94099f91cdad14a304b3",
      "parents": [
        "c2060e3eee95526c3d14412429c90ce3185c8e94"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Tue May 19 12:18:09 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Tue May 19 12:18:09 2026 -0700"
      },
      "message": "[SPARK-56950] Upgrade `gRPC Swift Protobuf` to 2.4.0\n\n### What changes were proposed in this pull request?\n\nThis PR aims to upgrade `grpc-swift-protobuf` to 2.4.0.\n\n### Why are the changes needed?\n\nTo bring the latest bug fixes and improvements.\n- https://github.com/grpc/grpc-swift-protobuf/releases/tag/2.4.0\n  - https://github.com/grpc/grpc-swift-protobuf/pull/100\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nPass the CIs.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Opus 4.7\n\nCloses #370 from dongjoon-hyun/SPARK-56950.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "c2060e3eee95526c3d14412429c90ce3185c8e94",
      "tree": "f345a6c371b39ef4bc9aaba293fd179ee26cda58",
      "parents": [
        "6a4eee1a8328f718cf64124cadb01cbcf3adbcad"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Mon May 11 13:44:59 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Mon May 11 13:44:59 2026 -0700"
      },
      "message": "[SPARK-56828] Upgrade `grpc-swift-2` to 2.4.1\n\n### What changes were proposed in this pull request?\n\nThis PR upgrades the `grpc-swift-2` dependency to `2.4.1`.\n\n### Why are the changes needed?\n\nTo stay current with the latest patch release of `grpc-swift-2`.\n- https://github.com/grpc/grpc-swift-2/releases/tag/2.4.1\n  - https://github.com/grpc/grpc-swift-2/pull/46\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nPass the CIs.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Opus 4.7\n\nCloses #366 from dongjoon-hyun/SPARK-56828.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "6a4eee1a8328f718cf64124cadb01cbcf3adbcad",
      "tree": "824295edc1a653406cea462a04f86f5866662b42",
      "parents": [
        "b25d325408cfb9c87268874354c8f4f9fd73f97b"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Thu May 07 15:32:32 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Thu May 07 15:32:32 2026 -0700"
      },
      "message": "[SPARK-56788] Add `integration-test-ubuntu-spark42` GitHub Actions job\n\n### What changes were proposed in this pull request?\n\nThis PR aims to add a new GitHub Actions job, `integration-test-ubuntu-spark42`, that runs the Swift Spark Connect client integration test suite against an Apache Spark `4.2.0-preview5` server on Linux/Docker.\n\n### Why are the changes needed?\n\nCurrently, Spark `4.2.0-preview5` is only exercised on macOS (`integration-test-mac-spark42`).\n\n- This PR extends coverage to Linux/Docker, matching the existing pattern where both `integration-test-ubuntu` (4.0.2) and `integration-test-ubuntu-spark41` (4.1.1) accompany their macOS counterparts. This catches Linux/JVM-specific regressions earlier in CI.\n\n- The new job starts the Spark Connect server from the official `apache/spark:4.2.0-preview5-scala` Docker image with `-c spark.sql.timeType.enabled\u003dtrue`, mirroring the configuration used by the existing `integration-test-mac-spark42` job. Unlike `integration-test-ubuntu-spark41`, which uses GitHub Actions\u0027 `services:` block, this job starts the container explicitly with `docker run -d` because GitHub Actions `services:` does not support passing CMD arguments (such as `-c spark.sql.timeType.enabled\u003dtrue`) to the entrypoint.\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nPass the CIs with the newly added test coverage.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Opus 4.7\n\nCloses #365 from dongjoon-hyun/SPARK-56788.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "b25d325408cfb9c87268874354c8f4f9fd73f97b",
      "tree": "f5b099540ec6ad56cff75fd5ac11f4e40c6edf5a",
      "parents": [
        "86bd945cabb84307bea430087838b09ed50e1590"
      ],
      "author": {
        "name": "Peter Toth",
        "email": "p_toth@apple.com",
        "time": "Wed May 06 18:38:32 2026 +0200"
      },
      "committer": {
        "name": "Peter Toth",
        "email": "p_toth@apple.com",
        "time": "Wed May 06 18:38:32 2026 +0200"
      },
      "message": "[SPARK-56753] Fix typos and code sample bugs in documentation\n\n### What changes were proposed in this pull request?\n\nThis PR fixes typos, awkward wording, and incorrect API usage in code samples across the project documentation:\n\n- `README.md`: `## Requirement` -\u003e `## Requirements`.\n- `Examples/spark-sql/README.md` and `Sources/SparkConnect/Documentation.docc/Examples.md`: fix `REPL(Read-eval-print Loop)` spacing/capitalization to `REPL (Read-Eval-Print Loop)`.\n- `Sources/SparkConnect/Documentation.docc/Examples.md`: reword the Netcat output sentence in the streaming section.\n- `Examples/stream/README.md`: minor wording fix (\"printed on screen\" -\u003e \"printed to the screen\").\n- `Sources/SparkConnect/Documentation.docc/GettingStarted.md`:\n  - `from: \"main\"` is invalid for SwiftPM (`from:` requires a `Version`); change to `branch: \"main\"` to match the root README.\n  - Drop incorrect `await` on `selectExpr`, which is not `async`.\n  - Add missing `try await` to `result.show()`.\n- `Sources/SparkConnect/Documentation.docc/SparkSession.md`: add missing `try await` to `spark.range(...)` and `spark.sql(...)`, both of which are `async throws`.\n\n### Why are the changes needed?\n\nDocumentation should be accurate. The code snippets in `GettingStarted.md` and `SparkSession.md` will not compile as written, which is misleading for new users following the docs. The other items are typos and wording polish.\n\n### Does this PR introduce _any_ user-facing change?\n\nNo. Documentation-only changes.\n\n### How was this patch tested?\n\nManually reviewed the diffs and cross-checked the documented APIs against their definitions in `SparkSession.swift`, `DataFrame+Actions.swift`, and `DataFrame+Transformations.swift` to confirm the corrected `async`/`throws` annotations.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Opus 4.7\n\nCloses #364 from peter-toth/SPARK-56753-documentation-fixes.\n\nAuthored-by: Peter Toth \u003cp_toth@apple.com\u003e\nSigned-off-by: Peter Toth \u003cp_toth@apple.com\u003e\n"
    },
    {
      "commit": "86bd945cabb84307bea430087838b09ed50e1590",
      "tree": "6314836147e5683346fc1515d2a642046ee283e7",
      "parents": [
        "6786323c8446759ea21a1933e8a7d0af8bd118e0"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Tue May 05 10:17:28 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Tue May 05 10:17:28 2026 -0700"
      },
      "message": "[SPARK-56725] Upgrade Swift to 6.3.1\n\n### What changes were proposed in this pull request?\n\nThis PR aims to use `Swift 6.3.1` instead of `Swift 6.3`.\n\n### Why are the changes needed?\n\nTo pick up [Swift 6.3.1 (2026-04-16)](https://forums.swift.org/t/announcing-swift-6-3-1/86080), which fixes a stack-allocation bug in async functions causing `\"freed pointer was not the last allocation\"` crashes around `swift_asyncLet_finish` ([swiftlang/swift#88389](https://github.com/swiftlang/swift/pull/88389)) — directly relevant to this async-heavy project.\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nPass the CIs.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Opus 4.7 (1M context)\n\nCloses #363 from dongjoon-hyun/SPARK-56725.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "6786323c8446759ea21a1933e8a7d0af8bd118e0",
      "tree": "284c7b7ef4a446f72f33505e3c2880c9a369fb75",
      "parents": [
        "19f71f6193e14ee29ffebabf45cd3875b5437d8f"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Tue May 05 08:42:51 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Tue May 05 08:42:51 2026 -0700"
      },
      "message": "[SPARK-56722] Upgrade Docker GitHub Actions in `publish_image.yml`\n\n### What changes were proposed in this pull request?\n\nThis PR aims to upgrade the Docker actions used in `publish_image.yml` to their latest major versions.\n\n| Action | Current SHA (version) | New SHA (version) |\n|---|---|---|\n| `docker/setup-qemu-action` | `29109295f81e9208d7d86ff1c6c12d2833863392` (v3.6.0) | `ce360397dd3f832beb865e1373c09c0e9f86d70a` (v4.0.0) |\n| `docker/setup-buildx-action` | `8d2750c68a42422c14e847fe6c8ac0403b4cbd6f` (v3.12.0) | `4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd` (v4.0.0) |\n| `docker/login-action` | `c94ce9fb468520275223c153574b00df6fe4bcc9` (v3.7.0) | `4907a6ddec9925e35a0a9e82d7399ccc52663121` (v4.1.0) |\n| `docker/build-push-action` | `10e90e3645eae34f1e60eeb005ba3a3d33f178e8` (v6.19.2) | `bcafcacb16a39f128d818304e6c9c0c18556b85f` (v7.1.0) |\n\nAll four new SHAs are already registered in [apache/infrastructure-actions `approved_patterns.yml`](https://github.com/apache/infrastructure-actions/blob/main/approved_patterns.yml).\n\n### Why are the changes needed?\n\nTo keep CI dependencies up-to-date and adopt the latest improvements:\n\n- `setup-qemu-action` v4 / `setup-buildx-action` v4 — Node 24 as default runtime, ESM module format, and removal of deprecated inputs/outputs.\n- `login-action` v4.1.0 — fix for scoped Docker Hub cleanup path when registry is omitted.\n- `build-push-action` v7.1.0 — Git context query format support and various dependency updates.\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nPass the CIs.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Opus 4.7 (1M context)\n\nCloses #362 from dongjoon-hyun/SPARK-56722.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "19f71f6193e14ee29ffebabf45cd3875b5437d8f",
      "tree": "bb3c378c326db0297a497c9921c79f3c78908e63",
      "parents": [
        "13d0f4f0ea36474b221ae0b8b2919437a33d8039"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Sat May 02 20:49:44 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Sat May 02 20:49:44 2026 -0700"
      },
      "message": "[SPARK-56709] Use Apache Spark `4.2.0-preview5` in CI\n\n### What changes were proposed in this pull request?\n\nThis PR aims to use `Apache Spark 4.2.0-preview5` instead of `preview4` in the `integration-test-mac-spark42` CI job.\n\n### Why are the changes needed?\n\nTo use the latest available preview release of Apache Spark 4.2 in our integration tests.\n- https://spark.apache.org/docs/4.2.0-preview5/\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nPass the CIs.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Opus 4.7\n\nCloses #361 from dongjoon-hyun/SPARK-56709.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "13d0f4f0ea36474b221ae0b8b2919437a33d8039",
      "tree": "4c29cd7d62eced7f952871fc0aee9be7472c8964",
      "parents": [
        "c26041c5570912a5aeb76b8104521907b5aecba6"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Wed Apr 29 13:50:14 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Wed Apr 29 13:50:14 2026 -0700"
      },
      "message": "[SPARK-56668] Upgrade `actions/setup-java` to v5\n\n### What changes were proposed in this pull request?\n\nThis PR aims to upgrade `actions/setup-java` to `v5` like Apache Spark main repository.\n- https://github.com/apache/spark/pull/54377\n\n### Why are the changes needed?\n\nTo keep up with the latest major version of `actions/setup-java` (the current latest release is `v5.2.0`).\n\n- https://github.com/actions/setup-java/releases/tag/v5.0.0\n- https://github.com/actions/setup-java/releases/tag/v5.1.0\n- https://github.com/actions/setup-java/releases/tag/v5.2.0\n\n### Does this PR introduce _any_ user-facing change?\n\nNo. This is a CI-only change.\n\n### How was this patch tested?\n\nPass the CIs.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Opus 4.7\n\nCloses #360 from dongjoon-hyun/SPARK-56668.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "c26041c5570912a5aeb76b8104521907b5aecba6",
      "tree": "f1f99771c422f441a448063be3ec16704849a78e",
      "parents": [
        "89ae02fee94f74f4e6b32613db8a8c8f5cd97f92"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Thu Apr 16 13:14:31 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Thu Apr 16 13:14:31 2026 -0700"
      },
      "message": "[SPARK-56516] Upgrade `gRPC Swift Protobuf` to 2.3.0\n\n### What changes were proposed in this pull request?\n\nThis PR aims to upgrade `grpc-swift-protobuf` dependency to `2.3.0`.\n\n### Why are the changes needed?\n\nTo bring the latest bug fixes and improvements from `grpc-swift-protobuf` 2.3.0 which is tested with Swift 6.3 officially.\n\n- https://github.com/grpc/grpc-swift-protobuf/releases/tag/2.3.0\n  - https://github.com/grpc/grpc-swift-protobuf/pull/97\n  - https://github.com/grpc/grpc-swift-protobuf/pull/98\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nPass the CIs with the existing tests.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Opus 4\n\nThis patch had conflicts when merged, resolved by\nCommitter: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n\nCloses #358 from dongjoon-hyun/SPARK-56516.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "89ae02fee94f74f4e6b32613db8a8c8f5cd97f92",
      "tree": "2c69dda89213ad509b1c059a0db252c548cff154",
      "parents": [
        "9de8f17d7494cdaaeeddc08e51d880ebb45c8849"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Thu Apr 16 13:11:57 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Thu Apr 16 13:11:57 2026 -0700"
      },
      "message": "[SPARK-56517] Upgrade `gRPC Swift NIO Transport` to 2.7.0\n\n### What changes were proposed in this pull request?\n\nThis PR upgrades the `grpc-swift-nio-transport` dependency to `2.7.0`.\n\n### Why are the changes needed?\n\nTo adopt the latest `grpc-swift-nio-transport` release (`2.7.0`) which is tested with Swift 6.3 officially.\n- https://github.com/grpc/grpc-swift-nio-transport/releases/tag/2.7.0\n  - https://github.com/grpc/grpc-swift-nio-transport/pull/170\n  - https://github.com/grpc/grpc-swift-nio-transport/pull/172\n  - https://github.com/grpc/grpc-swift-nio-transport/pull/171\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nPass the CIs with the existing test suites.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Opus 4\n\nCloses #359 from dongjoon-hyun/SPARK-56517.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "9de8f17d7494cdaaeeddc08e51d880ebb45c8849",
      "tree": "e53455f291f8c1886a6e65eab09a3780a39aba27",
      "parents": [
        "d85682beab533274ffb8b60d352adeaf8c9a7dd7"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Thu Apr 16 13:10:37 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Thu Apr 16 13:10:37 2026 -0700"
      },
      "message": "[SPARK-56515] Upgrade `grpc-swift-2` to 2.4.0\n\n### What changes were proposed in this pull request?\n\nThis PR upgrades the `grpc-swift-2` dependency to `2.4.0`.\n\n### Why are the changes needed?\n\nTo stay current with the latest patch release of `grpc-swift-2` which is tested with Swift 6.3 officially.\n- https://github.com/grpc/grpc-swift-2/releases/tag/2.4.0\n  - https://github.com/grpc/grpc-swift-2/pull/44\n  - https://github.com/grpc/grpc-swift-2/pull/45\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nPass the CIs.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Opus 4\n\nCloses #357 from dongjoon-hyun/SPARK-56515.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "d85682beab533274ffb8b60d352adeaf8c9a7dd7",
      "tree": "4ffee117ebd4799db2ba44df8a92005aeab549f1",
      "parents": [
        "19bbbbbdde584ee2d6fd49f064fc722801912c14"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Wed Apr 15 18:11:23 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Wed Apr 15 18:11:23 2026 -0700"
      },
      "message": "[SPARK-56497] Upgrade the minimum `Swift` requirement to 6.3\n\n### What changes were proposed in this pull request?\n\nThis PR upgrades the minimum Swift requirement from 6.2 to 6.3.\n\n### Why are the changes needed?\n\nSwift 6.3 was released in April 2026. `SwiftPackageIndex` starts to show `Swift 6.2` finally from today.\n\n\u003cimg width\u003d\"684\" height\u003d\"132\" alt\u003d\"Screenshot 2026-04-15 at 15 26 04\" src\u003d\"https://github.com/user-attachments/assets/5d760d72-501e-44bf-bf62-038fc8f42aca\" /\u003e\n\nWe are ready to move on like the following. This PR keeps the project up to date with the latest Swift version.\n\n- #342\n- #344\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nPass the existing CI.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Code (claude-opus-4-6)\n\nCloses #356 from dongjoon-hyun/SPARK-56497.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "19bbbbbdde584ee2d6fd49f064fc722801912c14",
      "tree": "1f472b73f6f0ef32b2989fc15aeabd8b3f631182",
      "parents": [
        "cce103a8b5156f618392c9add74f70259eb8300c"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Tue Apr 14 09:48:00 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Tue Apr 14 09:48:00 2026 -0700"
      },
      "message": "[SPARK-56474] Rename `create_spark_jira.py` to `create_jira_and_branch.py`\n\n### What changes were proposed in this pull request?\n\nThis PR renames `dev/create_spark_jira.py` to `dev/create_jira_and_branch.py` like the Apache Spark main repository.\n\n- https://github.com/apache/spark/blob/master/dev/create_jira_and_branch.py\n\n### Why are the changes needed?\n\nRecently, Apache Spark community renames the file.\n- https://github.com/apache/spark/pull/55281\n\nThe script not only creates a JIRA issue but also creates a git branch and an initial commit. The new name better reflects the script\u0027s functionality.\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nN/A (file rename only).\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Code (Claude Opus 4.6)\n\nCloses #355 from dongjoon-hyun/SPARK-56474.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "cce103a8b5156f618392c9add74f70259eb8300c",
      "tree": "80d05db94a6ba8a40749d7efcbc4dae350648024",
      "parents": [
        "bdd0a14826f7d2c3817ed81d55d866181a23e972"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Fri Apr 10 06:34:36 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Fri Apr 10 06:34:36 2026 -0700"
      },
      "message": "[SPARK-56432] Use `4.2.0-preview4` instead of `RC1`\n\n### What changes were proposed in this pull request?\n\nThis PR updates the Apache Spark binary download URL in the `integration-test` job of `.github/workflows/build_and_test.yml` from the developer staging path to the official mirror-based download URL:\n\n- Before: `https://dist.apache.org/repos/dist/dev/spark/v4.2.0-preview4-rc1-bin/spark-4.2.0-preview4-bin-hadoop3.tgz`\n- After: `https://www.apache.org/dyn/closer.lua/spark/spark-4.2.0-preview4/spark-4.2.0-preview4-bin-hadoop3.tgz?action\u003ddownload`\n\n### Why are the changes needed?\n\nApache Spark 4.2.0-preview4 has been officially released, so the integration test should pull the binary from the official Apache mirror distribution endpoint instead of the RC staging area under `dist.apache.org/.../dev/`.\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nVerified via the `integration-test` job on GitHub Actions.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Opus 4.6\n\nCloses #354 from dongjoon-hyun/SPARK-56432.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "bdd0a14826f7d2c3817ed81d55d866181a23e972",
      "tree": "ba517fa60b2a920659a488fd036ac4313320feaf",
      "parents": [
        "b3368f553116b412d52e503b92cb7b59494bd8da"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Thu Apr 09 14:31:54 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Thu Apr 09 14:31:54 2026 -0700"
      },
      "message": "[SPARK-56425] Split `DataFrame.swift` into extension-based files\n\n### What changes were proposed in this pull request?\n\nThis PR splits the large `DataFrame.swift` (1,555 lines) into three extension-based files for better maintainability:\n\n- **`DataFrame.swift`** (339 lines): Actor definition, properties, initializers, and schema/metadata access\n- **`DataFrame+Transformations.swift`** (789 lines): Lazy transformation operations (select, filter, join, set operations, partitioning, grouping, etc.)\n- **`DataFrame+Actions.swift`** (524 lines): Action operations that trigger computation (collect, count, show, head/tail, explain, persistence, view creation, I/O, etc.)\n\nTo enable the extension-based split, the following members were changed from `private` to `internal`:\n- `_schema`, `batches`, `setSchema()`, `addBatches()`, `withGPRC()`\n\n### Why are the changes needed?\n\nThe `DataFrame.swift` file had grown to 1,555 lines with schema access, transformations, actions, aggregation, and I/O all in a single file. Splitting into focused extension files improves code navigability and maintainability.\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nPass the existing CI.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Code (claude-opus-4-6)\n\nCloses #353 from dongjoon-hyun/SPARK-56425.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "b3368f553116b412d52e503b92cb7b59494bd8da",
      "tree": "6a141f812bd7464535191e457b522a81d6a8a6ab",
      "parents": [
        "c0c3e747b3ae407e1061adcc1106e838b105bd57"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Thu Apr 09 14:29:54 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Thu Apr 09 14:29:54 2026 -0700"
      },
      "message": "[SPARK-56422] Introduce `createPlan` method to deduplicate `Plan` creation pattern\n\n### What changes were proposed in this pull request?\n\nThis PR introduces a `createPlan` static helper method in `SparkConnectClient` to deduplicate the repeated `Plan` creation pattern across 27 functions.\n\n### Why are the changes needed?\n\nThe following 4-line boilerplate pattern was repeated 27 times:\n```swift\nvar relation \u003d Relation()\nrelation.xxx \u003d xxx\nvar plan \u003d Plan()\nplan.opType \u003d .root(relation)\nreturn plan\n```\n\nThis is replaced with a single-line call:\n```swift\nreturn createPlan { $0.xxx \u003d xxx }\n```\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nPass the existing CI.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Code (claude-opus-4-6)\n\nCloses #351 from dongjoon-hyun/SPARK-56422.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "c0c3e747b3ae407e1061adcc1106e838b105bd57",
      "tree": "bd2fa7c26c2984f466dfd9eda3a68bc5c7b3351f",
      "parents": [
        "34aeece5345064f3847c1b4bcbd0900587c65269"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Thu Apr 09 11:59:49 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Thu Apr 09 11:59:49 2026 -0700"
      },
      "message": "[SPARK-56423] Remove manual `Equatable` implementation from `StorageLevel`\n\n### What changes were proposed in this pull request?\n\nThis PR removes the manual `Equatable` implementation from `StorageLevel` and uses Swift\u0027s automatic synthesis instead.\n\n### Why are the changes needed?\n\nThe manual `\u003d\u003d` operator compares all stored properties, which is identical to what Swift synthesizes automatically for `Equatable` structs. The manual implementation is unnecessary boilerplate.\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nPass the existing CI.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Code (Claude Opus 4.6)\n\nCloses #352 from dongjoon-hyun/SPARK-56423.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "34aeece5345064f3847c1b4bcbd0900587c65269",
      "tree": "4f7a4dcc9ff351872b9cbf2ffe55f3d4e93026e3",
      "parents": [
        "4de7d391530f1ee332c22fda108a68b4aa4959b7"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Thu Apr 09 11:34:52 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Thu Apr 09 11:34:52 2026 -0700"
      },
      "message": "[SPARK-56421] Introduce `IntervalType` protocol for `(DayTime|YearMonth)Interval`\n\n### What changes were proposed in this pull request?\n\nThis PR introduces an `IntervalType` protocol to deduplicate the identical `toString()` logic in `YearMonthInterval` and `DayTimeInterval` extensions in `Extension.swift`.\n\n### Why are the changes needed?\n\nBoth `YearMonthInterval` and `DayTimeInterval` had identical `toString()` implementations (differing only in `fieldToString` mappings), violating DRY principle. Extracting the shared logic into a protocol default implementation improves maintainability.\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nPass the CIs.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Code (Claude Opus 4.6)\n\nCloses #350 from dongjoon-hyun/SPARK-56421.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "4de7d391530f1ee332c22fda108a68b4aa4959b7",
      "tree": "a680ff8094f2c2486e0eddb54972269dbc0e07fa",
      "parents": [
        "9f0d802cc64e7eaac287d5b8ea4ca4019bb2c795"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Thu Apr 09 10:57:43 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Thu Apr 09 10:57:43 2026 -0700"
      },
      "message": "[SPARK-56420] Introduce `toExpression` method to deduplicate literal conversions\n\n### What changes were proposed in this pull request?\n\nThis PR extracts a common `toExpression(_ value: Sendable) -\u003e Spark_Connect_Expression` helper method to deduplicate the identical `Sendable` → `ExpressionLiteral` switch statements in `toSparkConnectPlan(_ posArguments:)` and `toSparkConnectPlan(_ namedArguments:)`.\n\n### Why are the changes needed?\n\nThe two `toSparkConnectPlan` overloads in `Extension.swift` contained identical 15-line switch statements for converting `Sendable` values to `ExpressionLiteral`. Extracting this into a shared private helper improves maintainability and reduces the risk of the two copies diverging in future changes.\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nPass the CIs.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Code (Claude Opus 4.6)\n\nCloses #349 from dongjoon-hyun/SPARK-56420.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "9f0d802cc64e7eaac287d5b8ea4ca4019bb2c795",
      "tree": "e6f133f8ba916297376078281462fe4e3ec08097",
      "parents": [
        "cdeaa46801b97e17439edb005d4746e1bd410a34"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Thu Apr 09 10:56:58 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Thu Apr 09 10:56:58 2026 -0700"
      },
      "message": "[SPARK-56419] Use consistent `CaseInsensitiveDictionary` initialization style\n\n### What changes were proposed in this pull request?\n\nThis PR unifies `CaseInsensitiveDictionary` initialization style by replacing `CaseInsensitiveDictionary([:])` with `CaseInsensitiveDictionary()` in `DataFrameReader` and `DataStreamReader`.\n\n### Why are the changes needed?\n\nThe codebase had inconsistent initialization styles: `DataFrameReader` and `DataStreamReader` used `CaseInsensitiveDictionary([:])`, while `DataFrameWriter`, `DataFrameWriterV2`, and `DataStreamWriter` used `CaseInsensitiveDictionary()`. Since the initializer has a default parameter (`\u003d [:]`), both are functionally identical. This PR adopts the more concise `CaseInsensitiveDictionary()` style consistently.\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nPass the existing CI.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Code (Claude Opus 4.6, 1M context)\n\nCloses #348 from dongjoon-hyun/SPARK-56419.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "cdeaa46801b97e17439edb005d4746e1bd410a34",
      "tree": "a35305a80f874632b022bc9a00e5fef4b9f0ec79",
      "parents": [
        "f296982f2eb089bb2d86fce3e593c84315d9b9b1"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Tue Apr 07 13:36:06 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Tue Apr 07 13:36:06 2026 -0700"
      },
      "message": "[SPARK-56380] Use `4.2.0-preview4` RC1 for Spark 4.2 integration tests\n\n### What changes were proposed in this pull request?\n\nThis PR updates the integration test CI to use `Apache Spark 4.2.0-preview4` RC1.\n\n### Why are the changes needed?\n\nTo test against the latest `Apache Spark 4.2.0-preview4` release candidate.\n- [[VOTE] Release Spark 4.2.0-preview4 (RC1)](https://lists.apache.org/thread/glh5o31j977pvst3vntv9wc3rmh5odfp)\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nPass the CIs.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Code (Opus 4.6)\n\nCloses #347 from dongjoon-hyun/SPARK-56380.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "f296982f2eb089bb2d86fce3e593c84315d9b9b1",
      "tree": "85c6b267b4ef67e4794c84b227a61801cc5c1321",
      "parents": [
        "5fc3ff80c2b42681f030bffadeab10dad230773a"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Mon Mar 30 11:59:07 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Mon Mar 30 11:59:07 2026 -0700"
      },
      "message": "[SPARK-56290] Rename `build-macos-26-swift(62 -\u003e 63)` in CI\n\n### What changes were proposed in this pull request?\n\nThis PR renames the `build-macos-26-swift62` job to `build-macos-26-swift63` in the GitHub Actions workflow to reflect the actual Swift 6.3 usage.\n\n### Why are the changes needed?\n\nSince SPARK-56264,, the project always uses Swift 6.3 in CIs. However, the macOS build job ID still contained `swift62`, which was outdated and inconsistent.\n- https://github.com/apache/spark-connect-swift/pull/342\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nThis is a job name change only. The existing CI will validate the workflow.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Code (claude-opus-4-6)\n\nCloses #346 from dongjoon-hyun/SPARK-56290.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "5fc3ff80c2b42681f030bffadeab10dad230773a",
      "tree": "e5841d6b2db58bd255e256cf7ce1f591f6f2b4d0",
      "parents": [
        "f43e83d08e3f40faa99851eb631ca8b74ea42072"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Mon Mar 30 11:31:07 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Mon Mar 30 11:31:07 2026 -0700"
      },
      "message": "[SPARK-56288] Upgrade `gRPC Swift NIO Transport` to 2.6.2\n\n### What changes were proposed in this pull request?\n\nThis PR upgrades `gRPC Swift NIO Transport` to 2.6.2.\n\n### Why are the changes needed?\n\nTo use the latest version of `gRPC Swift NIO Transport`.\n\n- https://github.com/grpc/grpc-swift-nio-transport/releases/tag/2.6.2\n  - https://github.com/grpc/grpc-swift-nio-transport/pull/169\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nPass the CIs.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Code (Claude Opus 4.6)\n\nCloses #345 from dongjoon-hyun/SPARK-56288.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "f43e83d08e3f40faa99851eb631ca8b74ea42072",
      "tree": "485d460efb30169c515058554adefeaebf5b8ff0",
      "parents": [
        "3cfd11496e482edaf1ffd09f1adb57413f99fce4"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Fri Mar 27 14:02:33 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Fri Mar 27 14:02:33 2026 -0700"
      },
      "message": "[SPARK-56266] Migrate `Examples` to Swift 6.3\n\n### What changes were proposed in this pull request?\n\nThis PR migrates all Swift `Examples` to `Swift 6.3`-based projects.\n\n- `Package.swift` (5 files): `swift-tools-version: 6.2` → `swift-tools-version: 6.3`\n- `Dockerfile` (5 files): `swift:6.2` → `swift:6.3` and `swift-6.2.4-RELEASE` → `swift-6.3-RELEASE` static Linux SDK\n\n### Why are the changes needed?\n\nWe had better recommend users to use the latest Swift version.\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nManual review.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Code (claude-opus-4-6)\n\nCloses #344 from dongjoon-hyun/SPARK-56266.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "3cfd11496e482edaf1ffd09f1adb57413f99fce4",
      "tree": "9555f4f9e71b6af78e118f102512b7a9b1472ecd",
      "parents": [
        "1e9e743a720527e1f13ae03301691586dbf54876"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Fri Mar 27 12:45:09 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Fri Mar 27 12:45:09 2026 -0700"
      },
      "message": "[SPARK-56265] Make `Examples` Docker image sizes up-to-date with the published images\n\n### What changes were proposed in this pull request?\n\nThis PR updates the Docker image sizes in all 6 `Examples` README files to reflect the current sizes after the `musl` Static Linux SDK migration.\n- https://github.com/apache/spark-connect-swift/pull/339\n\n### Why are the changes needed?\n\nThe Swift-based Docker image sizes were reduced by ~50% (67.2MB → 32.8MB), but the README files still showed the old sizes.\n- https://github.com/apache/spark-connect-swift/pull/339\n- https://github.com/apache/spark-connect-swift/actions/workflows/publish_image.yml\n  - https://github.com/apache/spark-connect-swift/actions/runs/23529438952\n\nSince the updated images are published like the following, we had better update our documentations.\n- https://hub.docker.com/r/apache/spark-connect-swift/tags\n\n```\n$ docker images\nIMAGE                                             ID             DISK USAGE   CONTENT SIZE   EXTRA\napache/spark-connect-swift:app                    6a04254f603e        116MB         32.8MB\napache/spark-connect-swift:pi                     b4d99bb06afe        116MB         32.8MB\napache/spark-connect-swift:pyspark-connect        28125cf3a670       1.63GB          609MB\napache/spark-connect-swift:spark-sql              3e13bf9066e7        116MB         32.8MB\napache/spark-connect-swift:stream                 de938ec0a289        116MB         32.8MB\napache/spark-connect-swift:web                    240d2adab124        130MB         37.1MB\n```\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nManual review.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Code (claude-opus-4-6)\n\nCloses #343 from dongjoon-hyun/SPARK-56265.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "1e9e743a720527e1f13ae03301691586dbf54876",
      "tree": "73dd69d43b0b34586d84be819924dd0735283f23",
      "parents": [
        "6f46753c402d450f426f5cdd9d840d0b0a266dcf"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Fri Mar 27 12:04:17 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Fri Mar 27 12:04:17 2026 -0700"
      },
      "message": "[SPARK-56264] Use `Swift 6.3` always in CIs\n\n### What changes were proposed in this pull request?\n\nThis PR standardizes all Ubuntu Docker-based CI jobs to use `Swift 6.3` and removes the now-redundant `build-ubuntu-swift63` job.\n\n### Why are the changes needed?\n\nThe `build-ubuntu-swift63` job was added to test Swift 6.3 compatibility separately. Now that all Ubuntu jobs should use Swift 6.3, this dedicated job becomes a duplicate of `build-ubuntu-latest`. Standardizing on a single Swift version simplifies CI maintenance.\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nCI should pass with the updated Swift 6.3 Docker images.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Code (claude-opus-4-6)\n\nCloses #342 from dongjoon-hyun/SPARK-56264.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "6f46753c402d450f426f5cdd9d840d0b0a266dcf",
      "tree": "0fc54a77a098139cb621ce9ebd7c91e1c198a3e5",
      "parents": [
        "5d6569915b7168799bfdc444c1edce50cf70b949"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Fri Mar 27 12:02:11 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Fri Mar 27 12:02:11 2026 -0700"
      },
      "message": "[SPARK-56263] Upgrade `gRPC Swift NIO Transport` to 2.6.1\n\n### What changes were proposed in this pull request?\n\nThis PR upgrades `gRPC Swift NIO Transport` to 2.6.1.\n\n### Why are the changes needed?\n\nTo keep the dependency up to date with the latest upstream release.\n- https://github.com/grpc/grpc-swift-nio-transport/releases/tag/2.6.1\n  - https://github.com/grpc/grpc-swift-nio-transport/pull/166\n  - https://github.com/grpc/grpc-swift-nio-transport/pull/167\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nPass the existing CI.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Code (claude-opus-4-6)\n\nCloses #341 from dongjoon-hyun/SPARK-56263.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "5d6569915b7168799bfdc444c1edce50cf70b949",
      "tree": "5f483aff0db249940cbf3908fecb1730b16183ee",
      "parents": [
        "6b88929c627eabd594a966891d26243b5e8958dc"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Fri Mar 27 11:46:32 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Fri Mar 27 11:46:32 2026 -0700"
      },
      "message": "[SPARK-56261] Use `Xcode 26.4` in CIs\n\n### What changes were proposed in this pull request?\n\nThis PR adds `Select Xcode 26.4` step to all 8 macOS jobs in the `build_and_test.yml` GitHub Actions workflow.\n\n### Why are the changes needed?\n\n`Xcode 26.4` is released officially.\n- https://developer.apple.com/documentation/xcode-release-notes/xcode-26_4-release-notes\n\u003e Xcode 26.4 includes Swift 6.3 and SDKs for iOS 26.4, iPadOS 26.4, tvOS 26.4, macOS 26.4, and visionOS 26.4.\n\nTo ensure all macOS CI jobs use Xcode 26.4 (and macOS SDK 26.4) explicitly, rather than relying on the default Xcode version (26.2) provided by the `macos-26` runner.\n\n- https://github.com/actions/runner-images/blob/main/images/macos/macos-26-arm64-Readme.md\n\n\u003cimg width\u003d\"248\" height\u003d\"412\" alt\u003d\"Screenshot 2026-03-27 at 11 26 19\" src\u003d\"https://github.com/user-attachments/assets/654a4b91-556c-4968-aefe-385b84f68683\" /\u003e\n\n\u003cimg width\u003d\"679\" height\u003d\"281\" alt\u003d\"Screenshot 2026-03-27 at 11 28 23\" src\u003d\"https://github.com/user-attachments/assets/9096e9eb-be0d-48b4-8069-3c33aff36484\" /\u003e\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nCI should test itself.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Code (claude-opus-4-6)\n\nCloses #340 from dongjoon-hyun/SPARK-56261.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "6b88929c627eabd594a966891d26243b5e8958dc",
      "tree": "1122a8077c5c0941c9110b3b69c67ce73cc2b5e0",
      "parents": [
        "1decdfbeccf472b6df861e851fdb65c86bbe5634"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Wed Mar 25 00:13:46 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Wed Mar 25 00:13:46 2026 -0700"
      },
      "message": "[SPARK-56197] Use `musl` Static Linux SDK for `Examples` Docker images\n\n### What changes were proposed in this pull request?\n\nThis PR migrates all 5 Swift example Dockerfiles to use the Swift Static Linux SDK with `musl`, replacing the previous `--static-swift-stdlib` (glibc) approach in order to minimize the docker image, **50% (67.2MB -\u003e 33.4MB)**.\n\n```diff\n$ docker images apache/spark-connect-swift:pi\nIMAGE                           ID             DISK USAGE   CONTENT SIZE   EXTRA\n-apache/spark-connect-swift:pi   b9bf9cb20548        287MB         67.2MB\n+apache/spark-connect-swift:pi   124469e785c6        116MB         33.4MB\n```\n\nChanges per Dockerfile:\n- Install Swift 6.2.4 Static Linux SDK via `ADD` + `swift sdk install`\n- Build with `--swift-sdk ${arch}-swift-linux-musl` instead of `--static-swift-stdlib`\n- Strip binaries to reduce image size\n- Use `gcr.io/distroless/static-debian12:nonroot` instead of `gcr.io/distroless/cc-debian13:nonroot`\n- Update binary path glob from `*-unknown-linux-gnu` to `*-swift-linux-musl`\n\n### Why are the changes needed?\n\nThe previous approach (`--static-swift-stdlib`) only statically linked the Swift standard library while still dynamically linking glibc. With the `musl` Static Linux SDK, binaries are fully statically linked with no external dependencies, enabling the use of a smaller `distroless/static` runtime image instead of `distroless/cc`.\n\nSince the difference of the base distroless images is 11MB, the `musl` reduces the app size roughly 23MB.\n```\n$ docker images\nIMAGE                                       ID             DISK USAGE   CONTENT SIZE   EXTRA\ngcr.io/distroless/cc-debian13:nonroot       9c4fe2381c2e       53.5MB         10.9MB\ngcr.io/distroless/static-debian12:nonroot   a9329520abc4       5.54MB          139kB\n```\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nManual Docker build and verification.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Code (claude-opus-4-6)\n\nCloses #339 from dongjoon-hyun/SPARK-56197.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "1decdfbeccf472b6df861e851fdb65c86bbe5634",
      "tree": "1bce1b5320f3d1696860f20ec71d5e7f6a3576c1",
      "parents": [
        "b631f588d076355323999abd1fcac9a78c31e576"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Wed Mar 25 00:03:40 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Wed Mar 25 00:03:40 2026 -0700"
      },
      "message": "[SPARK-56196] Use official `Swift 6.3` Docker image instead of nightly\n\n### What changes were proposed in this pull request?\n\nThis PR replaces the nightly Swift 6.3 Docker image (`swiftlang/swift:nightly-6.3-amazonlinux2`) with the official Swift 6.3 release image (`swift:6.3`) in the `build-ubuntu-swift63` CI job.\n\n### Why are the changes needed?\n\nSwift 6.3 has been officially released and its Docker image is now available on Docker Hub. We should use the stable release image instead of the nightly build for CI reliability and consistency with other jobs that use `swift:6.2`.\n\n- https://www.swift.org/blog/swift-6.3-released/\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nCI should pass with the official `swift:6.3` image.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Code (Claude Opus 4.6)\n\nCloses #338 from dongjoon-hyun/SPARK-56196.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "b631f588d076355323999abd1fcac9a78c31e576",
      "tree": "dd713486b372eb9e2bca444888ef64c6c63dedc4",
      "parents": [
        "d741ff5b99ff5b4c1b297ca0c19f333add751a0a"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Tue Mar 24 22:24:42 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Tue Mar 24 22:24:42 2026 -0700"
      },
      "message": "[SPARK-56191] Upgrade `gRPC Swift NIO Transport` to 2.6.0\n\n### What changes were proposed in this pull request?\n\nThis PR upgrades `gRPC Swift NIO Transport` to 2.6.0.\n\n### Why are the changes needed?\n\nTo keep the dependency up to date with the latest upstream release.\n- https://github.com/grpc/grpc-swift-nio-transport/releases/tag/2.6.0\n  - https://github.com/grpc/grpc-swift-nio-transport/pull/157\n  - https://github.com/grpc/grpc-swift-nio-transport/pull/159\n  - https://github.com/grpc/grpc-swift-nio-transport/pull/163\n  - https://github.com/grpc/grpc-swift-nio-transport/pull/164\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nPass the existing CI.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Code (claude-opus-4-6)\n\nCloses #337 from dongjoon-hyun/SPARK-56191.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "d741ff5b99ff5b4c1b297ca0c19f333add751a0a",
      "tree": "8d7e1f3e859c4a302a828c2ca1903f06daf0e36a",
      "parents": [
        "b341aa8f35f4b73403af5c0f3a52990e856ec2b3"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Mon Mar 23 10:43:16 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Mon Mar 23 10:43:16 2026 -0700"
      },
      "message": "[SPARK-56149] Upgrade `gRPC Swift NIO Transport` to 2.5.0\n\n### What changes were proposed in this pull request?\n\nThis PR upgrades `gRPC Swift NIO Transport` to 2.5.0.\n\n### Why are the changes needed?\n\nTo use the latest version.\n- https://github.com/grpc/grpc-swift-nio-transport/releases/tag/2.5.0\n  - https://github.com/grpc/grpc-swift-nio-transport/pull/162\n  - https://github.com/grpc/grpc-swift-nio-transport/pull/160\n  - https://github.com/grpc/grpc-swift-nio-transport/pull/161\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nPass the existing CI.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Code (Claude Opus 4.6)\n\nCloses #335 from dongjoon-hyun/SPARK-56149.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "b341aa8f35f4b73403af5c0f3a52990e856ec2b3",
      "tree": "979d020ebe92e2bafc09727f5bd457f8e6f40de8",
      "parents": [
        "dc1f02dcd87be03203210b94be1d06be2e217fcd"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Mon Mar 23 10:42:31 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Mon Mar 23 10:42:31 2026 -0700"
      },
      "message": "[SPARK-56150] Update `README.md` with the docker image sizes\n\n### What changes were proposed in this pull request?\n\nThis PR aims to update `README.md` with the docker image sizes.\n\n### Why are the changes needed?\n\nTo make `README.md` up-to-date.\n\n**BEFORE**\n\u003cimg width\u003d\"863\" height\u003d\"224\" alt\u003d\"Screenshot 2026-03-22 at 23 40 17\" src\u003d\"https://github.com/user-attachments/assets/5ae2a66b-0d46-4138-bc7c-333cb9de7666\" /\u003e\n\n**AFTER**\n- https://github.com/dongjoon-hyun/spark-connect-swift/tree/SPARK-56150\n\u003cimg width\u003d\"862\" height\u003d\"439\" alt\u003d\"Screenshot 2026-03-22 at 23 39 48\" src\u003d\"https://github.com/user-attachments/assets/9f193f0c-06fc-4295-ad9f-1bc915b90325\" /\u003e\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nManual review.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: `Gemini 3.1 Pro (High)` on `Antigravity`.\n\nCloses #336 from dongjoon-hyun/SPARK-56150.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    },
    {
      "commit": "dc1f02dcd87be03203210b94be1d06be2e217fcd",
      "tree": "ded579a128b37cdc72913a4e9a20fda1d50214ea",
      "parents": [
        "f415742f5036c704c9d36c818d2986a66b6569c8"
      ],
      "author": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Fri Mar 20 19:37:08 2026 -0700"
      },
      "committer": {
        "name": "Dongjoon Hyun",
        "email": "dongjoon@apache.org",
        "time": "Fri Mar 20 19:37:08 2026 -0700"
      },
      "message": "[SPARK-56124] Sync `docker`-related GitHub Actions versions to the ASF approved patterns\n\n### What changes were proposed in this pull request?\n\nThis PR aims to sync `docker`-related GitHub Actions versions to the ASF approved patterns.\n\n### Why are the changes needed?\n\nCurrently, the CI is blocked by the ASF check because of the recent change.\n- https://github.com/apache/spark-connect-swift/actions/runs/23365458370\n\n- https://github.com/apache/infrastructure-actions/pull/547\n\n\u003e The actions docker/setup-qemu-actionv3, docker/setup-buildx-actionv3, docker/login-actionv3, and docker/build-push-actionv6 are not allowed in apache/spark-connect-swift because all actions must be from a repository owned by your enterprise, created by GitHub, or match one of the patterns\n\nAs of now, the updated patterns are the following.\n\n- https://github.com/apache/infrastructure-actions/blob/07f5f9d2b05fe0ec9886e3ef0a9d79797817f0cb/approved_patterns.yml#L100-L104\n```\n- docker/build-push-action10e90e3645eae34f1e60eeb005ba3a3d33f178e8\n- docker/login-actionc94ce9fb468520275223c153574b00df6fe4bcc9\n- docker/metadata-actionc299e40c65443455700f0fdfc63efafe5b349051\n- docker/setup-buildx-action8d2750c68a42422c14e847fe6c8ac0403b4cbd6f\n- docker/setup-qemu-action29109295f81e9208d7d86ff1c6c12d2833863392\n```\n\n### Does this PR introduce _any_ user-facing change?\n\nNo.\n\n### How was this patch tested?\n\nManual review because the updated CI should be triggered manually.\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Claude Code (claude-opus-4-6)\n\nCloses #334 from dongjoon-hyun/SPARK-56124.\n\nAuthored-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\nSigned-off-by: Dongjoon Hyun \u003cdongjoon@apache.org\u003e\n"
    }
  ],
  "next": "f415742f5036c704c9d36c818d2986a66b6569c8"
}
