From 3b659441702bac678221229f225011170f8c33b2 Mon Sep 17 00:00:00 2001 From: fxwx23 Date: Mon, 16 Jun 2025 15:20:31 +0900 Subject: [PATCH 1/4] Update swift-tools-version --- Package.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Package.swift b/Package.swift index e7a0b1e..a4b629f 100644 --- a/Package.swift +++ b/Package.swift @@ -1,4 +1,4 @@ -// swift-tools-version: 5.6 +// swift-tools-version: 6.0 import PackageDescription From a51aaa1745c8ce3a52e2ad33c13f25cdde33ae99 Mon Sep 17 00:00:00 2001 From: fxwx23 Date: Mon, 16 Jun 2025 15:29:37 +0900 Subject: [PATCH 2/4] Fix to use vapor/swiftly-action --- .github/workflows/test.yml | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 82956c0..64aac13 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -17,13 +17,16 @@ jobs: run: swift test -v test-linux: - if: false - runs-on: ubuntu-22.04 + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + swift: ["6.0", "6.1"] steps: - uses: actions/checkout@v3 - - uses: swift-actions/setup-swift@v2 + - uses: vapor/swiftly-action@v0.2 with: - swift-version: "6.1.0" + toolchain: ${{ matrix.swift }} - name: Get swift version run: swift --version - name: Prepare Git From 513b7cf001931a2a4a22bb82acd77f9ee76b595e Mon Sep 17 00:00:00 2001 From: fxwx23 Date: Mon, 16 Jun 2025 15:45:46 +0900 Subject: [PATCH 3/4] Use `swiftLanguageMode(.v5)` due to lack of concurrency-safety --- Package.swift | 77 ++++++++++++++++++++++++++++++++++----------------- 1 file changed, 52 insertions(+), 25 deletions(-) diff --git a/Package.swift b/Package.swift index a4b629f..1e61194 100644 --- a/Package.swift +++ b/Package.swift @@ -16,36 +16,61 @@ let products: [PackageDescription.Product] = [ let targets: [PackageDescription.Target] = [ .executableTarget( name: "xcode-selective-test", - dependencies: ["SelectiveTestingCore", - .product(name: "ArgumentParser", package: "swift-argument-parser")] + dependencies: [ + "SelectiveTestingCore", + .product(name: "ArgumentParser", package: "swift-argument-parser"), + ], + swiftSettings: [.swiftLanguageMode(.v5)] ), - .target(name: "SelectiveTestingCore", - dependencies: ["DependencyCalculator", - "TestConfigurator", - "Git", - "PathKit", - "Rainbow", - "Yams"]), - .target(name: "DependencyCalculator", - dependencies: ["Workspace", "PathKit", "SelectiveTestLogger", "Git"]), - .target(name: "TestConfigurator", - dependencies: ["Workspace", "PathKit", "SelectiveTestLogger"]), - .target(name: "Workspace", - dependencies: ["XcodeProj", "SelectiveTestLogger"]), - .target(name: "Git", - dependencies: ["SelectiveTestShell", "SelectiveTestLogger", "PathKit"]), - .target(name: "SelectiveTestLogger", - dependencies: ["Rainbow"]), - .target(name: "SelectiveTestShell"), + .target( + name: "SelectiveTestingCore", + dependencies: [ + "DependencyCalculator", + "TestConfigurator", + "Git", + "PathKit", + "Rainbow", + "Yams", + ], + swiftSettings: [.swiftLanguageMode(.v5)] + ), + .target( + name: "DependencyCalculator", + dependencies: ["Workspace", "PathKit", "SelectiveTestLogger", "Git"], + swiftSettings: [.swiftLanguageMode(.v5)] + ), + .target( + name: "TestConfigurator", + dependencies: ["Workspace", "PathKit", "SelectiveTestLogger"], + swiftSettings: [.swiftLanguageMode(.v5)] + ), + .target( + name: "Workspace", + dependencies: ["XcodeProj", "SelectiveTestLogger"], + swiftSettings: [.swiftLanguageMode(.v5)] + ), + .target( + name: "Git", + dependencies: ["SelectiveTestShell", "SelectiveTestLogger", "PathKit"], + swiftSettings: [.swiftLanguageMode(.v5)] + ), + .target( + name: "SelectiveTestLogger", + dependencies: ["Rainbow"], + swiftSettings: [.swiftLanguageMode(.v5)] + ), + .target(name: "SelectiveTestShell", swiftSettings: [.swiftLanguageMode(.v5)]), .testTarget( name: "SelectiveTestingTests", dependencies: ["xcode-selective-test", "PathKit"], - resources: [.copy("ExampleProject")] + resources: [.copy("ExampleProject")], + swiftSettings: [.swiftLanguageMode(.v5)] ), .testTarget( name: "DependencyCalculatorTests", dependencies: ["DependencyCalculator", "Workspace", "PathKit", "SelectiveTestingCore"], - resources: [.copy("ExamplePackages")] + resources: [.copy("ExamplePackages")], + swiftSettings: [.swiftLanguageMode(.v5)] ), .plugin( name: "SelectiveTestingPlugin", @@ -55,7 +80,7 @@ let targets: [PackageDescription.Target] = [ description: "Configure test plan for current changeset" ), permissions: [ - .writeToPackageDirectory(reason: "Update test plan file"), + .writeToPackageDirectory(reason: "Update test plan file") ] ), dependencies: ["xcode-selective-test"] @@ -65,12 +90,14 @@ let targets: [PackageDescription.Target] = [ let package = Package( name: "XcodeSelectiveTesting", platforms: [ - .macOS(.v12), + .macOS(.v12) ], products: products, dependencies: [ .package(url: "https://github.com/tuist/XcodeProj.git", .upToNextMajor(from: "9.0.2")), - .package(url: "https://github.com/apple/swift-argument-parser.git", .upToNextMajor(from: "1.2.0")), + .package( + url: "https://github.com/apple/swift-argument-parser.git", .upToNextMajor(from: "1.2.0") + ), .package(url: "https://github.com/kylef/PathKit.git", .upToNextMinor(from: "1.0.0")), .package(url: "https://github.com/onevcat/Rainbow", .upToNextMajor(from: "4.0.0")), .package(url: "https://github.com/jpsim/Yams.git", from: "5.0.5"), From 1819fa4d991ea17b7f7cbb55ef0357027160fbaf Mon Sep 17 00:00:00 2001 From: fxwx23 Date: Mon, 16 Jun 2025 15:49:07 +0900 Subject: [PATCH 4/4] Run tests on synchronize --- .github/workflows/test.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 64aac13..c03e898 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -4,7 +4,6 @@ on: push: branches: [ "main" ] pull_request: - types: [opened, reopened] jobs: test: