From af7d7418cb0a1cd1ac730c798a72186cd649e6dc Mon Sep 17 00:00:00 2001 From: Yim Lee Date: Wed, 24 May 2023 14:23:15 -0700 Subject: [PATCH 1/3] Update c-ares to 1.19.1 --- .swiftformat | 17 +++++----- Package.swift | 33 ++++++++++++------- Sources/AsyncDNSResolver/Options.swift | 2 +- Sources/CAsyncDNSResolver/c-ares | 2 +- .../include/CAsyncDNSResolver.h | 4 +-- Tests/LinuxMain.swift | 15 --------- docker/Dockerfile | 12 ++----- docker/docker-compose.1604.51.yaml | 18 ---------- docker/docker-compose.1804.51.yaml | 18 ---------- docker/docker-compose.1804.52.yaml | 18 ---------- docker/docker-compose.1804.53.yaml | 18 ---------- docker/docker-compose.1804.54.yaml | 18 ---------- docker/docker-compose.2004.55.yaml | 18 ---------- ...04.54.yaml => docker-compose.2004.56.yaml} | 8 ++--- docker/docker-compose.2204.57.yaml | 18 ++++++++++ docker/docker-compose.2204.58.yaml | 18 ++++++++++ docker/docker-compose.2204.59.yaml | 17 ++++++++++ docker/docker-compose.2204.main.yaml | 17 ++++++++++ docker/docker-compose.yaml | 2 +- 19 files changed, 111 insertions(+), 162 deletions(-) delete mode 100644 Tests/LinuxMain.swift delete mode 100644 docker/docker-compose.1604.51.yaml delete mode 100644 docker/docker-compose.1804.51.yaml delete mode 100644 docker/docker-compose.1804.52.yaml delete mode 100644 docker/docker-compose.1804.53.yaml delete mode 100644 docker/docker-compose.1804.54.yaml delete mode 100644 docker/docker-compose.2004.55.yaml rename docker/{docker-compose.2004.54.yaml => docker-compose.2004.56.yaml} (51%) create mode 100644 docker/docker-compose.2204.57.yaml create mode 100644 docker/docker-compose.2204.58.yaml create mode 100644 docker/docker-compose.2204.59.yaml create mode 100644 docker/docker-compose.2204.main.yaml diff --git a/.swiftformat b/.swiftformat index 40e6ef1..1a00a99 100644 --- a/.swiftformat +++ b/.swiftformat @@ -1,18 +1,19 @@ ---swiftversion 5.0 - # file options +--swiftversion 5.5 --exclude .build # format options ---ifdef no-indent ---indent 4 ---patternlet inline --self insert ---stripunusedargs closure-only ---wraparguments before-first +--patternlet inline +--stripunusedargs unnamed-only +--ifdef no-indent +--guardelse same-line +--nevertrailing filter +--extensionacl on-declarations # rules ---disable blankLinesAroundMark +--disable wrapMultilineStatementBraces + diff --git a/Package.swift b/Package.swift index ecc3aa9..b1138e7 100644 --- a/Package.swift +++ b/Package.swift @@ -1,15 +1,14 @@ -// swift-tools-version:5.0 +// swift-tools-version:5.5 import class Foundation.FileManager import PackageDescription var caresExclude = [ - "./c-ares/acountry.c", - "./c-ares/adig.c", - "./c-ares/ahost.c", - "./c-ares/ares_android.c", - "./c-ares/windows_port.c", - "./c-ares/test/", + "./c-ares/src/lib/cares.rc", + "./c-ares/src/lib/CMakeLists.txt", + "./c-ares/src/lib/ares_config.h.cmake", + "./c-ares/src/lib/Makefile.am", + "./c-ares/src/lib/Makefile.inc", ] do { @@ -26,19 +25,29 @@ let package = Package( .library(name: "AsyncDNSResolver", targets: ["AsyncDNSResolver"]), ], dependencies: [ - .package(url: "https://github.com/apple/swift-log.git", from: "1.0.0"), + .package(url: "https://github.com/apple/swift-log", .upToNextMajor(from: "1.0.0")), ], targets: [ .target( - name: "CAsyncDNSResolver", dependencies: [], + name: "CAsyncDNSResolver", + dependencies: [], exclude: caresExclude, - sources: ["./c-ares"], + sources: ["./c-ares/src/lib"], cSettings: [ - .headerSearchPath("./c-ares"), + .headerSearchPath("./c-ares/include"), + .headerSearchPath("./c-ares/src/lib"), .define("HAVE_CONFIG_H", to: "1"), ] ), - .target(name: "AsyncDNSResolver", dependencies: ["CAsyncDNSResolver", "Logging"]), + + .target( + name: "AsyncDNSResolver", + dependencies: [ + "CAsyncDNSResolver", + .product(name: "Logging", package: "swift-log"), + ] + ), + .testTarget(name: "AsyncDNSResolverTests", dependencies: ["AsyncDNSResolver"]), ], cLanguageStandard: .gnu11 diff --git a/Sources/AsyncDNSResolver/Options.swift b/Sources/AsyncDNSResolver/Options.swift index e18a32a..bebdbcd 100644 --- a/Sources/AsyncDNSResolver/Options.swift +++ b/Sources/AsyncDNSResolver/Options.swift @@ -271,7 +271,7 @@ class AresOptions { // The pointers are being replaced so deallocate them first self.domainPointers?.deallocate() - let domainPointers = domains.map { $0.ccharArrayPointer } + let domainPointers = domains.map(\.ccharArrayPointer) self.domainPointers = domainPointers domainPointers.withUnsafeBufferPointer { bufferPointer in diff --git a/Sources/CAsyncDNSResolver/c-ares b/Sources/CAsyncDNSResolver/c-ares index 74a1426..6360e96 160000 --- a/Sources/CAsyncDNSResolver/c-ares +++ b/Sources/CAsyncDNSResolver/c-ares @@ -1 +1 @@ -Subproject commit 74a1426ba60e2cd7977e53a22ef839c87415066e +Subproject commit 6360e96b5cf8e5980c887ce58ef727e53d77243a diff --git a/Sources/CAsyncDNSResolver/include/CAsyncDNSResolver.h b/Sources/CAsyncDNSResolver/include/CAsyncDNSResolver.h index 391759e..d285b7e 100644 --- a/Sources/CAsyncDNSResolver/include/CAsyncDNSResolver.h +++ b/Sources/CAsyncDNSResolver/include/CAsyncDNSResolver.h @@ -2,7 +2,7 @@ // // This source file is part of the SwiftAsyncDNSResolver open source project // -// Copyright (c) 2020-2021 Apple Inc. and the SwiftAsyncDNSResolver project authors +// Copyright (c) 2020-2023 Apple Inc. and the SwiftAsyncDNSResolver project authors // Licensed under Apache License v2.0 // // See LICENSE.txt for license information @@ -20,6 +20,6 @@ #include "ares_build.h" #include "ares_config.h" -#include "../c-ares/ares.h" +#include "../c-ares/include/ares.h" #endif diff --git a/Tests/LinuxMain.swift b/Tests/LinuxMain.swift deleted file mode 100644 index eeb8f25..0000000 --- a/Tests/LinuxMain.swift +++ /dev/null @@ -1,15 +0,0 @@ -//===----------------------------------------------------------------------===// -// -// This source file is part of the SwiftAsyncDNSResolver open source project -// -// Copyright (c) 2020 Apple Inc. and the SwiftAsyncDNSResolver project authors -// Licensed under Apache License v2.0 -// -// See LICENSE.txt for license information -// See CONTRIBUTORS.txt for the list of SwiftAsyncDNSResolver project authors -// -// SPDX-License-Identifier: Apache-2.0 -// -//===----------------------------------------------------------------------===// - -fatalError("Please use --enable-test-discovery to run the tests instead") diff --git a/docker/Dockerfile b/docker/Dockerfile index 3aec083..6901929 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,5 +1,5 @@ -ARG swift_version=5.1 -ARG ubuntu_version=bionic +ARG swift_version=5.5 +ARG ubuntu_version=focal ARG base_image=swift:$swift_version-$ubuntu_version FROM $base_image # needed to do again after FROM due to docker limitation @@ -16,18 +16,10 @@ ENV LANGUAGE en_US.UTF-8 RUN apt-get update && apt-get install -y wget RUN apt-get update && apt-get install -y lsof dnsutils netcat-openbsd net-tools curl jq # used by integration tests -# ruby and jazzy for docs generation -RUN apt-get update && apt-get install -y ruby ruby-dev libsqlite3-dev -RUN if [ "${ubuntu_version}" == "focal" ] ; then gem install jazzy --no-document ; fi - # tools RUN mkdir -p $HOME/.tools RUN echo 'export PATH="$HOME/.tools:$PATH"' >> $HOME/.profile -# script to allow mapping framepointers on linux (until part of the toolchain) -RUN wget -q https://raw.githubusercontent.com/apple/swift/master/utils/symbolicate-linux-fatal -O $HOME/.tools/symbolicate-linux-fatal -RUN chmod 755 $HOME/.tools/symbolicate-linux-fatal - # swiftformat (until part of the toolchain) ARG swiftformat_version=0.44.6 diff --git a/docker/docker-compose.1604.51.yaml b/docker/docker-compose.1604.51.yaml deleted file mode 100644 index 86fedd7..0000000 --- a/docker/docker-compose.1604.51.yaml +++ /dev/null @@ -1,18 +0,0 @@ -version: "3" - -services: - - runtime-setup: - image: swift-async-dns-resolver:16.04-5.1 - build: - args: - ubuntu_version: "xenial" - swift_version: "5.1" - - test: - image: swift-async-dns-resolver:16.04-5.1 - environment: - - SANITIZER_ARG=--sanitize=thread - - shell: - image: swift-async-dns-resolver:16.04-5.1 diff --git a/docker/docker-compose.1804.51.yaml b/docker/docker-compose.1804.51.yaml deleted file mode 100644 index 504b457..0000000 --- a/docker/docker-compose.1804.51.yaml +++ /dev/null @@ -1,18 +0,0 @@ -version: "3" - -services: - - runtime-setup: - image: swift-async-dns-resolver:18.04-5.1 - build: - args: - ubuntu_version: "bionic" - swift_version: "5.1" - - test: - image: swift-async-dns-resolver:18.04-5.1 - environment: [] - #- SANITIZER_ARG=--sanitize=thread - - shell: - image: swift-async-dns-resolver:18.04-5.1 diff --git a/docker/docker-compose.1804.52.yaml b/docker/docker-compose.1804.52.yaml deleted file mode 100644 index 68c4e54..0000000 --- a/docker/docker-compose.1804.52.yaml +++ /dev/null @@ -1,18 +0,0 @@ -version: "3" - -services: - - runtime-setup: - image: swift-async-dns-resolver:18.04-5.2 - build: - args: - ubuntu_version: "bionic" - swift_version: "5.2" - - test: - image: swift-async-dns-resolver:18.04-5.2 - environment: [] - #- SANITIZER_ARG=--sanitize=thread - - shell: - image: swift-async-dns-resolver:18.04-5.2 diff --git a/docker/docker-compose.1804.53.yaml b/docker/docker-compose.1804.53.yaml deleted file mode 100644 index 51fe85c..0000000 --- a/docker/docker-compose.1804.53.yaml +++ /dev/null @@ -1,18 +0,0 @@ -version: "3" - -services: - - runtime-setup: - image: swift-async-dns-resolver:18.04-5.3 - build: - args: - ubuntu_version: "bionic" - swift_version: "5.3" - - test: - image: swift-async-dns-resolver:18.04-5.3 - environment: [] - #- SANITIZER_ARG=--sanitize=thread - - shell: - image: swift-async-dns-resolver:18.04-5.3 diff --git a/docker/docker-compose.1804.54.yaml b/docker/docker-compose.1804.54.yaml deleted file mode 100644 index b03201b..0000000 --- a/docker/docker-compose.1804.54.yaml +++ /dev/null @@ -1,18 +0,0 @@ -version: "3" - -services: - - runtime-setup: - image: swift-async-dns-resolver:18.04-5.4 - build: - args: - ubuntu_version: "bionic" - swift_version: "5.4" - - test: - image: swift-async-dns-resolver:18.04-5.4 - environment: [] - #- SANITIZER_ARG=--sanitize=thread - - shell: - image: swift-async-dns-resolver:18.04-5.4 diff --git a/docker/docker-compose.2004.55.yaml b/docker/docker-compose.2004.55.yaml deleted file mode 100644 index 76cfe37..0000000 --- a/docker/docker-compose.2004.55.yaml +++ /dev/null @@ -1,18 +0,0 @@ -version: "3" - -services: - - runtime-setup: - image: swift-async-dns-resolver:20.04-5.5 - build: - args: - ubuntu_version: "focal" - swift_version: "5.5" - - test: - image: swift-async-dns-resolver:20.04-5.5 - environment: [] - #- SANITIZER_ARG=--sanitize=thread - - shell: - image: swift-async-dns-resolver:20.04-5.5 diff --git a/docker/docker-compose.2004.54.yaml b/docker/docker-compose.2004.56.yaml similarity index 51% rename from docker/docker-compose.2004.54.yaml rename to docker/docker-compose.2004.56.yaml index 60e7418..f600fe4 100644 --- a/docker/docker-compose.2004.54.yaml +++ b/docker/docker-compose.2004.56.yaml @@ -3,16 +3,16 @@ version: "3" services: runtime-setup: - image: swift-async-dns-resolver:20.04-5.4 + image: swift-async-dns-resolver:20.04-5.6 build: args: ubuntu_version: "focal" - swift_version: "5.4" + swift_version: "5.6" test: - image: swift-async-dns-resolver:20.04-5.4 + image: swift-async-dns-resolver:20.04-5.6 environment: [] #- SANITIZER_ARG=--sanitize=thread shell: - image: swift-async-dns-resolver:20.04-5.4 + image: swift-async-dns-resolver:20.04-5.6 diff --git a/docker/docker-compose.2204.57.yaml b/docker/docker-compose.2204.57.yaml new file mode 100644 index 0000000..462b45e --- /dev/null +++ b/docker/docker-compose.2204.57.yaml @@ -0,0 +1,18 @@ +version: "3" + +services: + + runtime-setup: + image: swift-async-dns-resolver:22.04-5.7 + build: + args: + ubuntu_version: "jammy" + swift_version: "5.7" + + test: + image: swift-async-dns-resolver:22.04-5.7 + environment: [] + #- SANITIZER_ARG=--sanitize=thread + + shell: + image: swift-async-dns-resolver:22.04-5.7 diff --git a/docker/docker-compose.2204.58.yaml b/docker/docker-compose.2204.58.yaml new file mode 100644 index 0000000..5cc45b4 --- /dev/null +++ b/docker/docker-compose.2204.58.yaml @@ -0,0 +1,18 @@ +version: "3" + +services: + + runtime-setup: + image: swift-async-dns-resolver:22.04-5.8 + build: + args: + ubuntu_version: "jammy" + swift_version: "5.8" + + test: + image: swift-async-dns-resolver:22.04-5.8 + environment: [] + #- SANITIZER_ARG=--sanitize=thread + + shell: + image: swift-async-dns-resolver:22.04-5.8 diff --git a/docker/docker-compose.2204.59.yaml b/docker/docker-compose.2204.59.yaml new file mode 100644 index 0000000..387909e --- /dev/null +++ b/docker/docker-compose.2204.59.yaml @@ -0,0 +1,17 @@ +version: "3" + +services: + + runtime-setup: + image: swift-async-dns-resolver:22.04-5.9 + build: + args: + base_image: "swiftlang/swift:nightly-5.9-jammy" + + test: + image: swift-async-dns-resolver:22.04-5.9 + environment: [] + #- SANITIZER_ARG=--sanitize=thread + + shell: + image: swift-async-dns-resolver:22.04-5.9 diff --git a/docker/docker-compose.2204.main.yaml b/docker/docker-compose.2204.main.yaml new file mode 100644 index 0000000..7784f34 --- /dev/null +++ b/docker/docker-compose.2204.main.yaml @@ -0,0 +1,17 @@ +version: "3" + +services: + + runtime-setup: + image: swift-async-dns-resolver:22.04-main + build: + args: + base_image: "swiftlang/swift:nightly-main-jammy" + + test: + image: swift-async-dns-resolver:22.04-main + environment: [] + #- SANITIZER_ARG=--sanitize=thread + + shell: + image: swift-async-dns-resolver:22.04-main diff --git a/docker/docker-compose.yaml b/docker/docker-compose.yaml index fc50dad..b5349ec 100644 --- a/docker/docker-compose.yaml +++ b/docker/docker-compose.yaml @@ -28,7 +28,7 @@ services: test: <<: *common - command: /bin/bash -xcl "swift test --enable-test-discovery -Xswiftc -warnings-as-errors $${SANITIZER_ARG-}" + command: /bin/bash -xcl "swift test -Xswiftc -warnings-as-errors $${SANITIZER_ARG-}" # util From e1df9c23c6d4ba6a1716db2d4795270e1e5f8731 Mon Sep 17 00:00:00 2001 From: Yim Lee Date: Wed, 24 May 2023 14:39:07 -0700 Subject: [PATCH 2/3] Handle year 2023 --- scripts/soundness.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/soundness.sh b/scripts/soundness.sh index d8585bc..cc00537 100755 --- a/scripts/soundness.sh +++ b/scripts/soundness.sh @@ -3,7 +3,7 @@ ## ## This source file is part of the SwiftAsyncDNSResolver open source project ## -## Copyright (c) 2020-2021 Apple Inc. and the SwiftAsyncDNSResolver project authors +## Copyright (c) 2020-2023 Apple Inc. and the SwiftAsyncDNSResolver project authors ## Licensed under Apache License v2.0 ## ## See LICENSE.txt for license information @@ -18,7 +18,7 @@ here="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" function replace_acceptable_years() { # this needs to replace all acceptable forms with 'YEARS' - sed -e 's/2020-2021/YEARS/' -e 's/2020/YEARS/' -e 's/2021/YEARS/' + sed -e 's/202[012]-202[123]/YEARS/' -e 's/202[0123]/YEARS/' } printf "=> Checking format... " From d6234de4d332f869d60eeed23f1b5cab435ab1b9 Mon Sep 17 00:00:00 2001 From: Yim Lee Date: Wed, 24 May 2023 14:40:48 -0700 Subject: [PATCH 3/3] Update swiftformat version --- docker/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 6901929..665349d 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -22,7 +22,7 @@ RUN echo 'export PATH="$HOME/.tools:$PATH"' >> $HOME/.profile # swiftformat (until part of the toolchain) -ARG swiftformat_version=0.44.6 +ARG swiftformat_version=0.50.1 RUN git clone --branch $swiftformat_version --depth 1 https://github.com/nicklockwood/SwiftFormat $HOME/.tools/swift-format RUN cd $HOME/.tools/swift-format && swift build -c release RUN ln -s $HOME/.tools/swift-format/.build/release/swiftformat $HOME/.tools/swiftformat