From ad5c5e9c57bf2c82b5ca4f79cf9730614b170e7a Mon Sep 17 00:00:00 2001 From: BJ Miller Date: Mon, 15 Sep 2025 10:04:33 -0400 Subject: [PATCH 01/33] Set version range in manifest, up to local swift version to resolve --- Package.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Package.swift b/Package.swift index ca616c4..8592c8a 100644 --- a/Package.swift +++ b/Package.swift @@ -19,7 +19,7 @@ let package = Package( ), ], dependencies: [ - .package(url: "https://github.com/swiftlang/swift-syntax", from: "509.1.0"), + .package(url: "https://github.com/swiftlang/swift-syntax", "509.1.0"..<"602.0.0"), // We only really need swift-macro-testing 0.3.0 or newer but 0.4.0 is required to compile due // to breaking changes in swift-snapshot-testing. .package(url: "https://github.com/pointfreeco/swift-macro-testing.git", from: "0.4.0"), From f0eefbecf93172be74a91e31ead8b87fe6a8f118 Mon Sep 17 00:00:00 2001 From: BJ Miller Date: Wed, 24 Sep 2025 15:39:36 -0700 Subject: [PATCH 02/33] Bump to Swift 6.0 and up major --- Package.resolved | 7 ++++--- Package.swift | 4 ++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Package.resolved b/Package.resolved index d25ff1c..bc4e19a 100644 --- a/Package.resolved +++ b/Package.resolved @@ -1,4 +1,5 @@ { + "originHash" : "15814f79ce243f84480670d719bb28981b0b3c450df10d2fcb91f042bcd175bb", "pins" : [ { "identity" : "swift-custom-dump", @@ -32,8 +33,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/swiftlang/swift-syntax", "state" : { - "revision" : "64889f0c732f210a935a0ad7cda38f77f876262d", - "version" : "509.1.1" + "revision" : "0687f71944021d616d34d922343dcef086855920", + "version" : "600.0.1" } }, { @@ -46,5 +47,5 @@ } } ], - "version" : 2 + "version" : 3 } diff --git a/Package.swift b/Package.swift index 8592c8a..159b7ba 100644 --- a/Package.swift +++ b/Package.swift @@ -1,4 +1,4 @@ -// swift-tools-version: 5.9 +// swift-tools-version: 6.0 import CompilerPluginSupport import PackageDescription @@ -19,7 +19,7 @@ let package = Package( ), ], dependencies: [ - .package(url: "https://github.com/swiftlang/swift-syntax", "509.1.0"..<"602.0.0"), + .package(url: "https://github.com/swiftlang/swift-syntax", "509.1.0"..<"603.0.0"), // We only really need swift-macro-testing 0.3.0 or newer but 0.4.0 is required to compile due // to breaking changes in swift-snapshot-testing. .package(url: "https://github.com/pointfreeco/swift-macro-testing.git", from: "0.4.0"), From fe50a00f11d668cdc7de3bbdbc58f06d858e0f86 Mon Sep 17 00:00:00 2001 From: Joseph Duffy Date: Sat, 3 Jan 2026 14:09:29 -0800 Subject: [PATCH 03/33] Use same version range in Package@swift-5.9.swift --- Package@swift-5.9.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Package@swift-5.9.swift b/Package@swift-5.9.swift index ca616c4..08f5bc8 100644 --- a/Package@swift-5.9.swift +++ b/Package@swift-5.9.swift @@ -19,7 +19,7 @@ let package = Package( ), ], dependencies: [ - .package(url: "https://github.com/swiftlang/swift-syntax", from: "509.1.0"), + .package(url: "https://github.com/swiftlang/swift-syntax", "509.1.0"..<"603.0.0"), // We only really need swift-macro-testing 0.3.0 or newer but 0.4.0 is required to compile due // to breaking changes in swift-snapshot-testing. .package(url: "https://github.com/pointfreeco/swift-macro-testing.git", from: "0.4.0"), From 138dd5fc452224dd420019d60ba2bd93c8076b9c Mon Sep 17 00:00:00 2001 From: Joseph Duffy Date: Sat, 3 Jan 2026 14:09:42 -0800 Subject: [PATCH 04/33] Test swift-sytnax range on CI --- .github/workflows/tests.yml | 43 +++++++++++++++++++++++++++++++++++++ Mintfile | 1 + 2 files changed, 44 insertions(+) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index da2a631..93d97e4 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -76,6 +76,49 @@ jobs: files: ${{ join(fromJSON(steps.convert-coverage.outputs.files), ',') }} fail_ci_if_error: true + generate_swift_syntax_version: + name: Generate Swift Syntax Versions + runs-on: macOS-latest + outputs: + matrix: ${{ steps.set-matrix.outputs.matrix }} + steps: + - uses: actions/checkout@v4 + + - run: brew install mint + + - name: Cache Mint + uses: actions/cache@v3 + with: + path: ~/.mint + key: ${{ runner.os }}-mint-xcode_${{ matrix.xcode }}-${{ hashFiles('**/Mintfile') }} + restore-keys: | + ${{ runner.os }}-mint-xcode_${{ matrix.xcode }} + + - run: mint bootstrap + + - name: Set up matrix + id: set-matrix + run: | + matrix="$(mint run josephduffy/swift-dependency-compatibility-checker swift-syntax --resolve-only --github-actions-matrix)" + echo "${matrix}" + echo "matrix=${matrix}" >> "${GITHUB_OUTPUT}" + + test_swift_syntax_versions: + name: Swift Syntax ${{ matrix.version }} Tests + needs: + - generate_swift_syntax_version + runs-on: macOS-latest + strategy: + fail-fast: false + matrix: ${{ fromJson(needs.generate_swift_syntax_version.outputs.matrix) }} + + steps: + - uses: actions/checkout@v4 + + - run: swift package resolve swift-syntax --version ${{ matrix.version }} + + - run: swift test | mint run xcbeautify --renderer github-actions + generate_xcode_tests_matrix: name: Generate Xcode Tests Matrix runs-on: ubuntu-latest diff --git a/Mintfile b/Mintfile index 18627cf..8d8d4dd 100644 --- a/Mintfile +++ b/Mintfile @@ -1,2 +1,3 @@ josephduffy/xcutils@v0.3.0 +josephduffy/swift-dependency-compatibility-checker tuist/xcbeautify@1.0.1 From 5175c11fdac00c9545355b3dfb55f89b2c203b3b Mon Sep 17 00:00:00 2001 From: Joseph Duffy Date: Sat, 3 Jan 2026 14:19:56 -0800 Subject: [PATCH 05/33] Run tests on pull request target --- .github/workflows/tests.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index e5d91cd..23da850 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -3,8 +3,7 @@ name: Tests on: push: pull_request: - branches: - - "**:**" # PRs from forks have a prefix with `owner:` + pull_request_target: concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} From b5c0933f580592964755e5c6d78bd73441a87d9b Mon Sep 17 00:00:00 2001 From: Joseph Duffy Date: Sat, 3 Jan 2026 14:26:02 -0800 Subject: [PATCH 06/33] Pin swift-dependency-compatibility-checker to main branch --- Mintfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Mintfile b/Mintfile index 8d8d4dd..ae568e6 100644 --- a/Mintfile +++ b/Mintfile @@ -1,3 +1,3 @@ josephduffy/xcutils@v0.3.0 -josephduffy/swift-dependency-compatibility-checker +josephduffy/swift-dependency-compatibility-checker@main tuist/xcbeautify@1.0.1 From ef31eaedd8714f1d5ecc6cbf65906bd54b3722dd Mon Sep 17 00:00:00 2001 From: Joseph Duffy Date: Sat, 3 Jan 2026 14:39:57 -0800 Subject: [PATCH 07/33] Allow Codebcov upload to fail for PRs from forks --- .github/workflows/tests.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 23da850..4145e24 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -73,7 +73,7 @@ jobs: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} with: files: ${{ join(fromJSON(steps.convert-coverage.outputs.files), ',') }} - fail_ci_if_error: true + fail_ci_if_error: ${{ github.event.action != 'pull_request_target' }} generate_swift_syntax_version: name: Generate Swift Syntax Versions @@ -187,7 +187,7 @@ jobs: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} with: files: ${{ join(fromJSON(steps.convert-coverage.outputs.files), ',') }} - fail_ci_if_error: true + fail_ci_if_error: ${{ github.event.action != 'pull_request_target' }} linux_tests: name: Swift ${{ matrix.swift }} on ${{ matrix.os }} From 00f5411fa235bf431ed19b46655870d140ece3a2 Mon Sep 17 00:00:00 2001 From: Joseph Duffy Date: Sat, 3 Jan 2026 15:03:19 -0800 Subject: [PATCH 08/33] Remove swift-dependency-compatibility-checker from Mintfile --- .github/workflows/tests.yml | 8 ++------ Mintfile | 1 - 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 4145e24..8ee631a 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -89,16 +89,12 @@ jobs: uses: actions/cache@v3 with: path: ~/.mint - key: ${{ runner.os }}-mint-xcode_${{ matrix.xcode }}-${{ hashFiles('**/Mintfile') }} - restore-keys: | - ${{ runner.os }}-mint-xcode_${{ matrix.xcode }} - - - run: mint bootstrap + key: ${{ runner.os }}-mint-swift-dependency-compatibility-checker - name: Set up matrix id: set-matrix run: | - matrix="$(mint run josephduffy/swift-dependency-compatibility-checker swift-syntax --resolve-only --github-actions-matrix)" + matrix="$(mint run josephduffy/swift-dependency-compatibility-checker@main swift-syntax --resolve-only --github-actions-matrix)" echo "${matrix}" echo "matrix=${matrix}" >> "${GITHUB_OUTPUT}" diff --git a/Mintfile b/Mintfile index ae568e6..18627cf 100644 --- a/Mintfile +++ b/Mintfile @@ -1,3 +1,2 @@ josephduffy/xcutils@v0.3.0 -josephduffy/swift-dependency-compatibility-checker@main tuist/xcbeautify@1.0.1 From 2c9a5edcb4eedbfab2aeeceb6612ded328a98bdc Mon Sep 17 00:00:00 2001 From: Joseph Duffy Date: Sat, 3 Jan 2026 15:06:29 -0800 Subject: [PATCH 09/33] Skip Codecov upload for PRs from forks --- .github/workflows/tests.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 8ee631a..2bd267d 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -69,11 +69,12 @@ jobs: - name: Upload coverage to Codecov uses: codecov/codecov-action@v3 + if: ${{ github.event.action != 'pull_request_target' }} env: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} with: files: ${{ join(fromJSON(steps.convert-coverage.outputs.files), ',') }} - fail_ci_if_error: ${{ github.event.action != 'pull_request_target' }} + fail_ci_if_error: true generate_swift_syntax_version: name: Generate Swift Syntax Versions @@ -179,11 +180,12 @@ jobs: - name: Upload coverage to Codecov uses: codecov/codecov-action@v3 + if: ${{ github.event.action != 'pull_request_target' }} env: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} with: files: ${{ join(fromJSON(steps.convert-coverage.outputs.files), ',') }} - fail_ci_if_error: ${{ github.event.action != 'pull_request_target' }} + fail_ci_if_error: true linux_tests: name: Swift ${{ matrix.swift }} on ${{ matrix.os }} From a0e4d7e2b81f70267d56bc44d1ce87b9da3fd8f3 Mon Sep 17 00:00:00 2001 From: Joseph Duffy Date: Sat, 3 Jan 2026 15:09:31 -0800 Subject: [PATCH 10/33] Set Package.resolved version to 2 --- Package.resolved | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Package.resolved b/Package.resolved index bc4e19a..99a1b63 100644 --- a/Package.resolved +++ b/Package.resolved @@ -47,5 +47,5 @@ } } ], - "version" : 3 + "version" : 2 } From d1fb3d9067a80aa23c90f9ed389d4e1ef591e5d7 Mon Sep 17 00:00:00 2001 From: Joseph Duffy Date: Sat, 3 Jan 2026 15:20:23 -0800 Subject: [PATCH 11/33] Remove support for Swift < 6.0 --- .github/workflows/tests.yml | 6 +-- Package@swift-5.9.swift | 73 ------------------------------------- 2 files changed, 1 insertion(+), 78 deletions(-) delete mode 100644 Package@swift-5.9.swift diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 2bd267d..2bc64be 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -17,10 +17,6 @@ jobs: fail-fast: false matrix: include: - - os: "macos-14" - xcode: "15.1" # Swift 5.9. Same as 15.2. - - os: "macos-14" - xcode: "15.3" # Swift 5.10. Same as 15.4. - os: "macos-15" xcode: "16.0" # Swift 6.0. Same as 16.1 and 16.2. - os: "macos-15" @@ -196,7 +192,7 @@ jobs: fail-fast: false matrix: os: ["ubuntu-latest"] - swift: ["5.9.2", "5.10", "6.0", "6.1", "6.2"] + swift: ["6.0", "6.1", "6.2"] steps: - uses: actions/checkout@v4 diff --git a/Package@swift-5.9.swift b/Package@swift-5.9.swift deleted file mode 100644 index 08f5bc8..0000000 --- a/Package@swift-5.9.swift +++ /dev/null @@ -1,73 +0,0 @@ -// swift-tools-version: 5.9 -import CompilerPluginSupport -import PackageDescription - -let package = Package( - name: "HashableMacro", - platforms: [ - .macOS(.v10_15), - .iOS(.v13), - .tvOS(.v13), - .watchOS(.v6), - .macCatalyst(.v13), - .visionOS(.v1), - ], - products: [ - .library( - name: "HashableMacro", - targets: ["HashableMacro"] - ), - ], - dependencies: [ - .package(url: "https://github.com/swiftlang/swift-syntax", "509.1.0"..<"603.0.0"), - // We only really need swift-macro-testing 0.3.0 or newer but 0.4.0 is required to compile due - // to breaking changes in swift-snapshot-testing. - .package(url: "https://github.com/pointfreeco/swift-macro-testing.git", from: "0.4.0"), - ], - targets: [ - .target( - name: "HashableMacro", - dependencies: [ - .targetItem( - name: "HashableMacroFoundation", - condition: .when( - platforms: [.macOS, .iOS, .tvOS, .watchOS, .macCatalyst, .visionOS] - ) - ), - "HashableMacroMacros", - ], - swiftSettings: [.enableExperimentalFeature("StrictConcurrency")] - ), - .target( - name: "HashableMacroFoundation", - swiftSettings: [.enableExperimentalFeature("StrictConcurrency")] - ), - .macro( - name: "HashableMacroMacros", - dependencies: [ - .targetItem( - name: "HashableMacroFoundation", - condition: .when( - platforms: [.macOS, .iOS, .tvOS, .watchOS, .macCatalyst] - ) - ), - .product(name: "SwiftDiagnostics", package: "swift-syntax"), - .product(name: "SwiftSyntax", package: "swift-syntax"), - .product(name: "SwiftSyntaxMacros", package: "swift-syntax"), - .product(name: "SwiftCompilerPlugin", package: "swift-syntax"), - ], - swiftSettings: [.enableExperimentalFeature("StrictConcurrency")] - ), - .testTarget( - name: "HashableMacroTests", - dependencies: [ - "HashableMacro", - "HashableMacroMacros", - .product(name: "MacroTesting", package: "swift-macro-testing"), - .product(name: "SwiftSyntaxMacros", package: "swift-syntax"), - .product(name: "SwiftSyntaxMacrosTestSupport", package: "swift-syntax"), - ], - swiftSettings: [.enableExperimentalFeature("StrictConcurrency")] - ), - ] -) From 8887acccac1c4c00f4dc678783cbbe820b3b0a0c Mon Sep 17 00:00:00 2001 From: Joseph Duffy Date: Sat, 3 Jan 2026 15:20:32 -0800 Subject: [PATCH 12/33] Silent output for mint to enable parsing as matrix --- .github/workflows/tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 2bc64be..9ba0a7d 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -91,7 +91,7 @@ jobs: - name: Set up matrix id: set-matrix run: | - matrix="$(mint run josephduffy/swift-dependency-compatibility-checker@main swift-syntax --resolve-only --github-actions-matrix)" + matrix="$(mint run --silent josephduffy/swift-dependency-compatibility-checker@main swift-syntax --resolve-only --github-actions-matrix)" echo "${matrix}" echo "matrix=${matrix}" >> "${GITHUB_OUTPUT}" From f18dac9b98e6653f85f74a6daf30cd020af15e28 Mon Sep 17 00:00:00 2001 From: Joseph Duffy Date: Sat, 3 Jan 2026 15:20:45 -0800 Subject: [PATCH 13/33] Check event name for pull request target, not `event.action` --- .github/workflows/tests.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 9ba0a7d..ce27a96 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -65,7 +65,7 @@ jobs: - name: Upload coverage to Codecov uses: codecov/codecov-action@v3 - if: ${{ github.event.action != 'pull_request_target' }} + if: ${{ github.event_name != 'pull_request_target' }} env: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} with: @@ -176,7 +176,7 @@ jobs: - name: Upload coverage to Codecov uses: codecov/codecov-action@v3 - if: ${{ github.event.action != 'pull_request_target' }} + if: ${{ github.event_name != 'pull_request_target' }} env: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} with: From 3bd73a4c0aa054db84ba52dae24bf25eaacd3358 Mon Sep 17 00:00:00 2001 From: Joseph Duffy Date: Sat, 3 Jan 2026 18:37:18 -0800 Subject: [PATCH 14/33] Revert Package.resolved changes --- Package.resolved | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Package.resolved b/Package.resolved index 99a1b63..d25ff1c 100644 --- a/Package.resolved +++ b/Package.resolved @@ -1,5 +1,4 @@ { - "originHash" : "15814f79ce243f84480670d719bb28981b0b3c450df10d2fcb91f042bcd175bb", "pins" : [ { "identity" : "swift-custom-dump", @@ -33,8 +32,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/swiftlang/swift-syntax", "state" : { - "revision" : "0687f71944021d616d34d922343dcef086855920", - "version" : "600.0.1" + "revision" : "64889f0c732f210a935a0ad7cda38f77f876262d", + "version" : "509.1.1" } }, { From 6e67d8aafef3fcdb81548faf5c5a981fc4396c33 Mon Sep 17 00:00:00 2001 From: Joseph Duffy Date: Sun, 4 Jan 2026 10:13:47 -0800 Subject: [PATCH 15/33] Remove testing of Swift < 6.0 --- .github/generate-xcode-tests-matrix.sh | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/generate-xcode-tests-matrix.sh b/.github/generate-xcode-tests-matrix.sh index 6eaaac9..1518707 100755 --- a/.github/generate-xcode-tests-matrix.sh +++ b/.github/generate-xcode-tests-matrix.sh @@ -5,8 +5,6 @@ set -e platforms='["macOS","iOS","tvOS","watchOS","macCatalyst","visionOS"]' includes='[ - {"os":"macos-14", "xcode":"15.2", "swift": "5.9"}, - {"os":"macos-14", "xcode":"15.3", "swift": "5.10"}, {"os":"macos-15", "xcode":"16.0", "swift": "6.0"}, {"os":"macos-15", "xcode":"16.3", "swift": "6.1"}, {"os":"macos-26", "xcode":"26.0.1", "swift": "6.2"} From 4a95d28ea93496f29f35aa0234dc16dc87e67472 Mon Sep 17 00:00:00 2001 From: Joseph Duffy Date: Sun, 4 Jan 2026 10:22:12 -0800 Subject: [PATCH 16/33] Use codecov-actions@v5, which should support uploading from forks Maybe it will need `use_oidc`? --- .github/workflows/tests.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index ce27a96..b8a9ced 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -64,12 +64,11 @@ jobs: fail-on-empty-output: true - name: Upload coverage to Codecov - uses: codecov/codecov-action@v3 - if: ${{ github.event_name != 'pull_request_target' }} + uses: codecov/codecov-action@v5 env: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} with: - files: ${{ join(fromJSON(steps.convert-coverage.outputs.files), ',') }} + file: ${{ join(fromJSON(steps.convert-coverage.outputs.files), ',') }} fail_ci_if_error: true generate_swift_syntax_version: @@ -107,6 +106,8 @@ jobs: steps: - uses: actions/checkout@v4 + - run: swift package resolve + - run: swift package resolve swift-syntax --version ${{ matrix.version }} - run: swift test | mint run xcbeautify --renderer github-actions @@ -175,12 +176,11 @@ jobs: fail-on-empty-output: true - name: Upload coverage to Codecov - uses: codecov/codecov-action@v3 - if: ${{ github.event_name != 'pull_request_target' }} + uses: codecov/codecov-action@v5 env: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} with: - files: ${{ join(fromJSON(steps.convert-coverage.outputs.files), ',') }} + file: ${{ join(fromJSON(steps.convert-coverage.outputs.files), ',') }} fail_ci_if_error: true linux_tests: From 986ca90ad86c0dca8b6291d78998faab422150f9 Mon Sep 17 00:00:00 2001 From: Joseph Duffy Date: Sun, 4 Jan 2026 10:35:30 -0800 Subject: [PATCH 17/33] Use `files`, which is the _replacement_, not the deprecated argument --- .github/workflows/tests.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index b8a9ced..98915e9 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -68,7 +68,7 @@ jobs: env: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} with: - file: ${{ join(fromJSON(steps.convert-coverage.outputs.files), ',') }} + files: ${{ join(fromJSON(steps.convert-coverage.outputs.files), ',') }} fail_ci_if_error: true generate_swift_syntax_version: @@ -180,7 +180,7 @@ jobs: env: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} with: - file: ${{ join(fromJSON(steps.convert-coverage.outputs.files), ',') }} + files: ${{ join(fromJSON(steps.convert-coverage.outputs.files), ',') }} fail_ci_if_error: true linux_tests: From b0caa74ea4f299c39b59872d784f3695a87fb0a8 Mon Sep 17 00:00:00 2001 From: Joseph Duffy Date: Sun, 4 Jan 2026 10:37:27 -0800 Subject: [PATCH 18/33] Select Xcode 26.0.1, install mint --- .github/workflows/tests.yml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 98915e9..2317d21 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -106,6 +106,22 @@ jobs: steps: - uses: actions/checkout@v4 + - name: Select Xcode 26.0.1 + run: sudo xcode-select --switch /Applications/Xcode_26.0.1.app + + - name: Install Mint + run: brew install mint + + - name: Cache Mint + uses: actions/cache@v3 + with: + path: ~/.mint + key: ${{ runner.os }}-mint-xcode_26.0.1-${{ hashFiles('**/Mintfile') }} + restore-keys: | + ${{ runner.os }}-mint-xcode_26.0.1 + + - run: mint bootstrap + - run: swift package resolve - run: swift package resolve swift-syntax --version ${{ matrix.version }} From 86795fd869b371839bb1b33d8969b0e47c44f188 Mon Sep 17 00:00:00 2001 From: Joseph Duffy Date: Sun, 4 Jan 2026 11:20:33 -0800 Subject: [PATCH 19/33] Include macOS version in cache keys --- .github/workflows/tests.yml | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 2317d21..1d168c9 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -37,9 +37,9 @@ jobs: uses: actions/cache@v3 with: path: ~/.mint - key: ${{ runner.os }}-mint-xcode_${{ matrix.xcode }}-${{ hashFiles('**/Mintfile') }} + key: ${{ runner.os }}-${{ matrix.os }}-mint-xcode_${{ matrix.xcode }}-${{ hashFiles('**/Mintfile') }} restore-keys: | - ${{ runner.os }}-mint-xcode_${{ matrix.xcode }} + ${{ runner.os }}-${{ matrix.os }}-mint-xcode_${{ matrix.xcode }} - run: mint bootstrap @@ -47,11 +47,11 @@ jobs: uses: actions/cache@v3 with: path: .build - key: ${{ runner.os }}-xcode_${{ matrix.xcode }}-swiftpm-${{ github.ref }}-${{ hashFiles('**/Package.resolved') }} + key: ${{ runner.os }}-${{ matrix.os }}-xcode_${{ matrix.xcode }}-swiftpm-${{ github.ref }}-${{ hashFiles('**/Package.resolved') }} restore-keys: | - ${{ runner.os }}-xcode_${{ matrix.xcode }}-swiftpm-${{ github.ref }}- - ${{ runner.os }}-xcode_${{ matrix.xcode }}-swiftpm-main- - ${{ runner.os }}-xcode_${{ matrix.xcode }}-swiftpm- + ${{ runner.os }}-${{ matrix.os }}-xcode_${{ matrix.xcode }}-swiftpm-${{ github.ref }}- + ${{ runner.os }}-${{ matrix.os }}-xcode_${{ matrix.xcode }}-swiftpm-main- + ${{ runner.os }}-${{ matrix.os }}-xcode_${{ matrix.xcode }}-swiftpm- - name: SwiftPM tests run: swift test --enable-code-coverage | mint run xcbeautify --renderer github-actions @@ -73,7 +73,7 @@ jobs: generate_swift_syntax_version: name: Generate Swift Syntax Versions - runs-on: macOS-latest + runs-on: macos-26 outputs: matrix: ${{ steps.set-matrix.outputs.matrix }} steps: @@ -85,7 +85,7 @@ jobs: uses: actions/cache@v3 with: path: ~/.mint - key: ${{ runner.os }}-mint-swift-dependency-compatibility-checker + key: macOS-macos-26-mint-swift-dependency-compatibility-checker - name: Set up matrix id: set-matrix @@ -98,7 +98,7 @@ jobs: name: Swift Syntax ${{ matrix.version }} Tests needs: - generate_swift_syntax_version - runs-on: macOS-latest + runs-on: macos-26 strategy: fail-fast: false matrix: ${{ fromJson(needs.generate_swift_syntax_version.outputs.matrix) }} @@ -116,9 +116,9 @@ jobs: uses: actions/cache@v3 with: path: ~/.mint - key: ${{ runner.os }}-mint-xcode_26.0.1-${{ hashFiles('**/Mintfile') }} + key: macOS-macos-26-mint-xcode_26.0.1-${{ hashFiles('**/Mintfile') }} restore-keys: | - ${{ runner.os }}-mint-xcode_26.0.1 + macOS-macos-26-mint-xcode_26.0.1 - run: mint bootstrap @@ -165,9 +165,9 @@ jobs: uses: actions/cache@v3 with: path: ~/.mint - key: ${{ runner.os }}-mint-xcode_${{ matrix.xcode }}-${{ hashFiles('**/Mintfile') }} + key: ${{ runner.os }}-${{ matrix.os }}-mint-xcode_${{ matrix.xcode }}-${{ hashFiles('**/Mintfile') }} restore-keys: | - ${{ runner.os }}-mint-xcode_${{ matrix.xcode }} + ${{ runner.os }}-${{ matrix.os }}-mint-xcode_${{ matrix.xcode }} - run: mint bootstrap @@ -175,10 +175,10 @@ jobs: uses: actions/cache@v3 with: path: ~/Library/Developer/Xcode/DerivedData - key: ${{ runner.os }}-xcode_${{ matrix.xcode }}-derived_data-${{ github.ref }} + key: ${{ runner.os }}-${{ matrix.os }}-xcode_${{ matrix.xcode }}-derived_data-${{ github.ref }} restore-keys: | - ${{ runner.os }}-xcode_${{ matrix.xcode }}-derived_data-main - ${{ runner.os }}-xcode_${{ matrix.xcode }}-derived_data- + ${{ runner.os }}-${{ matrix.os }}-xcode_${{ matrix.xcode }}-derived_data-main + ${{ runner.os }}-${{ matrix.os }}-xcode_${{ matrix.xcode }}-derived_data- - name: Run Tests run: | From f7dcbde95aa13ac829a775176f6e6f9b774360d0 Mon Sep 17 00:00:00 2001 From: Joseph Duffy Date: Sun, 4 Jan 2026 13:06:58 -0800 Subject: [PATCH 20/33] Update xcbeautify to 3.1.2 1.0.1 is very old. Support for parsing `swift test` output (or specifically Swift Testing?) was in 2.12.0. --- Mintfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Mintfile b/Mintfile index 18627cf..8f4c8af 100644 --- a/Mintfile +++ b/Mintfile @@ -1,2 +1,2 @@ josephduffy/xcutils@v0.3.0 -tuist/xcbeautify@1.0.1 +cpisciotta/xcbeautify@3.1.2 From b39a251ce62b9b967fa32d1ebace4ea7628edabd Mon Sep 17 00:00:00 2001 From: Joseph Duffy Date: Sun, 4 Jan 2026 13:17:31 -0800 Subject: [PATCH 21/33] Use xcbeautify 2.30.1 to support Swift 6.0 It actually support Swift 5.9, but we just need down to 6.0 right now --- Mintfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Mintfile b/Mintfile index 8f4c8af..ec13f25 100644 --- a/Mintfile +++ b/Mintfile @@ -1,2 +1,2 @@ josephduffy/xcutils@v0.3.0 -cpisciotta/xcbeautify@3.1.2 +cpisciotta/xcbeautify@2.30.1 From 99a1d7506152f539fa093144e3dc7a5d1fab0b56 Mon Sep 17 00:00:00 2001 From: Joseph Duffy Date: Sun, 4 Jan 2026 18:29:27 -0800 Subject: [PATCH 22/33] Fail job when tests fail --- .github/workflows/tests.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 1d168c9..1534afb 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -54,7 +54,9 @@ jobs: ${{ runner.os }}-${{ matrix.os }}-xcode_${{ matrix.xcode }}-swiftpm- - name: SwiftPM tests - run: swift test --enable-code-coverage | mint run xcbeautify --renderer github-actions + run: | + set -o pipefail + swift test --enable-code-coverage | mint run xcbeautify --renderer github-actions - name: Convert coverage for Codecov id: convert-coverage @@ -126,7 +128,9 @@ jobs: - run: swift package resolve swift-syntax --version ${{ matrix.version }} - - run: swift test | mint run xcbeautify --renderer github-actions + - run: | + set -o pipefail + swift test | mint run xcbeautify --renderer github-actions generate_xcode_tests_matrix: name: Generate Xcode Tests Matrix From b72409f4de08c0b787b1f2fab1154f9a158740d2 Mon Sep 17 00:00:00 2001 From: Joseph Duffy Date: Sun, 4 Jan 2026 18:36:39 -0800 Subject: [PATCH 23/33] Fix tests with Swift Syntax 510.0.0 or greater --- .../HashableMacroTests.swift | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/Tests/HashableMacroTests/HashableMacroTests.swift b/Tests/HashableMacroTests/HashableMacroTests.swift index 8c10714..4dcb149 100644 --- a/Tests/HashableMacroTests/HashableMacroTests.swift +++ b/Tests/HashableMacroTests/HashableMacroTests.swift @@ -1001,6 +1001,27 @@ final class HashableMacroTests: XCTestCase { func testHashedAttachedToMultiplePropertyDeclaration() throws { #if canImport(HashableMacroMacros) + #if canImport(SwiftSyntax510) + assertMacro(testMacros) { + """ + @Hashable(_disableNSObjectSubclassSupport: true) + struct TestStruct { + @Hashed + var hashedProperty, secondHashedProperty: String + } + """ + } diagnostics: { + """ + @Hashable(_disableNSObjectSubclassSupport: true) + struct TestStruct { + @Hashed + ┬────── + ╰─ 🛑 peer macro can only be applied to a single variable + var hashedProperty, secondHashedProperty: String + } + """ + } + #else assertMacro(testMacros) { """ @Hashable(_disableNSObjectSubclassSupport: true) @@ -1030,6 +1051,7 @@ final class HashableMacroTests: XCTestCase { } """ } + #endif #else throw XCTSkip("Macros are only supported when running tests for the host platform") #endif From 6380ed111f7534c94a7cfb0a9ee0d654be01561a Mon Sep 17 00:00:00 2001 From: Joseph Duffy Date: Sun, 4 Jan 2026 18:45:49 -0800 Subject: [PATCH 24/33] Fix warning on Swift Syntax 600.0.0 --- .../Macros/HashableMacro+Hashable.swift | 21 +++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/Sources/HashableMacroMacros/Macros/HashableMacro+Hashable.swift b/Sources/HashableMacroMacros/Macros/HashableMacro+Hashable.swift index fbab69e..a5d52d8 100644 --- a/Sources/HashableMacroMacros/Macros/HashableMacro+Hashable.swift +++ b/Sources/HashableMacroMacros/Macros/HashableMacro+Hashable.swift @@ -55,16 +55,29 @@ extension HashableMacro { ) } + let hashFunctionType: AttributedTypeSyntax + + #if canImport(SwiftSyntax600) + hashFunctionType = AttributedTypeSyntax( + specifiers: [ + .simpleTypeSpecifier(SimpleTypeSpecifierSyntax(specifier: .keyword(.inout))) + ], + baseType: TypeSyntax(stringLiteral: "Hasher") + ) + #else + hashFunctionType = AttributedTypeSyntax( + specifier: .keyword(.inout), + baseType: TypeSyntax(stringLiteral: "Hasher") + ) + #endif + let hashFunctionSignature = FunctionSignatureSyntax( parameterClause: FunctionParameterClauseSyntax( parameters: [ FunctionParameterSyntax( firstName: .identifier("into"), secondName: .identifier("hasher"), - type: AttributedTypeSyntax( - specifier: .keyword(.inout), - baseType: TypeSyntax(stringLiteral: "Hasher") - ) + type: hashFunctionType ), ] ) From 85f1605d8dd3dee8b6cb4b10cc02e9032987585d Mon Sep 17 00:00:00 2001 From: Joseph Duffy Date: Sun, 4 Jan 2026 18:45:55 -0800 Subject: [PATCH 25/33] Fix expected output on Swift Syntax 600.0.0 --- .../HashableMacroTests/HashableMacroTests.swift | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/Tests/HashableMacroTests/HashableMacroTests.swift b/Tests/HashableMacroTests/HashableMacroTests.swift index 4dcb149..08dfe95 100644 --- a/Tests/HashableMacroTests/HashableMacroTests.swift +++ b/Tests/HashableMacroTests/HashableMacroTests.swift @@ -192,6 +192,13 @@ final class HashableMacroTests: XCTestCase { func testEmbeddedType() throws { #if canImport(HashableMacroMacros) + #if canImport(SwiftSyntax600) + let outputsFullTypeName = true + #else + // This should always out e.g. `extension Outer.InnerStruct` but the tester does not output + // this until Swift Syntax 600.0.0. + let outputsFullTypeName = false + #endif assertMacro(testMacros) { """ enum Outer { @@ -212,7 +219,6 @@ final class HashableMacroTests: XCTestCase { } """ } expansion: { - // This should be e.g. `extension Outer.InnerStruct` but the tester does not output this. """ enum Outer { struct InnerStruct { @@ -227,25 +233,25 @@ final class HashableMacroTests: XCTestCase { } } - extension InnerStruct { + extension \(outputsFullTypeName ? "Outer." : "")InnerStruct { func hash(into hasher: inout Hasher) { hasher.combine(self.hashedProperty) } } - extension InnerStruct { + extension \(outputsFullTypeName ? "Outer." : "")InnerStruct { static func ==(lhs: Self, rhs: Self) -> Bool { return lhs.hashedProperty == rhs.hashedProperty } } - extension InnerClass { + extension \(outputsFullTypeName ? "Outer." : "")InnerClass { final func hash(into hasher: inout Hasher) { hasher.combine(self.hashedProperty) } } - extension InnerClass { + extension \(outputsFullTypeName ? "Outer." : "")InnerClass { static func ==(lhs: Outer.InnerClass, rhs: Outer.InnerClass) -> Bool { return lhs.hashedProperty == rhs.hashedProperty } From ce94fcf2a86b97a6c243d5a9619e924dd9a138d5 Mon Sep 17 00:00:00 2001 From: Joseph Duffy Date: Sun, 4 Jan 2026 19:20:53 -0800 Subject: [PATCH 26/33] Fix test assertions on Swift Syntax 602.0.0 --- .../HashableMacroTests.swift | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/Tests/HashableMacroTests/HashableMacroTests.swift b/Tests/HashableMacroTests/HashableMacroTests.swift index 08dfe95..77d34ef 100644 --- a/Tests/HashableMacroTests/HashableMacroTests.swift +++ b/Tests/HashableMacroTests/HashableMacroTests.swift @@ -1544,8 +1544,20 @@ final class HashableMacroTests: XCTestCase { // MARK: - Edge cases func testPropertyAfterIfConfig() throws { + #if canImport(SwiftSyntax602) + let includesCompilerConditionals = true + #else // The `#if os(macOS)` will be parsed an attribute of the // `notHashedProperty` property. + let includesCompilerConditionals = false + #endif + let conditionalNotHashed = + """ + #if os(macOS) + @NotHashed + #endif + + """ #if canImport(HashableMacroMacros) assertMacro(testMacros) { """ @@ -1553,18 +1565,14 @@ final class HashableMacroTests: XCTestCase { struct Test { @Hashed var hashablePropery: String - - #if os(macOS) - @NotHashed - #endif - var notHashedProperty: String + \(conditionalNotHashed)var notHashedProperty: String } """ } expansion: { """ struct Test { var hashablePropery: String - var notHashedProperty: String + \(includesCompilerConditionals ? conditionalNotHashed : "")var notHashedProperty: String } extension Test { From c3573a92c1d03d2547d8a847f349ddd92dffd411 Mon Sep 17 00:00:00 2001 From: Joseph Duffy Date: Sun, 4 Jan 2026 19:21:09 -0800 Subject: [PATCH 27/33] Only compile against Swift Syntax 601.0.0 --- .github/workflows/tests.yml | 11 ++++++++++- Package.swift | 1 + 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 1534afb..2b45e13 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -128,10 +128,19 @@ jobs: - run: swift package resolve swift-syntax --version ${{ matrix.version }} - - run: | + - name: Run Tests + # swift-macro-testing does not compile with swift-syntax 601.0.0 + if: ${{ matrix.version != "601.0.0" }} + run: | set -o pipefail swift test | mint run xcbeautify --renderer github-actions + - name: Compile Tests + if: ${{ matrix.version == "601.0.0" }} + run: | + set -o pipefail + swift build | mint run xcbeautify --renderer github-actions + generate_xcode_tests_matrix: name: Generate Xcode Tests Matrix runs-on: ubuntu-latest diff --git a/Package.swift b/Package.swift index ece77a9..ea0816e 100644 --- a/Package.swift +++ b/Package.swift @@ -19,6 +19,7 @@ let package = Package( ), ], dependencies: [ + // Tests (specifically swift-snapshot-testing) do not support 601.0.0 but the project does build. .package(url: "https://github.com/swiftlang/swift-syntax", "509.1.0"..<"603.0.0"), // We only really need swift-macro-testing 0.3.0 or newer but 0.4.0 is required to compile due // to breaking changes in swift-snapshot-testing. From 1efc3020898e98640554c310f22582263760ae29 Mon Sep 17 00:00:00 2001 From: Joseph Duffy Date: Sun, 4 Jan 2026 19:25:05 -0800 Subject: [PATCH 28/33] Use single quotes to fix syntax error --- .github/workflows/tests.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 2b45e13..16ffa8b 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -130,13 +130,13 @@ jobs: - name: Run Tests # swift-macro-testing does not compile with swift-syntax 601.0.0 - if: ${{ matrix.version != "601.0.0" }} + if: ${{ matrix.version != '601.0.0' }} run: | set -o pipefail swift test | mint run xcbeautify --renderer github-actions - name: Compile Tests - if: ${{ matrix.version == "601.0.0" }} + if: ${{ matrix.version == '601.0.0' }} run: | set -o pipefail swift build | mint run xcbeautify --renderer github-actions From 4dfb825ec7a1db692f0ad9ea64951c0b325c9f34 Mon Sep 17 00:00:00 2001 From: Joseph Duffy Date: Sun, 4 Jan 2026 19:50:42 -0800 Subject: [PATCH 29/33] Replace deprecated inputs --- .github/workflows/tests.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 16ffa8b..cf3689e 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -257,8 +257,8 @@ jobs: - name: Install Swift uses: compnerd/gha-setup-swift@main with: - branch: ${{ matrix.branch }} - tag: ${{ matrix.tag }} + swift-version: ${{ matrix.branch }} + swift-build: ${{ matrix.tag }} - name: swift test run: swift test From e7ef043c398740252e69c285b7eec026db1da8cd Mon Sep 17 00:00:00 2001 From: Joseph Duffy Date: Sun, 4 Jan 2026 19:50:50 -0800 Subject: [PATCH 30/33] Always depend on HashableMacroFoundation --- Package.swift | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/Package.swift b/Package.swift index ea0816e..d43f0de 100644 --- a/Package.swift +++ b/Package.swift @@ -46,12 +46,7 @@ let package = Package( .macro( name: "HashableMacroMacros", dependencies: [ - .targetItem( - name: "HashableMacroFoundation", - condition: .when( - platforms: [.macOS, .iOS, .tvOS, .watchOS, .macCatalyst] - ) - ), + "HashableMacroFoundation", .product(name: "SwiftDiagnostics", package: "swift-syntax"), .product(name: "SwiftSyntax", package: "swift-syntax"), .product(name: "SwiftSyntaxMacros", package: "swift-syntax"), From e3a1cd9bccb02fddfe87fb04b678b6d81e7c8d1d Mon Sep 17 00:00:00 2001 From: Joseph Duffy Date: Sun, 4 Jan 2026 19:50:59 -0800 Subject: [PATCH 31/33] Fix step name --- .github/workflows/tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index cf3689e..5e2568d 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -135,7 +135,7 @@ jobs: set -o pipefail swift test | mint run xcbeautify --renderer github-actions - - name: Compile Tests + - name: Compile Project if: ${{ matrix.version == '601.0.0' }} run: | set -o pipefail From 1942390f2f5cdc80b274f7f82cae95185c34d674 Mon Sep 17 00:00:00 2001 From: Joseph Duffy Date: Sun, 4 Jan 2026 19:51:16 -0800 Subject: [PATCH 32/33] Upload coverage for all Swift Syntax versions --- .github/workflows/tests.yml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 5e2568d..a1778d7 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -141,6 +141,23 @@ jobs: set -o pipefail swift build | mint run xcbeautify --renderer github-actions + - name: Convert coverage for Codecov + id: convert-coverage + uses: sersoft-gmbh/swift-coverage-action@v4 + if: ${{ matrix.version != '601.0.0' }} + with: + ignore-conversion-failures: true + fail-on-empty-output: true + + - name: Upload coverage to Codecov + uses: codecov/codecov-action@v5 + if: ${{ matrix.version != '601.0.0' }} + env: + CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} + with: + files: ${{ join(fromJSON(steps.convert-coverage.outputs.files), ',') }} + fail_ci_if_error: true + generate_xcode_tests_matrix: name: Generate Xcode Tests Matrix runs-on: ubuntu-latest From a750a1c5da5577c13c52cd40c91a050c0d7fe8d6 Mon Sep 17 00:00:00 2001 From: Joseph Duffy Date: Sun, 4 Jan 2026 21:31:54 -0800 Subject: [PATCH 33/33] Enable code coverage --- .github/workflows/tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index a1778d7..f7e1c9f 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -133,7 +133,7 @@ jobs: if: ${{ matrix.version != '601.0.0' }} run: | set -o pipefail - swift test | mint run xcbeautify --renderer github-actions + swift test --enable-code-coverage | mint run xcbeautify --renderer github-actions - name: Compile Project if: ${{ matrix.version == '601.0.0' }}