From ac4e4163e11bce40414b1b4767d2e8c1c9f5fb10 Mon Sep 17 00:00:00 2001 From: David Evans Date: Fri, 18 Jun 2021 17:07:33 +0100 Subject: [PATCH 1/5] Make Swift 5.2 the minimum --- Package.swift | 27 ++++++++++++++++++++++----- README.md | 2 +- docker/Dockerfile | 2 +- docker/docker-compose.1604.51.yaml | 18 ------------------ docker/docker-compose.1804.50.yaml | 16 ---------------- docker/docker-compose.1804.51.yaml | 18 ------------------ 6 files changed, 24 insertions(+), 59 deletions(-) delete mode 100644 docker/docker-compose.1604.51.yaml delete mode 100644 docker/docker-compose.1804.50.yaml delete mode 100644 docker/docker-compose.1804.51.yaml diff --git a/Package.swift b/Package.swift index b579b608a..8aa9f31e7 100644 --- a/Package.swift +++ b/Package.swift @@ -1,4 +1,4 @@ -// swift-tools-version:5.0 +// swift-tools-version:5.2 //===----------------------------------------------------------------------===// // // This source file is part of the AsyncHTTPClient open source project @@ -30,13 +30,30 @@ let package = Package( targets: [ .target( name: "AsyncHTTPClient", - dependencies: ["NIO", "NIOHTTP1", "NIOSSL", "NIOConcurrencyHelpers", "NIOHTTPCompression", - "NIOFoundationCompat", "NIOTransportServices", "Logging", "NIOSOCKS"] + dependencies: [ + .product(name: "NIO", package: "swift-nio"), + .product(name: "NIOHTTP1", package: "swift-nio"), + .product(name: "NIOSSL", package: "swift-nio-ssl"), + .product(name: "NIOConcurrencyHelpers", package: "swift-nio"), + .product(name: "NIOHTTPCompression", package: "swift-nio-extras"), + .product(name: "NIOFoundationCompat", package: "swift-nio"), + .product(name: "NIOTransportServices", package: "swift-nio-transport-services"), + .product(name: "Logging", package: "swift-log"), + .product(name: "NIOSOCKS", package: "swift-nio-extras"), + ] ), .testTarget( name: "AsyncHTTPClientTests", - dependencies: ["NIO", "NIOConcurrencyHelpers", "NIOSSL", "AsyncHTTPClient", "NIOFoundationCompat", - "NIOTestUtils", "Logging", "NIOSOCKS"] + dependencies: [ + .product(name: "NIO", package: "swift-nio"), + .product(name: "NIOConcurrencyHelpers", package: "swift-nio"), + .product(name: "NIOSSL", package: "swift-nio-ssl"), + "AsyncHTTPClient", + .product(name: "NIOFoundationCompat", package: "swift-nio"), + .product(name: "NIOTestUtils", package: "swift-nio"), + .product(name: "Logging", package: "swift-log"), + .product(name: "NIOSOCKS", package: "swift-nio-extras"), + ] ), ] ) diff --git a/README.md b/README.md index f40936715..1966b958a 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ This library provides the following: --- -**NOTE**: You will need [Xcode 10.2](https://itunes.apple.com/us/app/xcode/id497799835) or [Swift 5.0](https://swift.org/download/#swift-50) to try out `AsyncHTTPClient`. +**NOTE**: You will need [Xcode 11.4](https://apps.apple.com/gb/app/xcode/id497799835?mt=12) or [Swift 5.2](https://swift.org/download/#swift-52) to try out `AsyncHTTPClient`. --- diff --git a/docker/Dockerfile b/docker/Dockerfile index 6caf07109..7bf9faadf 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,4 +1,4 @@ -ARG swift_version=5.0 +ARG swift_version=5.2 ARG ubuntu_version=bionic ARG base_image=swift:$swift_version-$ubuntu_version FROM $base_image diff --git a/docker/docker-compose.1604.51.yaml b/docker/docker-compose.1604.51.yaml deleted file mode 100644 index 4949e2f2c..000000000 --- a/docker/docker-compose.1604.51.yaml +++ /dev/null @@ -1,18 +0,0 @@ -version: "3" - -services: - - runtime-setup: - image: async-http-client:16.04-5.1 - build: - args: - ubuntu_version: "xenial" - swift_version: "5.1" - - test: - image: async-http-client:16.04-5.1 - environment: - - SANITIZER_ARG=--sanitize=thread - - shell: - image: async-http-client:16.04-5.1 diff --git a/docker/docker-compose.1804.50.yaml b/docker/docker-compose.1804.50.yaml deleted file mode 100644 index 8078b5437..000000000 --- a/docker/docker-compose.1804.50.yaml +++ /dev/null @@ -1,16 +0,0 @@ -version: "3" - -services: - - runtime-setup: - image: async-http-client:18.04-5.0 - build: - args: - ubuntu_version: "bionic" - swift_version: "5.0" - - test: - image: async-http-client:18.04-5.0 - - shell: - image: async-http-client:18.04-5.0 diff --git a/docker/docker-compose.1804.51.yaml b/docker/docker-compose.1804.51.yaml deleted file mode 100644 index 1ca7a60a3..000000000 --- a/docker/docker-compose.1804.51.yaml +++ /dev/null @@ -1,18 +0,0 @@ -version: "3" - -services: - - runtime-setup: - image: async-http-client:18.04-5.1 - build: - args: - ubuntu_version: "bionic" - swift_version: "5.1" - - test: - image: async-http-client:18.04-5.1 - environment: [] - #- SANITIZER_ARG=--sanitize=thread - - shell: - image: async-http-client:18.04-5.1 From ab5a1e15147dc62996c8c6c3db3f260df4aa18a9 Mon Sep 17 00:00:00 2001 From: David Evans Date: Fri, 18 Jun 2021 17:09:18 +0100 Subject: [PATCH 2/5] Add a minimum version warning --- CONTRIBUTING.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index dde835273..6382fcd4d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -57,6 +57,8 @@ A good AsyncHTTPClient patch is: 3. Documented, adding API documentation as needed to cover new functions and properties. 4. Accompanied by a great commit message, using our commit message template. +*Note* as of version 1.5.0 AsyncHTTPClient requires Swift 5.2. Earlier versions support as far back as Swift 5.0. + ### Commit Message Template We require that your commit messages match our template. The easiest way to do that is to get git to help you by explicitly using the template. To do that, `cd` to the root of our repository and run: From e2d2fef8f1d6e679c315e1408e7cf944d054a0ea Mon Sep 17 00:00:00 2001 From: David Evans Date: Tue, 22 Jun 2021 10:35:43 +0100 Subject: [PATCH 3/5] Switch 5.2 tests to 16.04 --- docker/docker-compose.1604.52.yaml | 18 ++++++++++++++++++ docker/docker-compose.1804.52.yaml | 18 ------------------ 2 files changed, 18 insertions(+), 18 deletions(-) create mode 100644 docker/docker-compose.1604.52.yaml delete mode 100644 docker/docker-compose.1804.52.yaml diff --git a/docker/docker-compose.1604.52.yaml b/docker/docker-compose.1604.52.yaml new file mode 100644 index 000000000..d0e48a953 --- /dev/null +++ b/docker/docker-compose.1604.52.yaml @@ -0,0 +1,18 @@ +version: "3" + +services: + + runtime-setup: + image: async-http-client:16.04-5.2 + build: + args: + ubuntu_version: "xenial" + swift_version: "5.2" + + test: + image: async-http-client:16.04-5.2 + environment: [] + - SANITIZER_ARG=--sanitize=thread + + shell: + image: async-http-client:16.04-5.2 diff --git a/docker/docker-compose.1804.52.yaml b/docker/docker-compose.1804.52.yaml deleted file mode 100644 index b40f3355c..000000000 --- a/docker/docker-compose.1804.52.yaml +++ /dev/null @@ -1,18 +0,0 @@ -version: "3" - -services: - - runtime-setup: - image: async-http-client:18.04-5.2 - build: - args: - ubuntu_version: "bionic" - swift_version: "5.2" - - test: - image: async-http-client:18.04-5.2 - environment: [] - #- SANITIZER_ARG=--sanitize=thread - - shell: - image: async-http-client:18.04-5.2 From 793df8da6967f30f11ab50a7871fac8eb815dc09 Mon Sep 17 00:00:00 2001 From: David Evans Date: Tue, 22 Jun 2021 10:38:54 +0100 Subject: [PATCH 4/5] Update API breakage --- scripts/check_no_api_breakages.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/check_no_api_breakages.sh b/scripts/check_no_api_breakages.sh index e2eee38aa..f380e2423 100755 --- a/scripts/check_no_api_breakages.sh +++ b/scripts/check_no_api_breakages.sh @@ -115,7 +115,7 @@ for old_tag in "$@"; do --input-paths "$tmpdir/api-old/$f" -input-paths "$tmpdir/api-new/$f" 2>&1 \ > "$report" 2>&1 - if ! shasum "$report" | grep -q cefc4ee5bb7bcdb7cb5a7747efa178dab3c794d5; then + if ! shasum "$report" | grep -q afd2a1b542b33273920d65821deddc653063c700; then echo ERROR echo >&2 "==============================" echo >&2 "ERROR: public API change in $f" From ec9bfb8fc73d761e23c7c57a09b66b9782eaba23 Mon Sep 17 00:00:00 2001 From: David Evans Date: Tue, 22 Jun 2021 17:04:13 +0100 Subject: [PATCH 5/5] Fix 5.2 dockerfile --- docker/docker-compose.1604.52.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/docker-compose.1604.52.yaml b/docker/docker-compose.1604.52.yaml index d0e48a953..4f74bca9f 100644 --- a/docker/docker-compose.1604.52.yaml +++ b/docker/docker-compose.1604.52.yaml @@ -11,7 +11,7 @@ services: test: image: async-http-client:16.04-5.2 - environment: [] + environment: - SANITIZER_ARG=--sanitize=thread shell: