From 6a0c41794e2fa73fc7795c71fafb6047df6a149a Mon Sep 17 00:00:00 2001
From: Rick Newton-Rogers <rnro@apple.com>
Date: Fri, 8 Nov 2024 16:17:46 +0000
Subject: [PATCH 1/2] Migrate to GitHub Actions

Migrate CI to use GitHub Actions.

Motivation:

To migrate to GitHub actions and centralised infrastructure.

Modifications:

Changes of note:
* Adopt swiftlang soundness checks, swift version matrix
* Remove scripts and docker files which are no longer needed

Result:

Feature parity with old CI.
---
 .editorconfig                              |  8 ++
 .github/workflows/main.yml                 | 18 +++++
 .github/workflows/pull_request.yml         | 26 +++++++
 .github/workflows/pull_request_label.yml   | 18 +++++
 .licenseignore                             | 36 +++++++++
 .spi.yml                                   |  4 +-
 CONTRIBUTING.md                            | 24 +-----
 Package.swift                              | 16 +---
 docker/Dockerfile                          | 23 ------
 docker/docker-compose.2204.510.yaml        | 17 ----
 docker/docker-compose.2204.59.yaml         | 19 -----
 docker/docker-compose.2204.590.yaml        | 19 -----
 docker/docker-compose.2204.main.yaml       | 18 -----
 docker/docker-compose.yaml                 | 38 ---------
 scripts/check-for-broken-symlinks.sh       | 37 ---------
 scripts/check-for-docc-warnings.sh         | 40 ----------
 scripts/check-for-unacceptable-language.sh | 37 ---------
 scripts/check-license-headers.sh           | 90 ----------------------
 scripts/generate-contributors-list.sh      | 52 -------------
 scripts/run-swift-format.sh                | 48 ------------
 scripts/soundness.sh                       | 57 --------------
 scripts/unacceptable-language.txt          | 15 ----
 22 files changed, 114 insertions(+), 546 deletions(-)
 create mode 100644 .editorconfig
 create mode 100644 .github/workflows/main.yml
 create mode 100644 .github/workflows/pull_request.yml
 create mode 100644 .github/workflows/pull_request_label.yml
 create mode 100644 .licenseignore
 delete mode 100644 docker/Dockerfile
 delete mode 100644 docker/docker-compose.2204.510.yaml
 delete mode 100644 docker/docker-compose.2204.59.yaml
 delete mode 100644 docker/docker-compose.2204.590.yaml
 delete mode 100644 docker/docker-compose.2204.main.yaml
 delete mode 100644 docker/docker-compose.yaml
 delete mode 100644 scripts/check-for-broken-symlinks.sh
 delete mode 100644 scripts/check-for-docc-warnings.sh
 delete mode 100644 scripts/check-for-unacceptable-language.sh
 delete mode 100644 scripts/check-license-headers.sh
 delete mode 100644 scripts/generate-contributors-list.sh
 delete mode 100755 scripts/run-swift-format.sh
 delete mode 100755 scripts/soundness.sh
 delete mode 100644 scripts/unacceptable-language.txt

diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 0000000..08891d8
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,8 @@
+root = true
+
+[*]
+indent_style = space
+indent_size = 4
+end_of_line = lf
+insert_final_newline = true
+trim_trailing_whitespace = true
\ No newline at end of file
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
new file mode 100644
index 0000000..400a1b9
--- /dev/null
+++ b/.github/workflows/main.yml
@@ -0,0 +1,18 @@
+name: Main
+
+on:
+  push:
+    branches: [main]
+  schedule:
+    - cron: "0 8,20 * * *"
+
+jobs:
+  unit-tests:
+    name: Unit tests
+    uses: apple/swift-nio/.github/workflows/unit_tests.yml@main
+    with:
+      linux_5_9_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error"
+      linux_5_10_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error"
+      linux_6_0_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable"
+      linux_nightly_6_0_arguments_override: "--explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable"
+      linux_nightly_main_arguments_override: "--explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable"
diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml
new file mode 100644
index 0000000..2a337d1
--- /dev/null
+++ b/.github/workflows/pull_request.yml
@@ -0,0 +1,26 @@
+name: PR
+
+on:
+  pull_request:
+    types: [opened, reopened, synchronize]
+
+jobs:
+  soundness:
+    name: Soundness
+    uses: swiftlang/github-workflows/.github/workflows/soundness.yml@main
+    with:
+      license_header_check_project_name: "SwiftOpenAPIGenerator"
+
+  unit-tests:
+    name: Unit tests
+    uses: apple/swift-nio/.github/workflows/unit_tests.yml@main
+    with:
+      linux_5_9_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error -Xswiftc -strict-concurrency=complete"
+      linux_5_10_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error -Xswiftc -strict-concurrency=complete"
+      linux_6_0_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable -Xswiftc -strict-concurrency=complete"
+      linux_nightly_6_0_arguments_override: "--explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable"
+      linux_nightly_main_arguments_override: "--explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable"
+
+  cxx-interop:
+    name: Cxx interop
+    uses: apple/swift-nio/.github/workflows/cxx_interop.yml@main
diff --git a/.github/workflows/pull_request_label.yml b/.github/workflows/pull_request_label.yml
new file mode 100644
index 0000000..8fd47c1
--- /dev/null
+++ b/.github/workflows/pull_request_label.yml
@@ -0,0 +1,18 @@
+name: PR label
+
+on:
+  pull_request:
+    types: [labeled, unlabeled, opened, reopened, synchronize]
+
+jobs:
+  semver-label-check:
+    name: Semantic version label check
+    runs-on: ubuntu-latest
+    timeout-minutes: 1
+    steps:
+      - name: Checkout repository
+        uses: actions/checkout@v4
+        with:
+          persist-credentials: false
+      - name: Check for Semantic Version label
+        uses: apple/swift-nio/.github/actions/pull_request_semver_label_checker@main
diff --git a/.licenseignore b/.licenseignore
new file mode 100644
index 0000000..d2535f5
--- /dev/null
+++ b/.licenseignore
@@ -0,0 +1,36 @@
+.gitignore
+**/.gitignore
+.licenseignore
+.gitattributes
+.git-blame-ignore-revs
+.mailfilter
+.mailmap
+.spi.yml
+.swift-format
+.swiftformatignore
+.editorconfig
+.github/*
+*.md
+*.txt
+*.yml
+*.yaml
+*.json
+Package.swift
+**/Package.swift
+Package@-*.swift
+**/Package@-*.swift
+Package.resolved
+**/Package.resolved
+Makefile
+*.modulemap
+**/*.modulemap
+**/*.docc/*
+*.xcprivacy
+**/*.xcprivacy
+*.symlink
+**/*.symlink
+Dockerfile
+**/Dockerfile
+Snippets/*
+dev/git.commit.template
+.unacceptablelanguageignore
diff --git a/.spi.yml b/.spi.yml
index 6c06685..084d5b2 100644
--- a/.spi.yml
+++ b/.spi.yml
@@ -1,5 +1,5 @@
 version: 1
 builder:
   configs:
-  - documentation_targets:
-    - OpenAPIAsyncHTTPClient
+    - documentation_targets:
+        - OpenAPIAsyncHTTPClient
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 0cef7b6..b3387c1 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -56,28 +56,10 @@ A good 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.
 
-### Run `./scripts/soundness.sh`
+### Run CI checks locally
 
-The scripts directory contains a [soundness.sh script](https://github.com/swift-server/swift-openapi-async-http-client/blob/main/scripts/soundness.sh) 
-that enforces additional checks, like license headers and formatting style.
-
-Please make sure to `./scripts/soundness.sh` before pushing a change upstream, otherwise it is likely the PR validation will fail
-on minor changes such as a missing `self.` or similar formatting issues.
-
-For frequent contributors, we recommend adding the script as a [git pre-push hook](https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks), which you can do via executing the following command in the project root directory: 
-
-```bash
-cat << EOF > .git/hooks/pre-push
-
-if [[ -f "scripts/soundness.sh" ]]; then
-  scripts/soundness.sh
-fi
-EOF
-```
-
-Which makes the script execute, and only allow the `git push` to complete if the check has passed.
-
-In the case of formatting issues, you can then `git add` the formatting changes, and attempt the push again. 
+You can run the GitHub Actions workflows locally using
+[act](https://github.com/nektos/act). For detailed steps on how to do this please see [https://github.com/swiftlang/github-workflows?tab=readme-ov-file#running-workflows-locally](https://github.com/swiftlang/github-workflows?tab=readme-ov-file#running-workflows-locally).
 
 ## How to contribute your work
 
diff --git a/Package.swift b/Package.swift
index 21c12ed..ac0e6a6 100644
--- a/Package.swift
+++ b/Package.swift
@@ -24,21 +24,13 @@ let swiftSettings: [SwiftSetting] = [
 
 let package = Package(
     name: "swift-openapi-async-http-client",
-    platforms: [
-        .macOS(.v10_15), .iOS(.v13), .tvOS(.v13), .watchOS(.v6), .visionOS(.v1)
-    ],
-    products: [
-        .library(
-            name: "OpenAPIAsyncHTTPClient",
-            targets: ["OpenAPIAsyncHTTPClient"]
-        ),
-    ],
+    platforms: [.macOS(.v10_15), .iOS(.v13), .tvOS(.v13), .watchOS(.v6), .visionOS(.v1)],
+    products: [.library(name: "OpenAPIAsyncHTTPClient", targets: ["OpenAPIAsyncHTTPClient"])],
     dependencies: [
         .package(url: "https://github.com/apple/swift-nio", from: "2.58.0"),
         .package(url: "https://github.com/swift-server/async-http-client.git", from: "1.23.0"),
         .package(url: "https://github.com/apple/swift-openapi-runtime", from: "1.0.0"),
         .package(url: "https://github.com/apple/swift-http-types", from: "1.0.0"),
-        .package(url: "https://github.com/apple/swift-docc-plugin", from: "1.0.0"),
     ],
     targets: [
         .target(
@@ -53,9 +45,7 @@ let package = Package(
         ),
         .testTarget(
             name: "OpenAPIAsyncHTTPClientTests",
-            dependencies: [
-                "OpenAPIAsyncHTTPClient",
-            ],
+            dependencies: ["OpenAPIAsyncHTTPClient"],
             swiftSettings: swiftSettings
         ),
     ]
diff --git a/docker/Dockerfile b/docker/Dockerfile
deleted file mode 100644
index d90e973..0000000
--- a/docker/Dockerfile
+++ /dev/null
@@ -1,23 +0,0 @@
-ARG swift_version=5.9
-ARG ubuntu_version=jammy
-ARG base_image=swift:${swift_version}-${ubuntu_version}
-
-FROM ${base_image}
-ARG swift_version
-ARG ubuntu_version
-
-# set as UTF-8
-RUN apt-get update && apt-get install -y locales locales-all
-ENV LC_ALL en_US.UTF-8
-ENV LANG en_US.UTF-8
-ENV LANGUAGE en_US.UTF-8
-
-# tools
-RUN mkdir -p $HOME/.tools
-RUN echo 'export PATH="$HOME/.tools:$PATH"' >> $HOME/.profile
-
-# swift-format
-ARG swiftformat_version=509.0.0
-RUN git clone --branch $swiftformat_version --depth 1 https://github.com/apple/swift-format $HOME/.tools/swift-format-source
-RUN cd $HOME/.tools/swift-format-source && swift build -c release
-RUN ln -s $HOME/.tools/swift-format-source/.build/release/swift-format $HOME/.tools/swift-format
diff --git a/docker/docker-compose.2204.510.yaml b/docker/docker-compose.2204.510.yaml
deleted file mode 100644
index 20a4467..0000000
--- a/docker/docker-compose.2204.510.yaml
+++ /dev/null
@@ -1,17 +0,0 @@
-version: "3"
-
-services:
-  runtime-setup:
-    image: &image swift-openapi-ahc:22.04-5.10
-    build:
-      args:
-        base_image: "swiftlang/swift:nightly-5.10-jammy"
-
-  test:
-    image: *image
-    environment:
-      - WARN_AS_ERROR_ARG=-Xswiftc -warnings-as-errors
-      - IMPORT_CHECK_ARG=--explicit-target-dependency-import-check error
-
-  shell:
-    image: *image
diff --git a/docker/docker-compose.2204.59.yaml b/docker/docker-compose.2204.59.yaml
deleted file mode 100644
index 75b3e5a..0000000
--- a/docker/docker-compose.2204.59.yaml
+++ /dev/null
@@ -1,19 +0,0 @@
-version: "3"
-
-services:
-  runtime-setup:
-    image: &image swift-openapi-ahc:22.04-5.9
-    build:
-      args:
-        ubuntu_version: "jammy"
-        swift_version: "5.9"
-
-  test:
-    image: *image
-    environment:
-      - WARN_AS_ERROR_ARG=-Xswiftc -warnings-as-errors
-      - IMPORT_CHECK_ARG=--explicit-target-dependency-import-check error
-      - STRICT_CONCURRENCY_ARG=-Xswiftc -strict-concurrency=complete
-
-  shell:
-    image: *image
diff --git a/docker/docker-compose.2204.590.yaml b/docker/docker-compose.2204.590.yaml
deleted file mode 100644
index 4a6bf8d..0000000
--- a/docker/docker-compose.2204.590.yaml
+++ /dev/null
@@ -1,19 +0,0 @@
-version: "3"
-
-services:
-  runtime-setup:
-    image: &image swift-openapi-ahc:22.04-5.9.0
-    build:
-      args:
-        ubuntu_version: "jammy"
-        swift_version: "5.9.0"
-
-  test:
-    image: *image
-    environment:
-      - WARN_AS_ERROR_ARG=-Xswiftc -warnings-as-errors
-      - IMPORT_CHECK_ARG=--explicit-target-dependency-import-check error
-      - STRICT_CONCURRENCY_ARG=-Xswiftc -strict-concurrency=complete
-
-  shell:
-    image: *image
diff --git a/docker/docker-compose.2204.main.yaml b/docker/docker-compose.2204.main.yaml
deleted file mode 100644
index 323b063..0000000
--- a/docker/docker-compose.2204.main.yaml
+++ /dev/null
@@ -1,18 +0,0 @@
-version: "3"
-
-services:
-  runtime-setup:
-    image: &image swift-openapi-ahc:22.04-main
-    build:
-      args:
-        base_image: "swiftlang/swift:nightly-main-jammy"
-
-  test:
-    image: *image
-    environment:
-      # - WARN_AS_ERROR_ARG=-Xswiftc -warnings-as-errors
-      - IMPORT_CHECK_ARG=--explicit-target-dependency-import-check error
-      - STRICT_CONCURRENCY_ARG=-Xswiftc -strict-concurrency=complete
-
-  shell:
-    image: *image
diff --git a/docker/docker-compose.yaml b/docker/docker-compose.yaml
deleted file mode 100644
index 0921dad..0000000
--- a/docker/docker-compose.yaml
+++ /dev/null
@@ -1,38 +0,0 @@
-# NOTE: This file is not designed to be run independently.
-#
-# Instead, use it with a file for a specific OS and Swift version, for example:
-#
-# % docker-compose \
-#   -f docker/docker-compose.yaml \
-#   -f docker/docker-compose.2204.59.yaml \
-#   run test
-#
-version: "3"
-
-services:
-  runtime-setup:
-    image: &image swift-openapi-ahc:default
-    build:
-      context: .
-      dockerfile: Dockerfile
-
-  common: &common
-    image: *image
-    depends_on: [runtime-setup]
-    volumes:
-      - ~/.ssh:/root/.ssh
-      - ..:/code:z
-    working_dir: /code
-
-  soundness:
-    <<: *common
-    command: /bin/bash -xcl "swift -version && uname -a && ./scripts/soundness.sh"
-
-  test:
-    <<: *common
-    command: /bin/bash -xcl "swift $${SWIFT_TEST_VERB-test} $${WARN_AS_ERROR_ARG-} $${SANITIZER_ARG-} $${IMPORT_CHECK_ARG-} $${STRICT_CONCURRENCY_ARG-}"
-
-  shell:
-    <<: *common
-    entrypoint: /bin/bash
-
diff --git a/scripts/check-for-broken-symlinks.sh b/scripts/check-for-broken-symlinks.sh
deleted file mode 100644
index 4df8c92..0000000
--- a/scripts/check-for-broken-symlinks.sh
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/usr/bin/env bash
-##===----------------------------------------------------------------------===##
-##
-## This source file is part of the SwiftOpenAPIGenerator open source project
-##
-## Copyright (c) 2023 Apple Inc. and the SwiftOpenAPIGenerator project authors
-## Licensed under Apache License v2.0
-##
-## See LICENSE.txt for license information
-## See CONTRIBUTORS.txt for the list of SwiftOpenAPIGenerator project authors
-##
-## SPDX-License-Identifier: Apache-2.0
-##
-##===----------------------------------------------------------------------===##
-set -euo pipefail
-
-log() { printf -- "** %s\n" "$*" >&2; }
-error() { printf -- "** ERROR: %s\n" "$*" >&2; }
-fatal() { error "$@"; exit 1; }
-
-CURRENT_SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
-REPO_ROOT="$(git -C "${CURRENT_SCRIPT_DIR}" rev-parse --show-toplevel)"
-
-log "Checking for broken symlinks..."
-NUM_BROKEN_SYMLINKS=0
-while read -r -d '' file; do
-  if ! test -e "${REPO_ROOT}/${file}"; then
-    error "Broken symlink: ${file}"
-    ((NUM_BROKEN_SYMLINKS++))
-  fi
-done < <(git -C "${REPO_ROOT}" ls-files -z)
-
-if [ "${NUM_BROKEN_SYMLINKS}" -gt 0 ]; then
-  fatal "❌ Found ${NUM_BROKEN_SYMLINKS} symlinks."
-fi
-
-log "✅ Found 0 symlinks."
diff --git a/scripts/check-for-docc-warnings.sh b/scripts/check-for-docc-warnings.sh
deleted file mode 100644
index 88215d4..0000000
--- a/scripts/check-for-docc-warnings.sh
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/usr/bin/env bash
-##===----------------------------------------------------------------------===##
-##
-## This source file is part of the SwiftOpenAPIGenerator open source project
-##
-## Copyright (c) 2023 Apple Inc. and the SwiftOpenAPIGenerator project authors
-## Licensed under Apache License v2.0
-##
-## See LICENSE.txt for license information
-## See CONTRIBUTORS.txt for the list of SwiftOpenAPIGenerator project authors
-##
-## SPDX-License-Identifier: Apache-2.0
-##
-##===----------------------------------------------------------------------===##
-
-set -euo pipefail
-
-log() { printf -- "** %s\n" "$*" >&2; }
-error() { printf -- "** ERROR: %s\n" "$*" >&2; }
-fatal() { error "$@"; exit 1; }
-
-log "Checking required environment variables..."
-test -n "${DOCC_TARGET:-}" || fatal "DOCC_TARGET unset"
-
-CURRENT_SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
-REPO_ROOT="$(git -C "${CURRENT_SCRIPT_DIR}" rev-parse --show-toplevel)"
-
-swift package --package-path "${REPO_ROOT}" plugin generate-documentation \
-  --product "${DOCC_TARGET}" \
-  --analyze \
-  --level detailed \
-  --warnings-as-errors \
-  && DOCC_PLUGIN_RC=$? || DOCC_PLUGIN_RC=$?
-
-if [ "${DOCC_PLUGIN_RC}" -ne 0 ]; then
-  fatal "❌ Generating documentation produced warnings and/or errors."
-  exit "${DOCC_PLUGIN_RC}"
-fi
-
-log "✅ Generated documentation with no warnings."
diff --git a/scripts/check-for-unacceptable-language.sh b/scripts/check-for-unacceptable-language.sh
deleted file mode 100644
index 94f79df..0000000
--- a/scripts/check-for-unacceptable-language.sh
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/usr/bin/env bash
-##===----------------------------------------------------------------------===##
-##
-## This source file is part of the SwiftOpenAPIGenerator open source project
-##
-## Copyright (c) 2023 Apple Inc. and the SwiftOpenAPIGenerator project authors
-## Licensed under Apache License v2.0
-##
-## See LICENSE.txt for license information
-## See CONTRIBUTORS.txt for the list of SwiftOpenAPIGenerator project authors
-##
-## SPDX-License-Identifier: Apache-2.0
-##
-##===----------------------------------------------------------------------===##
-set -euo pipefail
-
-log() { printf -- "** %s\n" "$*" >&2; }
-error() { printf -- "** ERROR: %s\n" "$*" >&2; }
-fatal() { error "$@"; exit 1; }
-
-CURRENT_SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
-REPO_ROOT="$(git -C "${CURRENT_SCRIPT_DIR}" rev-parse --show-toplevel)"
-UNACCEPTABLE_LANGUAGE_PATTERNS_PATH="${CURRENT_SCRIPT_DIR}/unacceptable-language.txt"
-
-log "Checking for unacceptable language..."
-PATHS_WITH_UNACCEPTABLE_LANGUAGE=$(git -C "${REPO_ROOT}" grep \
-  -l -F -w \
-  -f "${UNACCEPTABLE_LANGUAGE_PATTERNS_PATH}" \
-  -- \
-  ":(exclude)${UNACCEPTABLE_LANGUAGE_PATTERNS_PATH}" \
-) || true | /usr/bin/paste -s -d " " -
-
-if [ -n "${PATHS_WITH_UNACCEPTABLE_LANGUAGE}" ]; then
-  fatal "❌ Found unacceptable language in files: ${PATHS_WITH_UNACCEPTABLE_LANGUAGE}."
-fi
-
-log "✅ Found no unacceptable language."
diff --git a/scripts/check-license-headers.sh b/scripts/check-license-headers.sh
deleted file mode 100644
index 9a52856..0000000
--- a/scripts/check-license-headers.sh
+++ /dev/null
@@ -1,90 +0,0 @@
-#!/usr/bin/env bash
-##===----------------------------------------------------------------------===##
-##
-## This source file is part of the SwiftOpenAPIGenerator open source project
-##
-## Copyright (c) 2023 Apple Inc. and the SwiftOpenAPIGenerator project authors
-## Licensed under Apache License v2.0
-##
-## See LICENSE.txt for license information
-## See CONTRIBUTORS.txt for the list of SwiftOpenAPIGenerator project authors
-##
-## SPDX-License-Identifier: Apache-2.0
-##
-##===----------------------------------------------------------------------===##
-set -euo pipefail
-
-log() { printf -- "** %s\n" "$*" >&2; }
-error() { printf -- "** ERROR: %s\n" "$*" >&2; }
-fatal() { error "$@"; exit 1; }
-
-CURRENT_SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
-REPO_ROOT="$(git -C "${CURRENT_SCRIPT_DIR}" rev-parse --show-toplevel)"
-
-EXPECTED_FILE_HEADER_TEMPLATE="@@===----------------------------------------------------------------------===@@
-@@
-@@ This source file is part of the SwiftOpenAPIGenerator open source project
-@@
-@@ Copyright (c) YEARS Apple Inc. and the SwiftOpenAPIGenerator project authors
-@@ Licensed under Apache License v2.0
-@@
-@@ See LICENSE.txt for license information
-@@ See CONTRIBUTORS.txt for the list of SwiftOpenAPIGenerator project authors
-@@
-@@ SPDX-License-Identifier: Apache-2.0
-@@
-@@===----------------------------------------------------------------------===@@"
-
-PATHS_WITH_MISSING_LICENSE=( )
-
-read -ra PATHS_TO_CHECK_FOR_LICENSE <<< "$( \
-  git -C "${REPO_ROOT}" ls-files -z \
-  ":(exclude).github/*" \
-  ":(exclude).gitignore" \
-  ":(exclude).spi.yml" \
-  ":(exclude).swift-format" \
-  ":(exclude)CODE_OF_CONDUCT.md" \
-  ":(exclude)CONTRIBUTING.md" \
-  ":(exclude)CONTRIBUTORS.txt" \
-  ":(exclude)LICENSE.txt" \
-  ":(exclude)NOTICE.txt" \
-  ":(exclude)Package.swift" \
-  ":(exclude)README.md" \
-  ":(exclude)SECURITY.md" \
-  ":(exclude)scripts/unacceptable-language.txt" \
-  ":(exclude)docker/*" \
-  ":(exclude)**/*.docc/*" \
-  | xargs -0 \
-)"
-
-for FILE_PATH in "${PATHS_TO_CHECK_FOR_LICENSE[@]}"; do
-  FILE_BASENAME=$(basename -- "${FILE_PATH}")
-  FILE_EXTENSION="${FILE_BASENAME##*.}"
-
-  case "${FILE_EXTENSION}" in
-    swift) EXPECTED_FILE_HEADER=$(sed -e 's|@@|//|g' <<<"${EXPECTED_FILE_HEADER_TEMPLATE}") ;;
-    yml) EXPECTED_FILE_HEADER=$(sed -e 's|@@|##|g' <<<"${EXPECTED_FILE_HEADER_TEMPLATE}") ;;
-    sh) EXPECTED_FILE_HEADER=$(cat <(echo '#!/usr/bin/env bash') <(sed -e 's|@@|##|g' <<<"${EXPECTED_FILE_HEADER_TEMPLATE}")) ;;
-    *) fatal "Unsupported file extension for file (exclude or update this script): ${FILE_PATH}" ;;
-  esac
-  EXPECTED_FILE_HEADER_LINECOUNT=$(wc -l <<<"${EXPECTED_FILE_HEADER}")
-
-  FILE_HEADER=$(head -n "${EXPECTED_FILE_HEADER_LINECOUNT}" "${FILE_PATH}")
-  NORMALIZED_FILE_HEADER=$(
-    echo "${FILE_HEADER}" \
-    | sed -e 's/202[3]-202[3]/YEARS/' -e 's/202[3]/YEARS/' \
-  )
-
-  if ! diff -u \
-    --label "Expected header" <(echo "${EXPECTED_FILE_HEADER}") \
-    --label "${FILE_PATH}" <(echo "${NORMALIZED_FILE_HEADER}")
-  then
-    PATHS_WITH_MISSING_LICENSE+=("${FILE_PATH} ")
-  fi
-done
-
-if [ "${#PATHS_WITH_MISSING_LICENSE[@]}" -gt 0 ]; then
-  fatal "❌ Found missing license header in files: ${PATHS_WITH_MISSING_LICENSE[*]}."
-fi
-
-log "✅ Found no files with missing license header."
diff --git a/scripts/generate-contributors-list.sh b/scripts/generate-contributors-list.sh
deleted file mode 100644
index 99f072e..0000000
--- a/scripts/generate-contributors-list.sh
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/usr/bin/env bash
-##===----------------------------------------------------------------------===##
-##
-## This source file is part of the SwiftOpenAPIGenerator open source project
-##
-## Copyright (c) 2023 Apple Inc. and the SwiftOpenAPIGenerator project authors
-## Licensed under Apache License v2.0
-##
-## See LICENSE.txt for license information
-## See CONTRIBUTORS.txt for the list of SwiftOpenAPIGenerator project authors
-##
-## SPDX-License-Identifier: Apache-2.0
-##
-##===----------------------------------------------------------------------===##
-##===----------------------------------------------------------------------===##
-##
-## 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
-##
-##===----------------------------------------------------------------------===##
-
-set -eu
-here="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
-contributors=$( cd "$here"/.. && git shortlog -es | cut -f2 | sed 's/^/- /' )
-
-cat > "$here/../CONTRIBUTORS.txt" <<- EOF
-	For the purpose of tracking copyright, this is the list of individuals and
-	organizations who have contributed source code to SwiftOpenAPIGenerator.
-
-	For employees of an organization/company where the copyright of work done
-	by employees of that company is held by the company itself, only the company
-	needs to be listed here.
-
-	## COPYRIGHT HOLDERS
-
-	- Apple Inc. (all contributors with '@apple.com')
-
-	### Contributors
-
-	$contributors
-
-	**Updating this list**
-
-	Please do not edit this file manually. It is generated using \`./scripts/generate-contributors-list.sh\`. If a name is misspelled or appearing multiple times: add an entry in \`./.mailmap\`
-EOF
diff --git a/scripts/run-swift-format.sh b/scripts/run-swift-format.sh
deleted file mode 100755
index eefa585..0000000
--- a/scripts/run-swift-format.sh
+++ /dev/null
@@ -1,48 +0,0 @@
-#!/usr/bin/env bash
-##===----------------------------------------------------------------------===##
-##
-## This source file is part of the SwiftOpenAPIGenerator open source project
-##
-## Copyright (c) 2023 Apple Inc. and the SwiftOpenAPIGenerator project authors
-## Licensed under Apache License v2.0
-##
-## See LICENSE.txt for license information
-## See CONTRIBUTORS.txt for the list of SwiftOpenAPIGenerator project authors
-##
-## SPDX-License-Identifier: Apache-2.0
-##
-##===----------------------------------------------------------------------===##
-set -euo pipefail
-
-log() { printf -- "** %s\n" "$*" >&2; }
-error() { printf -- "** ERROR: %s\n" "$*" >&2; }
-fatal() { error "$@"; exit 1; }
-
-CURRENT_SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
-REPO_ROOT="$(git -C "${CURRENT_SCRIPT_DIR}" rev-parse --show-toplevel)"
-
-FORMAT_COMMAND=(lint --strict)
-for arg in "$@"; do
-  if [ "$arg" == "--fix" ]; then
-    FORMAT_COMMAND=(format --in-place)
-  fi
-done
-
-SWIFTFORMAT_BIN=${SWIFTFORMAT_BIN:-$(command -v swift-format)} || fatal "❌ SWIFTFORMAT_BIN unset and no swift-format on PATH"
-
-"${SWIFTFORMAT_BIN}" "${FORMAT_COMMAND[@]}" \
-  --parallel --recursive \
-  "${REPO_ROOT}/Sources" "${REPO_ROOT}/Tests" \
-  && SWIFT_FORMAT_RC=$? || SWIFT_FORMAT_RC=$?
-
-if [ "${SWIFT_FORMAT_RC}" -ne 0 ]; then
-  fatal "❌ Running swift-format produced errors.
-
-  To fix, run the following command:
-
-    % ./scripts/run-swift-format.sh --fix
-  "
-  exit "${SWIFT_FORMAT_RC}"
-fi
-
-log "✅ Ran swift-format with no errors."
diff --git a/scripts/soundness.sh b/scripts/soundness.sh
deleted file mode 100755
index 7543915..0000000
--- a/scripts/soundness.sh
+++ /dev/null
@@ -1,57 +0,0 @@
-#!/usr/bin/env bash
-##===----------------------------------------------------------------------===##
-##
-## This source file is part of the SwiftOpenAPIGenerator open source project
-##
-## Copyright (c) 2023 Apple Inc. and the SwiftOpenAPIGenerator project authors
-## Licensed under Apache License v2.0
-##
-## See LICENSE.txt for license information
-## See CONTRIBUTORS.txt for the list of SwiftOpenAPIGenerator project authors
-##
-## SPDX-License-Identifier: Apache-2.0
-##
-##===----------------------------------------------------------------------===##
-set -euo pipefail
-
-log() { printf -- "** %s\n" "$*" >&2; }
-error() { printf -- "** ERROR: %s\n" "$*" >&2; }
-fatal() { error "$@"; exit 1; }
-
-CURRENT_SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
-NUM_CHECKS_FAILED=0
-export DOCC_TARGET=OpenAPIAsyncHTTPClient
-
-FIX_FORMAT=""
-for arg in "$@"; do
-  if [ "$arg" == "--fix" ]; then
-    FIX_FORMAT="--fix"
-  fi
-done
-
-SCRIPT_PATHS=(
-  "${CURRENT_SCRIPT_DIR}/check-for-broken-symlinks.sh"
-  "${CURRENT_SCRIPT_DIR}/check-for-unacceptable-language.sh"
-  "${CURRENT_SCRIPT_DIR}/check-license-headers.sh"
-  "${CURRENT_SCRIPT_DIR}/check-for-docc-warnings.sh"
-)
-
-for SCRIPT_PATH in "${SCRIPT_PATHS[@]}"; do
-  log "Running ${SCRIPT_PATH}..."
-  if ! bash "${SCRIPT_PATH}"; then
-    ((NUM_CHECKS_FAILED+=1))
-  fi
-done
-
-log "Running swift-format..."
-bash "${CURRENT_SCRIPT_DIR}"/run-swift-format.sh $FIX_FORMAT > /dev/null
-FORMAT_EXIT_CODE=$?
-if [ $FORMAT_EXIT_CODE -ne 0 ]; then
-  ((NUM_CHECKS_FAILED+=1))
-fi
-
-if [ "${NUM_CHECKS_FAILED}" -gt 0 ]; then
-  fatal "❌ ${NUM_CHECKS_FAILED} soundness check(s) failed."
-fi
-
-log "✅ All soundness check(s) passed."
diff --git a/scripts/unacceptable-language.txt b/scripts/unacceptable-language.txt
deleted file mode 100644
index 6ac4a98..0000000
--- a/scripts/unacceptable-language.txt
+++ /dev/null
@@ -1,15 +0,0 @@
-blacklist
-whitelist
-slave
-master
-sane
-sanity
-insane
-insanity
-kill
-killed
-killing
-hang
-hung
-hanged
-hanging

From 4432aee9ac1602cd581e4e2de4734579bca70704 Mon Sep 17 00:00:00 2001
From: Rick Newton-Rogers <rnro@apple.com>
Date: Mon, 11 Nov 2024 09:51:21 +0000
Subject: [PATCH 2/2] disable -strict-concurrency=complete on 5.10

This is in line with the old docker file. It currently fails.
---
 .github/workflows/pull_request.yml | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml
index 2a337d1..50e00f8 100644
--- a/.github/workflows/pull_request.yml
+++ b/.github/workflows/pull_request.yml
@@ -16,7 +16,8 @@ jobs:
     uses: apple/swift-nio/.github/workflows/unit_tests.yml@main
     with:
       linux_5_9_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error -Xswiftc -strict-concurrency=complete"
-      linux_5_10_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error -Xswiftc -strict-concurrency=complete"
+      # TODO: `enable -Xswiftc -strict-concurrency=complete`
+      linux_5_10_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error"
       linux_6_0_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable -Xswiftc -strict-concurrency=complete"
       linux_nightly_6_0_arguments_override: "--explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable"
       linux_nightly_main_arguments_override: "--explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable"