diff --git a/.github/workflows/compatibility_tests.yml b/.github/workflows/compatibility_tests.yml
index b66aaccf..ce12df1c 100644
--- a/.github/workflows/compatibility_tests.yml
+++ b/.github/workflows/compatibility_tests.yml
@@ -14,7 +14,7 @@ jobs:
matrix:
include:
- os: macos-15
- xcode-version: "16.4" # Swift 6.1.2
+ xcode-version: "26.3" # Swift 6.2.4
runs-on: ${{ matrix.os }}
env:
OPENATTRIBUTEGRAPH_WERROR: 1
@@ -36,7 +36,9 @@ jobs:
shell: bash
- name: Run tests against Apple's AttributeGraph on macOS via SwiftPM
run: |
+ # Swift 6.2.4 crashes while indexing C++ interop test targets.
swift test \
+ --disable-index-store \
--build-path .build-compatibility-test-debug
- name: Run tests against Apple's AttributeGraph on macOS via Xcode
run: |
@@ -46,4 +48,4 @@ jobs:
-sdk macosx \
-destination "platform=macOS" \
-skipPackagePluginValidation \
- -skipMacroValidation
\ No newline at end of file
+ -skipMacroValidation
diff --git a/.github/workflows/compute.yml b/.github/workflows/compute.yml
index 85c28b79..4a2a48a1 100644
--- a/.github/workflows/compute.yml
+++ b/.github/workflows/compute.yml
@@ -12,7 +12,9 @@ jobs:
strategy:
fail-fast: false
matrix:
- swift_version: ["6.2"]
+ # Swift 6.2.4 crashes swift-frontend when compiling C++ interop on Linux.
+ # Swift 6.3.2 has been verified locally on Linux.
+ swift_version: ["6.3.2"]
runs-on: ubuntu-22.04
env:
OPENATTRIBUTEGRAPH_WERROR: 1
@@ -36,7 +38,7 @@ jobs:
fail-fast: false
matrix:
os: [macos-15]
- xcode-version: ["16.4"]
+ xcode-version: ["26.3"]
runs-on: ${{ matrix.os }}
env:
OPENATTRIBUTEGRAPH_WERROR: 1
@@ -59,7 +61,7 @@ jobs:
fail-fast: false
matrix:
os: [macos-15]
- xcode-version: ["16.4"]
+ xcode-version: ["26.3"]
ios-version: ["18.5"]
include:
- ios-version: "18.5"
diff --git a/.github/workflows/ios.yml b/.github/workflows/ios.yml
index bbd6cc1e..90b4f500 100644
--- a/.github/workflows/ios.yml
+++ b/.github/workflows/ios.yml
@@ -13,7 +13,7 @@ jobs:
fail-fast: false
matrix:
os: [macos-15]
- xcode-version: ["16.4"] # Swift 6.1.2
+ xcode-version: ["26.3"] # Swift 6.2.4
ios-version: ["18.5"]
include:
- ios-version: "18.5"
@@ -38,6 +38,7 @@ jobs:
shell: bash
- name: Build in debug mode on iOS
run: |
+ # Swift 6.2.4 crashes while indexing C++ interop test targets.
xcodebuild build \
-workspace .swiftpm/xcode/package.xcworkspace \
-scheme OpenAttributeGraph-Package \
@@ -46,9 +47,11 @@ jobs:
-derivedDataPath .build-debug \
-skipMacroValidation \
-skipPackagePluginValidation \
+ COMPILER_INDEX_STORE_ENABLE=NO \
OTHER_SWIFT_FLAGS="-warnings-as-errors"
- name: Build and run tests in debug mode with coverage on iOS Simulator
run: |
+ # Swift 6.2.4 crashes while indexing C++ interop test targets.
xcodebuild test \
-workspace .swiftpm/xcode/package.xcworkspace \
-scheme OpenAttributeGraph-Package \
@@ -57,7 +60,8 @@ jobs:
-enableCodeCoverage=YES \
-derivedDataPath .build-test-debug \
-skipPackagePluginValidation \
- -skipMacroValidation
+ -skipMacroValidation \
+ COMPILER_INDEX_STORE_ENABLE=NO
# OTHER_SWIFT_FLAGS="-warnings-as-errors" Conflicting options '-warnings-as-errors' and '-suppress-warnings'
- name: Generate iOS coverage report
run: |
diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml
index 0f5c24bd..8d2946a7 100644
--- a/.github/workflows/macos.yml
+++ b/.github/workflows/macos.yml
@@ -13,7 +13,7 @@ jobs:
fail-fast: false
matrix:
os: [macos-15]
- xcode-version: ["16.4"] # Swift 6.1.2
+ xcode-version: ["26.3"] # Swift 6.2.4
runs-on: ${{ matrix.os }}
env:
OPENATTRIBUTEGRAPH_WERROR: 1
@@ -34,7 +34,9 @@ jobs:
shell: bash
- name: Build and run tests in debug mode with coverage
run: |
+ # Swift 6.2.4 crashes while indexing C++ interop test targets.
swift test \
+ --disable-index-store \
-c debug \
--enable-code-coverage \
--build-path .build-test-debug
@@ -44,7 +46,9 @@ jobs:
> coverage.txt
- name: Build and run tests in release mode
run: |
+ # Swift 6.2.4 crashes while indexing C++ interop test targets.
swift test \
+ --disable-index-store \
-c release \
--enable-code-coverage \
--build-path .build-test-release
diff --git a/.github/workflows/oag_binary.yml b/.github/workflows/oag_binary.yml
index 2b778688..859d5431 100644
--- a/.github/workflows/oag_binary.yml
+++ b/.github/workflows/oag_binary.yml
@@ -13,7 +13,7 @@ jobs:
fail-fast: false
matrix:
os: [macos-15]
- xcode-version: ["16.4"]
+ xcode-version: ["26.3"]
runs-on: ${{ matrix.os }}
env:
OPENATTRIBUTEGRAPH_WERROR: 1
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index b63fc91f..44a2a8c4 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -21,7 +21,7 @@ jobs:
- name: Setup Xcode
uses: OpenSwiftUIProject/setup-xcode@v2
with:
- xcode-version: "16.4"
+ xcode-version: "26.3"
- name: Build XCFramework
run: ./Scripts/build_xcframework.sh
- name: Compute Checksum
diff --git a/.github/workflows/ubuntu.yml b/.github/workflows/ubuntu.yml
index 7642134f..45687ac2 100644
--- a/.github/workflows/ubuntu.yml
+++ b/.github/workflows/ubuntu.yml
@@ -12,7 +12,9 @@ jobs:
strategy:
fail-fast: false
matrix:
- swift_version: ["6.1.3"]
+ # Swift 6.2.4 crashes swift-frontend when compiling C++ interop tests on Linux.
+ # Swift 6.3.2 has been verified locally on Linux.
+ swift_version: ["6.3.2"]
runs-on: ubuntu-22.04
env:
OPENATTRIBUTEGRAPH_WERROR: 1
diff --git a/.github/workflows/xcframework.yml b/.github/workflows/xcframework.yml
index 5770cc0d..f80aee33 100644
--- a/.github/workflows/xcframework.yml
+++ b/.github/workflows/xcframework.yml
@@ -13,7 +13,7 @@ jobs:
fail-fast: false
matrix:
os: [macos-15]
- xcode-version: ["16.4"] # Swift 6.1.2
+ xcode-version: ["26.3"] # Swift 6.2.4
runs-on: ${{ matrix.os }}
env:
GH_TOKEN: ${{ github.token }}
diff --git a/.gitmodules b/.gitmodules
index ad3cb7b2..acac8b53 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,4 +1,4 @@
[submodule "Checkouts/swift"]
path = Checkouts/swift
url = https://github.com/OpenSwiftUIProject/swift-runtime-headers.git
- branch = release/6.1
+ branch = release/6.2
diff --git a/.swiftformat b/.swiftformat
index 7786ea23..c8df86df 100644
--- a/.swiftformat
+++ b/.swiftformat
@@ -1,7 +1,7 @@
# OpenAttributeGraph SwiftFormat configuration
# Swift version
---swiftversion 6.1
+--swiftversion 6.2
# Indentation
--indent 4
diff --git a/Checkouts/swift b/Checkouts/swift
index 358e0e0c..42c0a0f7 160000
--- a/Checkouts/swift
+++ b/Checkouts/swift
@@ -1 +1 @@
-Subproject commit 358e0e0c5d8e4df91c6d20d2f152f7c6f6cbccf1
+Subproject commit 42c0a0f7b02cc040c5a537fc5c577ca9b884dff8
diff --git a/Example/Project.swift b/Example/Project.swift
index ce75b319..5c3aec6e 100644
--- a/Example/Project.swift
+++ b/Example/Project.swift
@@ -1,7 +1,13 @@
import ProjectDescription
+let indexStoreDisabledSettings: SettingsDictionary = [
+ // Swift 6.2.4 crashes while indexing C++ interop package targets.
+ "COMPILER_INDEX_STORE_ENABLE": "NO",
+]
+
let project = Project(
name: "Example",
+ settings: .settings(base: indexStoreDisabledSettings),
targets: [
.target(
name: "Example",
@@ -13,7 +19,8 @@ let project = Project(
dependencies: [
.sdk(name: "c++", type: .library),
.external(name: "OpenAttributeGraph"),
- ]
+ ],
+ settings: .settings(base: indexStoreDisabledSettings)
),
]
)
diff --git a/Example/Tuist/Package.resolved b/Example/Tuist/Package.resolved
new file mode 100644
index 00000000..e8cf1f64
--- /dev/null
+++ b/Example/Tuist/Package.resolved
@@ -0,0 +1,15 @@
+{
+ "originHash" : "b4d69cd3c6294a612f2691e0c9ace37d5e8c8904296914f23e337abb762050c2",
+ "pins" : [
+ {
+ "identity" : "swift-numerics",
+ "kind" : "remoteSourceControl",
+ "location" : "https://github.com/apple/swift-numerics",
+ "state" : {
+ "revision" : "0c0290ff6b24942dadb83a929ffaaa1481df04a2",
+ "version" : "1.1.1"
+ }
+ }
+ ],
+ "version" : 3
+}
diff --git a/Example/Tuist/Package.swift b/Example/Tuist/Package.swift
index 47233079..9384c666 100644
--- a/Example/Tuist/Package.swift
+++ b/Example/Tuist/Package.swift
@@ -1,10 +1,24 @@
-// swift-tools-version: 6.1
+// swift-tools-version: 6.2
import PackageDescription
+#if TUIST
+import ProjectDescription
+
+let indexStoreDisabledSettings: SettingsDictionary = [
+ // Swift 6.2.4 crashes while indexing C++ interop package targets.
+ "COMPILER_INDEX_STORE_ENABLE": "NO",
+]
+
+let packageSettings = PackageSettings(
+ baseSettings: .settings(base: indexStoreDisabledSettings)
+)
+#endif
+
let package = Package(
name: "ExampleDependencies",
dependencies: [
.package(path: "../../"),
+ .package(url: "https://github.com/apple/swift-numerics", from: "1.1.1"),
]
)
diff --git a/Example/mise.toml b/Example/mise.toml
new file mode 100644
index 00000000..9d16c181
--- /dev/null
+++ b/Example/mise.toml
@@ -0,0 +1,2 @@
+[tools]
+tuist = "4.193.0"
diff --git a/Example/setup.sh b/Example/setup.sh
new file mode 100755
index 00000000..56e8dd6e
--- /dev/null
+++ b/Example/setup.sh
@@ -0,0 +1,11 @@
+#!/usr/bin/env bash
+
+set -euo pipefail
+
+SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd -P)"
+
+cd "$SCRIPT_DIR"
+mise trust "$SCRIPT_DIR/mise.toml"
+mise install
+mise exec -- tuist install
+mise exec -- tuist generate --no-open
diff --git a/Package.resolved b/Package.resolved
index f59a13c9..57e4020e 100644
--- a/Package.resolved
+++ b/Package.resolved
@@ -1,5 +1,5 @@
{
- "originHash" : "2f39e651a0cb4fde3ebe01ff1f4c24b6fdca8e340f73bc84f4aa95788eb86a34",
+ "originHash" : "8ff54a8b5b5dd48d5063d7d4ba0df9538c13f86fa2c17d5aafb0dde80b7ec8cd",
"pins" : [
{
"identity" : "swift-numerics",
diff --git a/Package.swift b/Package.swift
index 3a26ce3e..e4115dc3 100644
--- a/Package.swift
+++ b/Package.swift
@@ -1,4 +1,4 @@
-// swift-tools-version: 6.1
+// swift-tools-version: 6.2
import Foundation
import PackageDescription
@@ -430,9 +430,9 @@ func setupDPFDependency() {
if computeCondition {
let computeBinary = envBoolValue("OPENATTRIBUTESHIMS_COMPUTE_USE_BINARY", default: false)
if computeBinary {
- let version = envStringValue("OPENATTRIBUTESHIMS_COMPUTE_BINARY_VERSION", default: "0.1.0")
+ let version = envStringValue("OPENATTRIBUTESHIMS_COMPUTE_BINARY_VERSION", default: "0.2.1")
let url = envStringValue("OPENATTRIBUTESHIMS_COMPUTE_BINARY_URL", default: "https://github.com/jcmosc/Compute/releases/download/\(version)/Compute.xcframework.zip")
- let checksum = envStringValue("OPENATTRIBUTESHIMS_COMPUTE_USE_BINARY_CHECKSUM", default: "e32dd27fa4df4928be69d4171bcb3d47192bebb467f70bfd728cca56d44682d6")
+ let checksum = envStringValue("OPENATTRIBUTESHIMS_COMPUTE_USE_BINARY_CHECKSUM", default: "44eb3f08b9da4e7e308bfb2654b36e6752547e8ba5ec33e19e0648c686990153")
package.targets.append(
.binaryTarget(
name: "Compute",
@@ -445,7 +445,7 @@ if computeCondition {
if useLocalDeps {
computeRepo = Package.Dependency.package(path: "../Compute")
} else {
- computeRepo = Package.Dependency.package(url: "https://github.com/jcmosc/Compute", exact: "0.1.0")
+ computeRepo = Package.Dependency.package(url: "https://github.com/jcmosc/Compute", exact: "0.2.1")
}
package.dependencies.append(computeRepo)
}
diff --git a/README.md b/README.md
index d26ffd01..4d640246 100644
--- a/README.md
+++ b/README.md
@@ -60,7 +60,7 @@ For a simpler setup, you can use the prebuilt XCFramework available on the [rele
## Build
-The current suggested toolchain to build the project is Swift 6.1.2 / Xcode 16.4.
+The current suggested toolchain to build the project is Swift 6.2.4 / Xcode 26.3.
### Clone Swift headers
diff --git a/Scripts/CI/ag_setup.sh b/Scripts/CI/ag_setup.sh
index bca52591..f2859649 100755
--- a/Scripts/CI/ag_setup.sh
+++ b/Scripts/CI/ag_setup.sh
@@ -6,10 +6,14 @@ filepath() {
}
REPO_ROOT="$(dirname $(dirname $(dirname $(filepath $0))))"
+DARWINPRIVATEFRAMEWORKS_FALLBACK_REVISION="b0c3d94ff6b7200754ad2adf948fd3c6ebaef956"
clone_checkout_ag() {
cd $REPO_ROOT
- revision=$(Scripts/CI/get_revision.sh darwinprivateframeworks)
+ if ! revision=$(Scripts/CI/get_revision.sh darwinprivateframeworks 2>/dev/null); then
+ revision="$DARWINPRIVATEFRAMEWORKS_FALLBACK_REVISION"
+ echo "No pinned revision for DarwinPrivateFrameworks, using fallback revision: $revision"
+ fi
cd ..
if [ ! -d DarwinPrivateFrameworks ]; then
gh repo clone OpenSwiftUIProject/DarwinPrivateFrameworks
@@ -23,8 +27,6 @@ clone_checkout_ag() {
fi
if [ -n "$revision" ]; then
git checkout --quiet "$revision"
- else
- echo "No pinned revision for DarwinPrivateFrameworks, using default branch."
fi
}
diff --git a/Tests/OpenAttributeGraphTestsSupport/DataHelper.swift b/Tests/OpenAttributeGraphTestsSupport/DataHelper.swift
index d7152a99..53cc2b5f 100644
--- a/Tests/OpenAttributeGraphTestsSupport/DataHelper.swift
+++ b/Tests/OpenAttributeGraphTestsSupport/DataHelper.swift
@@ -12,6 +12,8 @@ public struct Tuple {
}
}
+extension Tuple: Sendable where A: Sendable, B: Sendable {}
+
public struct Triple {
public var first: A
public var second: B
@@ -23,3 +25,5 @@ public struct Triple {
self.third = third
}
}
+
+extension Triple: Sendable where A: Sendable, B: Sendable, C: Sendable {}
diff --git a/Tuist/Package.swift b/Tuist/Package.swift
index 85b0f148..fccb7e3b 100644
--- a/Tuist/Package.swift
+++ b/Tuist/Package.swift
@@ -1,4 +1,4 @@
-// swift-tools-version: 6.1
+// swift-tools-version: 6.2
import PackageDescription
#if TUIST