This is an automated email from the ASF dual-hosted git repository.
dongjoon-hyun pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/spark-connect-swift.git
The following commit(s) were added to refs/heads/main by this push:
new f1e2187 [SPARK-59940] Use Swift 6.4 as the minimum version and unify
CI on `xcode-27`
f1e2187 is described below
commit f1e2187db0019e4331559c79b708cfa7c9088412
Author: Dongjoon Hyun <[email protected]>
AuthorDate: Thu Oct 1 17:17:20 2026 -0700
[SPARK-59940] Use Swift 6.4 as the minimum version and unify CI on
`xcode-27`
### What changes were proposed in this pull request?
This PR aims to use Swift 6.4 as the minimum version and unify CI on
`xcode-27`.
- Bump `swift-tools-version` from `6.3.2` to `6.4.0` and update the
documentation (`README.md`, `AGENTS.md`, `GettingStarted.md`).
- Remove duplicate CI jobs: `build-macos-26-swift63` and
`integration-test-mac-spark42-swift64`.
- Move the remaining macOS jobs from `macos-26` (Xcode 26.6) to `xcode-27`.
### Why are the changes needed?
[Swift 6.4.0](https://www.swift.org/blog/swift-6.4-released/) was released
on September 15, 2026. The Linux CI jobs and `Examples/*` already use it, so
the minimum version should match what CI actually tests. Note that `xcode-27`
is still in [public
preview](https://github.blog/changelog/2026-09-10-xcode-27-runner-image-now-runs-on-macos-27)
(as of September 10, 2026).
### Does this PR introduce _any_ user-facing change?
Yes. Building the package now requires Swift 6.4 or later. There is no API
or behavior change.
### How was this patch tested?
Verified locally with Swift 6.4.0 (`swift build -c release`). The
`xcode-27` jobs are verified by this PR's CI.
### Was this patch authored or co-authored using generative AI tooling?
Generated-by: Claude Sonnet 5.5
Closes #581 from dongjoon-hyun/SPARK-59940.
Authored-by: Dongjoon Hyun <[email protected]>
Signed-off-by: Dongjoon Hyun <[email protected]>
---
.github/workflows/build_and_test.yml | 60 +++-------------------
AGENTS.md | 4 +-
Package.swift | 2 +-
README.md | 2 +-
.../Documentation.docc/GettingStarted.md | 2 +-
5 files changed, 13 insertions(+), 57 deletions(-)
diff --git a/.github/workflows/build_and_test.yml
b/.github/workflows/build_and_test.yml
index 777af35..b548ffc 100644
--- a/.github/workflows/build_and_test.yml
+++ b/.github/workflows/build_and_test.yml
@@ -37,17 +37,7 @@ jobs:
with:
config: .github/.licenserc.yaml
- build-macos-26-swift63:
- runs-on: macos-26
- timeout-minutes: 20
- steps:
- - uses: actions/checkout@v7
- - name: Select Xcode 26.6
- run: sudo xcode-select -s /Applications/Xcode_26.6.app/Contents/Developer
- - name: Build
- run: swift build -c release
-
- build-macos-26-swift64:
+ build-macos:
runs-on: xcode-27
timeout-minutes: 20
steps:
@@ -130,14 +120,12 @@ jobs:
docker run --add-host=host.docker.internal:host-gateway -v $PWD:/spark
-w /spark -e SPARK_REMOTE='sc://host.docker.internal:15003' swift:6.4.0 swift
test --no-parallel -c release
integration-test-mac-spark41:
- runs-on: macos-26
+ runs-on: xcode-27
timeout-minutes: 20
env:
SPARK_LOCAL_IP: localhost
steps:
- uses: actions/checkout@v7
- - name: Select Xcode 26.6
- run: sudo xcode-select -s /Applications/Xcode_26.6.app/Contents/Developer
- name: Build
run: swift test --filter NOTHING -c release
- uses: ./.github/actions/setup-spark
@@ -153,14 +141,12 @@ jobs:
swift test --no-parallel -c release
integration-test-mac-spark42:
- runs-on: macos-26
+ runs-on: xcode-27
timeout-minutes: 20
env:
SPARK_LOCAL_IP: localhost
steps:
- uses: actions/checkout@v7
- - name: Select Xcode 26.6
- run: sudo xcode-select -s /Applications/Xcode_26.6.app/Contents/Developer
- name: Build
run: swift test --filter NOTHING -c release
- uses: ./.github/actions/setup-spark
@@ -175,35 +161,13 @@ jobs:
cd -
swift test --no-parallel -c release
- integration-test-mac-spark42-swift64:
- runs-on: xcode-27
- timeout-minutes: 20
- env:
- SPARK_LOCAL_IP: localhost
- steps:
- - uses: actions/checkout@v7
- - name: Build
- run: swift test --filter NOTHING -c release
- - uses: ./.github/actions/setup-spark
- with:
- version: 4.2.0
- sha512:
3a6559e8546ff387db8fe7a04b8fe4008853b467b972c2e343df8e14a81450534777719fc5d4998dd96519a86fdf9de140cee753c61e2e94db044d5f9555ddc4
- - name: Test
- run: |
- cd /tmp/spark/sbin
- ./start-connect-server.sh -c spark.sql.timeType.enabled=true
- cd -
- swift test --no-parallel -c release
-
integration-test-mac-spark43:
- runs-on: macos-26
+ runs-on: xcode-27
timeout-minutes: 20
env:
SPARK_LOCAL_IP: localhost
steps:
- uses: actions/checkout@v7
- - name: Select Xcode 26.6
- run: sudo xcode-select -s /Applications/Xcode_26.6.app/Contents/Developer
- name: Build
run: swift test --filter NOTHING -c release
- uses: ./.github/actions/setup-spark
@@ -219,14 +183,12 @@ jobs:
swift test --no-parallel -c release
integration-test-mac:
- runs-on: macos-26
+ runs-on: xcode-27
timeout-minutes: 20
env:
SPARK_LOCAL_IP: localhost
steps:
- uses: actions/checkout@v7
- - name: Select Xcode 26.6
- run: sudo xcode-select -s /Applications/Xcode_26.6.app/Contents/Developer
- name: Build
run: swift test --filter NOTHING -c release
- uses: ./.github/actions/setup-spark
@@ -241,15 +203,13 @@ jobs:
swift test --no-parallel -c release
integration-test-token:
- runs-on: macos-26
+ runs-on: xcode-27
timeout-minutes: 20
env:
SPARK_LOCAL_IP: localhost
SPARK_CONNECT_AUTHENTICATE_TOKEN: ${{ github.run_id }}-${{
github.run_attempt }}
steps:
- uses: actions/checkout@v7
- - name: Select Xcode 26.6
- run: sudo xcode-select -s /Applications/Xcode_26.6.app/Contents/Developer
- name: Build
run: swift test --filter NOTHING -c release
- uses: ./.github/actions/setup-spark
@@ -264,15 +224,13 @@ jobs:
swift test --no-parallel -c release
integration-test-mac-spark4-iceberg:
- runs-on: macos-26
+ runs-on: xcode-27
timeout-minutes: 20
env:
SPARK_LOCAL_IP: localhost
SPARK_ICEBERG_TEST_ENABLED: "true"
steps:
- uses: actions/checkout@v7
- - name: Select Xcode 26.6
- run: sudo xcode-select -s /Applications/Xcode_26.6.app/Contents/Developer
- name: Install Java
uses: actions/setup-java@v6
with:
@@ -298,15 +256,13 @@ jobs:
swift test --filter IcebergTest -c release
integration-test-mac-spark41-iceberg:
- runs-on: macos-26
+ runs-on: xcode-27
timeout-minutes: 20
env:
SPARK_LOCAL_IP: localhost
SPARK_ICEBERG_TEST_ENABLED: "true"
steps:
- uses: actions/checkout@v7
- - name: Select Xcode 26.6
- run: sudo xcode-select -s /Applications/Xcode_26.6.app/Contents/Developer
- name: Install Java
uses: actions/setup-java@v6
with:
diff --git a/AGENTS.md b/AGENTS.md
index f7a77cd..f807153 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -18,9 +18,9 @@ catalog, ML) over gRPC, exchanging results in Apache Arrow
format.
## Tech stack & requirements
-- **Swift 6.3.2+** with Swift Package Manager (`swift-tools-version: 6.3.2`).
+- **Swift 6.4.0+** with Swift Package Manager (`swift-tools-version: 6.4.0`).
- **Platforms**: macOS 15+, iOS 18+, watchOS 11+, tvOS 18+, and Linux
- (built and tested on Ubuntu x86_64 & arm64 with the Swift 6.3.2 toolchain).
+ (built and tested on Ubuntu x86_64 & arm64 with the Swift 6.4.0 toolchain).
- **Server**: Apache Spark 4.x Connect server (tested against 4.0.4 / 4.1.3 /
4.2.0).
- **Dependencies** (all pinned with `exact` in [Package.swift](Package.swift)):
`grpc-swift-2`, `grpc-swift-protobuf`, `grpc-swift-nio-transport`,
diff --git a/Package.swift b/Package.swift
index d0d0191..8bbeb2f 100644
--- a/Package.swift
+++ b/Package.swift
@@ -1,4 +1,4 @@
-// swift-tools-version: 6.3.2
+// swift-tools-version: 6.4.0
// The swift-tools-version declares the minimum version of Swift required to
build this package.
//
// Licensed to the Apache Software Foundation (ASF) under one
diff --git a/README.md b/README.md
index 9993a8f..34057ac 100644
--- a/README.md
+++ b/README.md
@@ -24,7 +24,7 @@ For example, a user can develop and ship a lightweight
Swift-based SparkPi app.
## Requirements
- [Apache Spark 4.2.0 (July
2026)](https://github.com/apache/spark/releases/tag/v4.2.0)
-- [Swift 6.3.2 (May 2026)](https://swift.org)
+- [Swift 6.4.0 (Sep 2026)](https://swift.org)
- [gRPC Swift 2.4.3 (September
2026)](https://github.com/grpc/grpc-swift-2/releases/tag/2.4.3)
- [gRPC Swift Protobuf 2.4.1 (June
2026)](https://github.com/grpc/grpc-swift-protobuf/releases/tag/2.4.1)
- [gRPC Swift NIO Transport 2.10.0 (September
2026)](https://github.com/grpc/grpc-swift-nio-transport/releases/tag/2.10.0)
diff --git a/Sources/SparkConnect/Documentation.docc/GettingStarted.md
b/Sources/SparkConnect/Documentation.docc/GettingStarted.md
index 78e3300..255d0bb 100644
--- a/Sources/SparkConnect/Documentation.docc/GettingStarted.md
+++ b/Sources/SparkConnect/Documentation.docc/GettingStarted.md
@@ -25,7 +25,7 @@ targets: [
## Prerequisites
-- Swift 6.3.2 or later
+- Swift 6.4.0 or later
- macOS 15+, iOS 18+, watchOS 11+, or tvOS 18+
- A running Apache Spark cluster with Spark Connect enabled
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]