From 7c9c63859b90e88495bfc858c11ee989cce4eba5 Mon Sep 17 00:00:00 2001 From: Scott Marchant Date: Fri, 20 Jun 2025 14:23:53 -0600 Subject: [PATCH 1/4] ci: Add ci stage that checks wasm compilation. --- .github/workflows/test.yaml | 2 +- .github/workflows/wasm.yaml | 24 ++++++++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/wasm.yaml diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index ce86063..caae017 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -14,4 +14,4 @@ jobs: test: uses: graphqlswift/ci/.github/workflows/test.yaml@main with: - include_android: false + include_android: false \ No newline at end of file diff --git a/.github/workflows/wasm.yaml b/.github/workflows/wasm.yaml new file mode 100644 index 0000000..3017ed6 --- /dev/null +++ b/.github/workflows/wasm.yaml @@ -0,0 +1,24 @@ +name: wasm + +on: + push: + branches: [ main ] + pull_request: + branches: [ main ] + workflow_dispatch: + +jobs: + # NOTE: swift tests won't compile due to usage + # of NIOPosix. But we can at least test that wasm compilation + # works, to prevent future breakages. + wasm: + name: Test wasm compilation + runs-on: ubuntu-latest + container: swift:6.1.0 + steps: + - name: Checkout + uses: actions/checkout@v4 + - uses: swiftwasm/setup-swiftwasm@v2 + with: + target: "wasm32-unknown-wasip1-threads" + - run: swift build --swift-sdk wasm32-unknown-wasip1-threads \ No newline at end of file From cbffe10a22dc806db2343ace068826cba4b010cd Mon Sep 17 00:00:00 2001 From: Scott Marchant Date: Fri, 20 Jun 2025 15:06:52 -0600 Subject: [PATCH 2/4] test: Temporarily point nio to PassiveLogic nio fork to verify fix for NIOCore works as expected. --- Package.resolved | 10 +++++----- Package.swift | 5 ++++- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/Package.resolved b/Package.resolved index 1465c14..a36003a 100644 --- a/Package.resolved +++ b/Package.resolved @@ -39,10 +39,10 @@ { "identity" : "swift-nio", "kind" : "remoteSourceControl", - "location" : "https://github.com/apple/swift-nio.git", + "location" : "https://github.com/PassiveLogic/swift-nio.git", "state" : { - "revision" : "34d486b01cd891297ac615e40d5999536a1e138d", - "version" : "2.83.0" + "branch" : "fix/fix-niocore-build-for-wasip1", + "revision" : "c6aa54bbbc85a8f108ae4b3fa0e198d6a43e7fe1" } }, { @@ -59,8 +59,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/apple/swift-system.git", "state" : { - "revision" : "c8a44d836fe7913603e246acab7c528c2e780168", - "version" : "1.4.0" + "revision" : "61e4ca4b81b9e09e2ec863b00c340eb13497dac6", + "version" : "1.5.0" } } ], diff --git a/Package.swift b/Package.swift index 71dc6ba..9059480 100644 --- a/Package.swift +++ b/Package.swift @@ -13,7 +13,10 @@ let package = Package( dependencies: [ .package(url: "https://github.com/apple/swift-algorithms.git", from: "1.0.0"), .package(url: "https://github.com/adam-fowler/async-collections", from: "0.0.1"), - .package(url: "https://github.com/apple/swift-nio.git", from: "2.0.0"), + + // TODO: SM: Revert before merging. Temporarily using PL nio to test fix for NIOCore. + // .package(url: "https://github.com/apple/swift-nio.git", from: "2.0.0"), + .package(url: "https://github.com/PassiveLogic/swift-nio.git", branch: "fix/fix-niocore-build-for-wasip1") ], targets: [ .target( From e9bf50cb11173a0c2fbbfe03b0ffef6b6bc664c5 Mon Sep 17 00:00:00 2001 From: Scott Marchant Date: Fri, 20 Jun 2025 15:23:26 -0600 Subject: [PATCH 3/4] docs: Add wasi 0.1 build status badge to README.md. --- .github/workflows/wasm.yaml | 2 +- Package.swift | 7 +++++-- README.md | 4 ++++ 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/.github/workflows/wasm.yaml b/.github/workflows/wasm.yaml index 3017ed6..684b1c9 100644 --- a/.github/workflows/wasm.yaml +++ b/.github/workflows/wasm.yaml @@ -21,4 +21,4 @@ jobs: - uses: swiftwasm/setup-swiftwasm@v2 with: target: "wasm32-unknown-wasip1-threads" - - run: swift build --swift-sdk wasm32-unknown-wasip1-threads \ No newline at end of file + - run: swift build --swift-sdk wasm32-unknown-wasip1-threads diff --git a/Package.swift b/Package.swift index 9059480..3d41612 100644 --- a/Package.swift +++ b/Package.swift @@ -13,10 +13,13 @@ let package = Package( dependencies: [ .package(url: "https://github.com/apple/swift-algorithms.git", from: "1.0.0"), .package(url: "https://github.com/adam-fowler/async-collections", from: "0.0.1"), - + // TODO: SM: Revert before merging. Temporarily using PL nio to test fix for NIOCore. // .package(url: "https://github.com/apple/swift-nio.git", from: "2.0.0"), - .package(url: "https://github.com/PassiveLogic/swift-nio.git", branch: "fix/fix-niocore-build-for-wasip1") + .package( + url: "https://github.com/PassiveLogic/swift-nio.git", + branch: "fix/fix-niocore-build-for-wasip1" + ), ], targets: [ .target( diff --git a/README.md b/README.md index 2745c36..a38a59b 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,10 @@ [![](https://img.shields.io/endpoint?url=https%3A%2F%2Fswiftpackageindex.com%2Fapi%2Fpackages%2FGraphQLSwift%2FDataLoader%2Fbadge%3Ftype%3Dswift-versions)](https://swiftpackageindex.com/GraphQLSwift/DataLoader) [![](https://img.shields.io/endpoint?url=https%3A%2F%2Fswiftpackageindex.com%2Fapi%2Fpackages%2FGraphQLSwift%2FDataLoader%2Fbadge%3Ftype%3Dplatforms)](https://swiftpackageindex.com/GraphQLSwift/DataLoader) +TODO: SM: Change Revert to the following once done testing: + +[![WASI 0.1](https://github.com/PassiveLogic/DataLoader/actions/workflows/wasm.yml/badge.svg?branch=scott)](https://github.com/PassiveLogic/DataLoader/actions/workflows/wasm.yml) + DataLoader is a generic utility to be used as part of your application's data fetching layer to provide a simplified and consistent API over various remote data sources such as databases or web services via batching and caching. This is a Swift version of the Facebook [DataLoader](https://github.com/facebook/dataloader). From 8cde048210704efae1ecb1f55a2a015ebb8ad3ca Mon Sep 17 00:00:00 2001 From: Scott Marchant Date: Mon, 23 Jun 2025 13:17:59 -0600 Subject: [PATCH 4/4] ci: Bump swift version from 5.8 to 5.10.0, which is the new minimum for the latest swift-nio dependency. --- Package.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Package.swift b/Package.swift index 3d41612..c450610 100644 --- a/Package.swift +++ b/Package.swift @@ -1,4 +1,4 @@ -// swift-tools-version:5.8 +// swift-tools-version:5.10.0 // The swift-tools-version declares the minimum version of Swift required to build this package. import PackageDescription