From f9d10b2fdc52bb5674bdc092bc8fa2549565757d Mon Sep 17 00:00:00 2001 From: Joel Saltzman Date: Thu, 19 Aug 2021 00:23:53 -0700 Subject: [PATCH 1/4] Renamed completeWithAsync to completeWithTask (#221) * Renamed EventLoopPromise's `completeWithAsync` to `completeWithTask` (based on the SwiftNIO renaming) * Updated swift-nio dependency to 2.32.0 --- Package.swift | 2 +- Sources/AWSLambdaRuntimeCore/LambdaHandler.swift | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Package.swift b/Package.swift index 962a3cee..a6272f63 100644 --- a/Package.swift +++ b/Package.swift @@ -15,7 +15,7 @@ let package = Package( .library(name: "AWSLambdaTesting", targets: ["AWSLambdaTesting"]), ], dependencies: [ - .package(url: "https://github.com/apple/swift-nio.git", .upToNextMajor(from: "2.30.0")), + .package(url: "https://github.com/apple/swift-nio.git", .upToNextMajor(from: "2.32.0")), .package(url: "https://github.com/apple/swift-log.git", .upToNextMajor(from: "1.4.2")), .package(url: "https://github.com/swift-server/swift-backtrace.git", .upToNextMajor(from: "1.2.3")), ], diff --git a/Sources/AWSLambdaRuntimeCore/LambdaHandler.swift b/Sources/AWSLambdaRuntimeCore/LambdaHandler.swift index a211b066..99e164d4 100644 --- a/Sources/AWSLambdaRuntimeCore/LambdaHandler.swift +++ b/Sources/AWSLambdaRuntimeCore/LambdaHandler.swift @@ -114,7 +114,7 @@ public protocol AsyncLambdaHandler: EventLoopLambdaHandler { extension AsyncLambdaHandler { public func handle(context: Lambda.Context, event: In) -> EventLoopFuture { let promise = context.eventLoop.makePromise(of: Out.self) - promise.completeWithAsync { + promise.completeWithTask { try await self.handle(event: event, context: context) } return promise.futureResult @@ -126,7 +126,7 @@ extension AsyncLambdaHandler { public static func main() { Lambda.run { context -> EventLoopFuture in let promise = context.eventLoop.makePromise(of: ByteBufferLambdaHandler.self) - promise.completeWithAsync { + promise.completeWithTask { try await Self(context: context) } return promise.futureResult From dc37adebe7f2311b8da67d977a0972a7614d88a7 Mon Sep 17 00:00:00 2001 From: Cory Benfield Date: Fri, 13 Aug 2021 09:50:18 +0100 Subject: [PATCH 2/4] Clean up dependency graph and imports (#218) - Correctly express the dependency on NIO in Package.swift - Correctly import _NIOConcurrency in files where it's used --- Package.swift | 2 ++ Sources/AWSLambdaRuntimeCore/LambdaHandler.swift | 1 + 2 files changed, 3 insertions(+) diff --git a/Package.swift b/Package.swift index a6272f63..ce0fad78 100644 --- a/Package.swift +++ b/Package.swift @@ -29,6 +29,7 @@ let package = Package( .product(name: "Logging", package: "swift-log"), .product(name: "Backtrace", package: "swift-backtrace"), .product(name: "NIOHTTP1", package: "swift-nio"), + .product(name: "NIO", package: "swift-nio"), .product(name: "_NIOConcurrency", package: "swift-nio"), ]), .testTarget(name: "AWSLambdaRuntimeCoreTests", dependencies: [ @@ -51,6 +52,7 @@ let package = Package( // for perf testing .target(name: "MockServer", dependencies: [ .product(name: "NIOHTTP1", package: "swift-nio"), + .product(name: "NIO", package: "swift-nio"), ]), .target(name: "StringSample", dependencies: ["AWSLambdaRuntime"]), .target(name: "CodableSample", dependencies: ["AWSLambdaRuntime"]), diff --git a/Sources/AWSLambdaRuntimeCore/LambdaHandler.swift b/Sources/AWSLambdaRuntimeCore/LambdaHandler.swift index 99e164d4..bf02860e 100644 --- a/Sources/AWSLambdaRuntimeCore/LambdaHandler.swift +++ b/Sources/AWSLambdaRuntimeCore/LambdaHandler.swift @@ -12,6 +12,7 @@ // //===----------------------------------------------------------------------===// +import _NIOConcurrency import Dispatch import NIO From 699ada1724459582303c15aae64fa12ca4d33809 Mon Sep 17 00:00:00 2001 From: Donald Ness Date: Mon, 4 Oct 2021 19:20:07 -0500 Subject: [PATCH 3/4] Add guards for code that relies on _Concurrency (#237) This allows Xcode 13 to still compile on macOS 11 which does not have symbols for Concurrency yet See swift-server/swift-service-lifecycle#110 --- Sources/AWSLambdaRuntimeCore/LambdaHandler.swift | 2 +- Tests/AWSLambdaRuntimeCoreTests/LambdaHandlerTest.swift | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Sources/AWSLambdaRuntimeCore/LambdaHandler.swift b/Sources/AWSLambdaRuntimeCore/LambdaHandler.swift index bf02860e..2c29f2a1 100644 --- a/Sources/AWSLambdaRuntimeCore/LambdaHandler.swift +++ b/Sources/AWSLambdaRuntimeCore/LambdaHandler.swift @@ -88,7 +88,7 @@ extension LambdaHandler { // MARK: - AsyncLambdaHandler -#if compiler(>=5.5) +#if compiler(>=5.5) && canImport(_Concurrency) /// Strongly typed, processing protocol for a Lambda that takes a user defined `In` and returns a user defined `Out` async. @available(macOS 12, iOS 15, tvOS 15, watchOS 8, *) public protocol AsyncLambdaHandler: EventLoopLambdaHandler { diff --git a/Tests/AWSLambdaRuntimeCoreTests/LambdaHandlerTest.swift b/Tests/AWSLambdaRuntimeCoreTests/LambdaHandlerTest.swift index 3406d52f..ce4c21f4 100644 --- a/Tests/AWSLambdaRuntimeCoreTests/LambdaHandlerTest.swift +++ b/Tests/AWSLambdaRuntimeCoreTests/LambdaHandlerTest.swift @@ -79,7 +79,7 @@ class LambdaHandlerTest: XCTestCase { assertLambdaLifecycleResult(result, shoudHaveRun: maxTimes) } - #if compiler(>=5.5) + #if compiler(>=5.5) && canImport(_Concurrency) // MARK: - AsyncLambdaHandler From 8a2f4aac0bc32154162a8439b788a20d3899df5e Mon Sep 17 00:00:00 2001 From: tomer doron Date: Wed, 16 Mar 2022 21:16:00 -0700 Subject: [PATCH 4/4] ci update (#250) motivation: 5.6 is out changes: * use release version of 5.6 * add docker setup for 5.7 (using nightly for now) --- docker/docker-compose.al2.56.yaml | 18 ++++++++++++++++++ docker/docker-compose.al2.57.yaml | 18 ++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 docker/docker-compose.al2.56.yaml create mode 100644 docker/docker-compose.al2.57.yaml diff --git a/docker/docker-compose.al2.56.yaml b/docker/docker-compose.al2.56.yaml new file mode 100644 index 00000000..561ea804 --- /dev/null +++ b/docker/docker-compose.al2.56.yaml @@ -0,0 +1,18 @@ +version: "3" + +services: + + runtime-setup: + image: swift-aws-lambda:al2-5.6 + build: + args: + swift_version: "5.6" + + test: + image: swift-aws-lambda:al2-5.6 + + test-samples: + image: swift-aws-lambda:al2-5.6 + + shell: + image: swift-aws-lambda:al2-5.6 diff --git a/docker/docker-compose.al2.57.yaml b/docker/docker-compose.al2.57.yaml new file mode 100644 index 00000000..0e280837 --- /dev/null +++ b/docker/docker-compose.al2.57.yaml @@ -0,0 +1,18 @@ +version: "3" + +services: + + runtime-setup: + image: swift-aws-lambda:al2-5.7 + build: + args: + base_image: "swiftlang/swift:nightly-main-amazonlinux2" + + test: + image: swift-aws-lambda:al2-5.7 + + test-samples: + image: swift-aws-lambda:al2-5.7 + + shell: + image: swift-aws-lambda:al2-5.7