From 7c9c63859b90e88495bfc858c11ee989cce4eba5 Mon Sep 17 00:00:00 2001 From: Scott Marchant Date: Fri, 20 Jun 2025 14:23:53 -0600 Subject: [PATCH 1/6] 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/6] 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 5885cf58506867c684c029bcf0d6a785f9e4f405 Mon Sep 17 00:00:00 2001 From: Scott Marchant Date: Fri, 20 Jun 2025 15:23:26 -0600 Subject: [PATCH 3/6] docs: Add wasi 0.1 build status badge to README.md. --- .github/workflows/wasm.yaml | 2 +- Package.swift | 7 +++++-- README.md | 1 + 3 files changed, 7 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..eebc497 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,7 @@ [![](https://img.shields.io/badge/License-MIT-blue.svg?style=flat)](https://tldrlegal.com/license/mit-license) [![](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) +[![WASI 0.1](https://github.com/GraphQLSwift/DataLoader/actions/workflows/wasm.yml/badge.svg?branch=main)](https://github.com/GraphQLSwift/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. From d0dbb2ccd57dea3d56b76c60068d246b485166f4 Mon Sep 17 00:00:00 2001 From: Scott Marchant Date: Mon, 23 Jun 2025 13:17:59 -0600 Subject: [PATCH 4/6] 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 From 5d00ea919d96956f41eb32ca8814f31c9f93dbb3 Mon Sep 17 00:00:00 2001 From: Scott Marchant Date: Tue, 24 Jun 2025 15:08:00 -0600 Subject: [PATCH 5/6] test: Temporarily use main branch of swift-nio for testing CI change. --- Package.resolved | 7 ++++--- Package.swift | 5 +---- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/Package.resolved b/Package.resolved index a36003a..49de830 100644 --- a/Package.resolved +++ b/Package.resolved @@ -1,4 +1,5 @@ { + "originHash" : "34f315fb9047f350b535493d2e79e60dfd40675b4bfc9f7a8e4b8d79bb3dd6c5", "pins" : [ { "identity" : "async-collections", @@ -41,8 +42,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/PassiveLogic/swift-nio.git", "state" : { - "branch" : "fix/fix-niocore-build-for-wasip1", - "revision" : "c6aa54bbbc85a8f108ae4b3fa0e198d6a43e7fe1" + "branch" : "main", + "revision" : "8d2347a56b812083fe547e584de023f2668fe6fe" } }, { @@ -64,5 +65,5 @@ } } ], - "version" : 2 + "version" : 3 } diff --git a/Package.swift b/Package.swift index c450610..1c9ebdc 100644 --- a/Package.swift +++ b/Package.swift @@ -16,10 +16,7 @@ let package = Package( // 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: "main"), ], targets: [ .target( From 35fb67cd28668efe4e41eda83cd3aa7d0136897b Mon Sep 17 00:00:00 2001 From: Scott Marchant Date: Mon, 28 Jul 2025 09:08:28 -0600 Subject: [PATCH 6/6] chore: Update swift-nio minimum version to a version where NIOCore compiles for wasm. --- Package.resolved | 12 ++++++------ Package.swift | 5 +---- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/Package.resolved b/Package.resolved index 49de830..1c1dc60 100644 --- a/Package.resolved +++ b/Package.resolved @@ -1,5 +1,5 @@ { - "originHash" : "34f315fb9047f350b535493d2e79e60dfd40675b4bfc9f7a8e4b8d79bb3dd6c5", + "originHash" : "34ed11cdeebef1b2864a6db79a150ffe000d97cca7e36c30e30939d14f609619", "pins" : [ { "identity" : "async-collections", @@ -40,10 +40,10 @@ { "identity" : "swift-nio", "kind" : "remoteSourceControl", - "location" : "https://github.com/PassiveLogic/swift-nio.git", + "location" : "https://github.com/apple/swift-nio.git", "state" : { - "branch" : "main", - "revision" : "8d2347a56b812083fe547e584de023f2668fe6fe" + "revision" : "a5fea865badcb1c993c85b0f0e8d05a4bd2270fb", + "version" : "2.85.0" } }, { @@ -60,8 +60,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/apple/swift-system.git", "state" : { - "revision" : "61e4ca4b81b9e09e2ec863b00c340eb13497dac6", - "version" : "1.5.0" + "revision" : "41daa93a5d229e1548ec86ab527ce4783ca84dda", + "version" : "1.6.0" } } ], diff --git a/Package.swift b/Package.swift index 1c9ebdc..67bd8e7 100644 --- a/Package.swift +++ b/Package.swift @@ -13,10 +13,7 @@ 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: "main"), + .package(url: "https://github.com/apple/swift-nio.git", from: "2.84.0"), ], targets: [ .target(