diff --git a/Package.swift b/Package.swift index 69332c6..e97f6c3 100644 --- a/Package.swift +++ b/Package.swift @@ -1,9 +1,9 @@ -// swift-tools-version:5.4 +// swift-tools-version:5.6 //===----------------------------------------------------------------------===// // // This source file is part of the SwiftNIO open source project // -// Copyright (c) 2017-2021 Apple Inc. and the SwiftNIO project authors +// Copyright (c) 2017-2022 Apple Inc. and the SwiftNIO project authors // Licensed under Apache License v2.0 // // See LICENSE.txt for license information @@ -120,6 +120,7 @@ let package = Package( ], dependencies: [ .package(url: "https://github.com/apple/swift-nio.git", from: "2.34.0"), + .package(url: "https://github.com/apple/swift-docc-plugin", from: "1.0.0"), ], targets: targets ) diff --git a/Package@swift-5.4.swift b/Package@swift-5.4.swift new file mode 100644 index 0000000..b7dd215 --- /dev/null +++ b/Package@swift-5.4.swift @@ -0,0 +1,125 @@ +// swift-tools-version:5.4 +//===----------------------------------------------------------------------===// +// +// This source file is part of the SwiftNIO open source project +// +// Copyright (c) 2017-2022 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 + +var targets: [PackageDescription.Target] = [ + .target( + name: "NIOExtras", + dependencies: [ + .product(name: "NIO", package: "swift-nio"), + .product(name: "NIOCore", package: "swift-nio"), + ]), + .target( + name: "NIOHTTPCompression", + dependencies: [ + "CNIOExtrasZlib", + .product(name: "NIO", package: "swift-nio"), + .product(name: "NIOCore", package: "swift-nio"), + .product(name: "NIOHTTP1", package: "swift-nio"), + ]), + .executableTarget( + name: "HTTPServerWithQuiescingDemo", + dependencies: [ + "NIOExtras", + .product(name: "NIOCore", package: "swift-nio"), + .product(name: "NIOPosix", package: "swift-nio"), + .product(name: "NIOHTTP1", package: "swift-nio"), + ]), + .executableTarget( + name: "NIOWritePCAPDemo", + dependencies: [ + "NIOExtras", + .product(name: "NIOCore", package: "swift-nio"), + .product(name: "NIOPosix", package: "swift-nio"), + .product(name: "NIOHTTP1", package: "swift-nio"), + ]), + .executableTarget( + name: "NIOWritePartialPCAPDemo", + dependencies: [ + "NIOExtras", + .product(name: "NIOCore", package: "swift-nio"), + .product(name: "NIOPosix", package: "swift-nio"), + .product(name: "NIOHTTP1", package: "swift-nio"), + ]), + .executableTarget( + name: "NIOExtrasPerformanceTester", + dependencies: [ + "NIOExtras", + .product(name: "NIOCore", package: "swift-nio"), + .product(name: "NIOPosix", package: "swift-nio"), + .product(name: "NIOEmbedded", package: "swift-nio"), + .product(name: "NIOHTTP1", package: "swift-nio"), + ]), + .target( + name: "NIOSOCKS", + dependencies: [ + .product(name: "NIO", package: "swift-nio"), + .product(name: "NIOCore", package: "swift-nio"), + ]), + .executableTarget( + name: "NIOSOCKSClient", + dependencies: [ + .product(name: "NIOCore", package: "swift-nio"), + .product(name: "NIOPosix", package: "swift-nio"), + "NIOSOCKS" + ]), + .target( + name: "CNIOExtrasZlib", + dependencies: [], + linkerSettings: [ + .linkedLibrary("z") + ]), + .testTarget( + name: "NIOExtrasTests", + dependencies: [ + "NIOExtras", + .product(name: "NIOCore", package: "swift-nio"), + .product(name: "NIOEmbedded", package: "swift-nio"), + .product(name: "NIOPosix", package: "swift-nio"), + .product(name: "NIOTestUtils", package: "swift-nio"), + .product(name: "NIOConcurrencyHelpers", package: "swift-nio"), + ]), + .testTarget( + name: "NIOHTTPCompressionTests", + dependencies: [ + "CNIOExtrasZlib", + "NIOHTTPCompression", + .product(name: "NIOCore", package: "swift-nio"), + .product(name: "NIOEmbedded", package: "swift-nio"), + .product(name: "NIOHTTP1", package: "swift-nio"), + .product(name: "NIOConcurrencyHelpers", package: "swift-nio"), + ]), + .testTarget( + name: "NIOSOCKSTests", + dependencies: [ + "NIOSOCKS", + .product(name: "NIOCore", package: "swift-nio"), + .product(name: "NIOEmbedded", package: "swift-nio"), + ]) +] + +let package = Package( + name: "swift-nio-extras", + products: [ + .library(name: "NIOExtras", targets: ["NIOExtras"]), + .library(name: "NIOSOCKS", targets: ["NIOSOCKS"]), + .library(name: "NIOHTTPCompression", targets: ["NIOHTTPCompression"]), + ], + dependencies: [ + .package(url: "https://github.com/apple/swift-nio.git", from: "2.34.0"), + ], + targets: targets +) diff --git a/Package@swift-5.5.swift b/Package@swift-5.5.swift new file mode 100644 index 0000000..5753803 --- /dev/null +++ b/Package@swift-5.5.swift @@ -0,0 +1,125 @@ +// swift-tools-version:5.5 +//===----------------------------------------------------------------------===// +// +// This source file is part of the SwiftNIO open source project +// +// Copyright (c) 2017-2022 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 + +var targets: [PackageDescription.Target] = [ + .target( + name: "NIOExtras", + dependencies: [ + .product(name: "NIO", package: "swift-nio"), + .product(name: "NIOCore", package: "swift-nio"), + ]), + .target( + name: "NIOHTTPCompression", + dependencies: [ + "CNIOExtrasZlib", + .product(name: "NIO", package: "swift-nio"), + .product(name: "NIOCore", package: "swift-nio"), + .product(name: "NIOHTTP1", package: "swift-nio"), + ]), + .executableTarget( + name: "HTTPServerWithQuiescingDemo", + dependencies: [ + "NIOExtras", + .product(name: "NIOCore", package: "swift-nio"), + .product(name: "NIOPosix", package: "swift-nio"), + .product(name: "NIOHTTP1", package: "swift-nio"), + ]), + .executableTarget( + name: "NIOWritePCAPDemo", + dependencies: [ + "NIOExtras", + .product(name: "NIOCore", package: "swift-nio"), + .product(name: "NIOPosix", package: "swift-nio"), + .product(name: "NIOHTTP1", package: "swift-nio"), + ]), + .executableTarget( + name: "NIOWritePartialPCAPDemo", + dependencies: [ + "NIOExtras", + .product(name: "NIOCore", package: "swift-nio"), + .product(name: "NIOPosix", package: "swift-nio"), + .product(name: "NIOHTTP1", package: "swift-nio"), + ]), + .executableTarget( + name: "NIOExtrasPerformanceTester", + dependencies: [ + "NIOExtras", + .product(name: "NIOCore", package: "swift-nio"), + .product(name: "NIOPosix", package: "swift-nio"), + .product(name: "NIOEmbedded", package: "swift-nio"), + .product(name: "NIOHTTP1", package: "swift-nio"), + ]), + .target( + name: "NIOSOCKS", + dependencies: [ + .product(name: "NIO", package: "swift-nio"), + .product(name: "NIOCore", package: "swift-nio"), + ]), + .executableTarget( + name: "NIOSOCKSClient", + dependencies: [ + .product(name: "NIOCore", package: "swift-nio"), + .product(name: "NIOPosix", package: "swift-nio"), + "NIOSOCKS" + ]), + .target( + name: "CNIOExtrasZlib", + dependencies: [], + linkerSettings: [ + .linkedLibrary("z") + ]), + .testTarget( + name: "NIOExtrasTests", + dependencies: [ + "NIOExtras", + .product(name: "NIOCore", package: "swift-nio"), + .product(name: "NIOEmbedded", package: "swift-nio"), + .product(name: "NIOPosix", package: "swift-nio"), + .product(name: "NIOTestUtils", package: "swift-nio"), + .product(name: "NIOConcurrencyHelpers", package: "swift-nio"), + ]), + .testTarget( + name: "NIOHTTPCompressionTests", + dependencies: [ + "CNIOExtrasZlib", + "NIOHTTPCompression", + .product(name: "NIOCore", package: "swift-nio"), + .product(name: "NIOEmbedded", package: "swift-nio"), + .product(name: "NIOHTTP1", package: "swift-nio"), + .product(name: "NIOConcurrencyHelpers", package: "swift-nio"), + ]), + .testTarget( + name: "NIOSOCKSTests", + dependencies: [ + "NIOSOCKS", + .product(name: "NIOCore", package: "swift-nio"), + .product(name: "NIOEmbedded", package: "swift-nio"), + ]) +] + +let package = Package( + name: "swift-nio-extras", + products: [ + .library(name: "NIOExtras", targets: ["NIOExtras"]), + .library(name: "NIOSOCKS", targets: ["NIOSOCKS"]), + .library(name: "NIOHTTPCompression", targets: ["NIOHTTPCompression"]), + ], + dependencies: [ + .package(url: "https://github.com/apple/swift-nio.git", from: "2.34.0"), + ], + targets: targets +) diff --git a/docker/docker-compose.1804.54.yaml b/docker/docker-compose.1804.54.yaml index d607fb6..eb9c80a 100644 --- a/docker/docker-compose.1804.54.yaml +++ b/docker/docker-compose.1804.54.yaml @@ -12,6 +12,7 @@ services: test: image: swift-nio-extras:18.04-5.4 + command: /bin/bash -xcl "cat /etc/lsb-release && swift -version && swift test -Xswiftc -warnings-as-errors $${SANITIZER_ARG-}" shell: image: swift-nio-extras:18.04-5.4 diff --git a/docker/docker-compose.yaml b/docker/docker-compose.yaml index d481383..06b042b 100644 --- a/docker/docker-compose.yaml +++ b/docker/docker-compose.yaml @@ -28,7 +28,7 @@ services: test: <<: *common - command: /bin/bash -xcl "cat /etc/lsb-release && swift -version && swift test -Xswiftc -warnings-as-errors $${SANITIZER_ARG-}" + command: /bin/bash -xcl "cat /etc/lsb-release && swift -version && swift test -Xswiftc -warnings-as-errors --enable-test-discovery $${SANITIZER_ARG-}" # util diff --git a/scripts/soundness.sh b/scripts/soundness.sh index 0b24249..96136a6 100755 --- a/scripts/soundness.sh +++ b/scripts/soundness.sh @@ -71,7 +71,7 @@ for language in swift-or-c bash dtrace; do matching_files=( -name '*' ) case "$language" in swift-or-c) - exceptions=( -name c_nio_http_parser.c -o -name c_nio_http_parser.h -o -name cpp_magic.h -o -name Package.swift -o -name CNIOSHA1.h -o -name c_nio_sha1.c -o -name ifaddrs-android.c -o -name ifaddrs-android.h) + exceptions=( -name c_nio_http_parser.c -o -name c_nio_http_parser.h -o -name cpp_magic.h -o -name Package.swift -o -name CNIOSHA1.h -o -name c_nio_sha1.c -o -name ifaddrs-android.c -o -name ifaddrs-android.h -o -name 'Package@swift*.swift') matching_files=( -name '*.swift' -o -name '*.c' -o -name '*.h' ) cat > "$tmp" <<"EOF" //===----------------------------------------------------------------------===//