From 8fda939e1b088db0d27c50dfa5a3b6750abb2545 Mon Sep 17 00:00:00 2001 From: George Barnett Date: Thu, 29 Sep 2022 09:23:09 +0100 Subject: [PATCH] Raise minimum supported Swift version from 5.4 to 5.5 (#158) Motivation: SwiftNIO periodically drops support for older Swift versions. Now that 5.7 has been released, 5.4 will be dropped. Modifications: - Remove 5.4 specific Package.swift and docker-compose - Update the 5.7 docker-compose to use the released 5.7 and move from focal (2004) to jammy (2204) - Update docs Results: Minimum Swift version is 5.5 --- Package@swift-5.4.swift | 60 ------------------- README.md | 11 +++- .../NIOTransportServices/Docs.docc/index.md | 11 +++- docker/Dockerfile | 2 +- docker/docker-compose.1804.54.yaml | 16 ----- docker/docker-compose.2004.57.yaml | 16 ----- docker/docker-compose.2204.57.yaml | 16 +++++ 7 files changed, 35 insertions(+), 97 deletions(-) delete mode 100644 Package@swift-5.4.swift delete mode 100644 docker/docker-compose.1804.54.yaml delete mode 100644 docker/docker-compose.2004.57.yaml create mode 100644 docker/docker-compose.2204.57.yaml diff --git a/Package@swift-5.4.swift b/Package@swift-5.4.swift deleted file mode 100644 index e0305cf..0000000 --- a/Package@swift-5.4.swift +++ /dev/null @@ -1,60 +0,0 @@ -// swift-tools-version:5.4 -//===----------------------------------------------------------------------===// -// -// This source file is part of the SwiftNIO open source project -// -// Copyright (c) 2017-2018 Apple Inc. and the SwiftNIO project authors -// Licensed under Apache License v2.0 -// -// See LICENSE.txt for license information -// See CONTRIBUTORS.txt for the list of SwiftNIO project authors -// -// SPDX-License-Identifier: Apache-2.0 -// -//===----------------------------------------------------------------------===// - -import PackageDescription - -let package = Package( - name: "swift-nio-transport-services", - products: [ - .library(name: "NIOTransportServices", targets: ["NIOTransportServices"]), - ], - dependencies: [ - .package(url: "https://github.com/apple/swift-nio.git", from: "2.42.0"), - .package(url: "https://github.com/apple/swift-atomics.git", from: "1.0.2"), - ], - targets: [ - .target( - name: "NIOTransportServices", - dependencies: [ - .product(name: "NIO", package: "swift-nio"), - .product(name: "NIOCore", package: "swift-nio"), - .product(name: "NIOFoundationCompat", package: "swift-nio"), - .product(name: "NIOTLS", package: "swift-nio"), - .product(name: "Atomics", package: "swift-atomics"), - ]), - .executableTarget( - name: "NIOTSHTTPClient", - dependencies: [ - "NIOTransportServices", - .product(name: "NIOCore", package: "swift-nio"), - .product(name: "NIOHTTP1", package: "swift-nio"), - ]), - .executableTarget( - name: "NIOTSHTTPServer", - dependencies: [ - "NIOTransportServices", - .product(name: "NIOCore", package: "swift-nio"), - .product(name: "NIOHTTP1", package: "swift-nio"), - ]), - .testTarget( - name: "NIOTransportServicesTests", - dependencies: [ - "NIOTransportServices", - .product(name: "NIOCore", package: "swift-nio"), - .product(name: "NIOEmbedded", package: "swift-nio"), - .product(name: "Atomics", package: "swift-atomics"), - ]), - ] -) diff --git a/README.md b/README.md index 11df83d..6993e6d 100644 --- a/README.md +++ b/README.md @@ -48,13 +48,20 @@ declaring [SwiftNIO's Public API](https://github.com/apple/swift-nio/blob/main/d ### `swift-nio-transport-services ` 1.x -`swift-nio-transport-services` versions 1.x is part of the SwiftNIO 2 family of repositories and does not have any dependencies besides [`swift-nio`](https://github.com/apple/swift-nio), Swift 5.4, and an Apple OS supporting `Network.framework`. As the latest version, it lives on the [`main`](https://github.com/apple/swift-nio-transport-services) branch. +`swift-nio-transport-services` versions 1.x is part of the SwiftNIO 2 family of repositories and does not have any dependencies besides [`swift-nio`](https://github.com/apple/swift-nio), Swift 5.5, and an Apple OS supporting `Network.framework`. As the latest version, it lives on the [`main`](https://github.com/apple/swift-nio-transport-services) branch. To depend on `swift-nio-transport-services `, put the following in the `dependencies` of your `Package.swift`: .package(url: "https://github.com/apple/swift-nio-transport-services.git", from: "1.0.0"), -`swift-nio-transport-services` version 1.11.x and earlier support Swift 5.2 and 5.3. Earlier 1.x versions also support Swift 5.0 and 5.1. +The most recent versions of SwiftNIO Transport Services support Swift 5.5 and newer. The minimum Swift version supported by SwiftNIO Transport Services releases are detailed below: + +SwiftNIO Extras | Minimum Swift Version +--------------------|---------------------- +`1.0.0 ..< 1.11.0` | 5.0 +`1.11.0 ..< 1.12.0` | 5.2 +`1.12.0 ..< 1.15.0` | 5.4 +`1.15.0 ...` | 5.5 ### `swift-nio-transport-services ` 0.x diff --git a/Sources/NIOTransportServices/Docs.docc/index.md b/Sources/NIOTransportServices/Docs.docc/index.md index 0382422..96e5b9b 100644 --- a/Sources/NIOTransportServices/Docs.docc/index.md +++ b/Sources/NIOTransportServices/Docs.docc/index.md @@ -48,13 +48,20 @@ declaring [SwiftNIO's Public API](https://github.com/apple/swift-nio/blob/main/d ### NIO Transport Services 1.x -`swift-nio-transport-services` versions 1.x is part of the SwiftNIO 2 family of repositories and does not have any dependencies besides [`swift-nio`](https://github.com/apple/swift-nio), Swift 5.4, and an Apple OS supporting `Network.framework`. As the latest version, it lives on the [`main`](https://github.com/apple/swift-nio-transport-services) branch. +`swift-nio-transport-services` versions 1.x is part of the SwiftNIO 2 family of repositories and does not have any dependencies besides [`swift-nio`](https://github.com/apple/swift-nio), Swift 5.5, and an Apple OS supporting `Network.framework`. As the latest version, it lives on the [`main`](https://github.com/apple/swift-nio-transport-services) branch. To depend on `swift-nio-transport-services `, put the following in the `dependencies` of your `Package.swift`: .package(url: "https://github.com/apple/swift-nio-transport-services.git", from: "1.0.0"), -`swift-nio-transport-services` version 1.11.x and earlier support Swift 5.2 and 5.3. Earlier 1.x versions also support Swift 5.0 and 5.1. +The most recent versions of SwiftNIO Transport Services support Swift 5.5 and newer. The minimum Swift version supported by SwiftNIO Transport Services releases are detailed below: + +SwiftNIO Extras | Minimum Swift Version +--------------------|---------------------- +`1.0.0 ..< 1.11.0` | 5.0 +`1.11.0 ..< 1.12.0` | 5.2 +`1.12.0 ..< 1.14.0` | 5.4 +`1.14.0 ...` | 5.5 ### NIO Transport Services 0.x diff --git a/docker/Dockerfile b/docker/Dockerfile index 063db02..583333e 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,4 +1,4 @@ -ARG swift_version=5.4 +ARG swift_version=5.7 ARG ubuntu_version=focal ARG base_image=swift:$swift_version-$ubuntu_version FROM $base_image diff --git a/docker/docker-compose.1804.54.yaml b/docker/docker-compose.1804.54.yaml deleted file mode 100644 index d221397..0000000 --- a/docker/docker-compose.1804.54.yaml +++ /dev/null @@ -1,16 +0,0 @@ -version: "3" - -services: - - runtime-setup: - image: swift-nio-transport-services:18.04-5.4 - build: - args: - ubuntu_version: "bionic" - swift_version: "5.4" - - test: - image: swift-nio-transport-services:18.04-5.4 - - shell: - image: swift-nio-transport-services:18.04-5.4 diff --git a/docker/docker-compose.2004.57.yaml b/docker/docker-compose.2004.57.yaml deleted file mode 100644 index c1e7808..0000000 --- a/docker/docker-compose.2004.57.yaml +++ /dev/null @@ -1,16 +0,0 @@ -version: "3" - -services: - - runtime-setup: - image: swift-nio-transport-services:20.04-5.7 - build: - args: - ubuntu_version: "focal" - base_image: "swiftlang/swift:nightly-5.7-focal" - - test: - image: swift-nio-transport-services:20.04-5.7 - - shell: - image: swift-nio-transport-services:20.04-5.7 diff --git a/docker/docker-compose.2204.57.yaml b/docker/docker-compose.2204.57.yaml new file mode 100644 index 0000000..9296216 --- /dev/null +++ b/docker/docker-compose.2204.57.yaml @@ -0,0 +1,16 @@ +version: "3" + +services: + + runtime-setup: + image: swift-nio-transport-services:22.04-5.7 + build: + args: + ubuntu_version: "jammy" + swift_version: "5.7" + + test: + image: swift-nio-transport-services:22.04-5.7 + + shell: + image: swift-nio-transport-services:22.04-5.7