Skip to content

Commit 6ff0426

Browse files
authored
Drop support for Swift 5.3 & 5.4. (#494)
1 parent 57b576f commit 6ff0426

File tree

15 files changed

+30
-81
lines changed

15 files changed

+30
-81
lines changed

.github/workflows/test.yml

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -15,18 +15,12 @@ jobs:
1515
strategy:
1616
fail-fast: false
1717
matrix:
18-
xcode: ["13.3.1", "13.2.1", "13.1", "12.5.1", "12.4"]
18+
xcode: ["13.3.1", "13.2.1"]
1919
include:
2020
- xcode: "13.3.1"
2121
macos: macOS-12
2222
- xcode: "13.2.1"
2323
macos: macOS-11
24-
- xcode: "13.1"
25-
macos: macOS-11
26-
- xcode: "12.5.1"
27-
macos: macOS-11
28-
- xcode: "12.4"
29-
macos: macOS-11
3024
runs-on: ${{ matrix.macos }}
3125
name: macOS
3226
steps:
@@ -61,20 +55,14 @@ jobs:
6155
strategy:
6256
fail-fast: false
6357
matrix:
64-
swift: ["5.6", "5.5", "5.4", "5.3"]
58+
swift: ["5.6", "5.5"]
6559
include:
6660
- swift: "5.6"
6761
container: "swift:5.6"
6862
cache-version: 2
6963
- swift: "5.5"
7064
container: "swift:5.5"
7165
cache-version: 2
72-
- swift: "5.4"
73-
container: "swift:5.4"
74-
cache-version: 2
75-
- swift: "5.3"
76-
container: "swift:5.3"
77-
cache-version: 2
7866
runs-on: ubuntu-20.04
7967
container: ${{ matrix.container }}
8068
name: Linux

CHANGELOG.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,16 @@
22

33
##### Breaking
44

5-
- None.
5+
- Swift 5.5 or later is now required.
66

77
##### Enhancements
88

9+
- Add support for Swift 5.6.
910
- Output is now line buffered when writing to a fifo/pipe.
1011

1112
##### Bug Fixes
1213

13-
- None.
14+
- IBSegueAction annotated functions are now retained.
1415

1516
## 2.8.6 (2022-01-06)
1617

Package.resolved

Lines changed: 6 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Package.swift

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,13 @@ import PackageDescription
55
let swiftSyntaxVersion: Package.Dependency.Requirement = .exact("0.50600.1-static")
66
#elseif compiler(>=5.5)
77
let swiftSyntaxVersion: Package.Dependency.Requirement = .exact("0.50500.0-static")
8-
#elseif compiler(>=5.4)
9-
let swiftSyntaxVersion: Package.Dependency.Requirement = .exact("0.50400.0")
10-
#elseif compiler(>=5.3)
11-
let swiftSyntaxVersion: Package.Dependency.Requirement = .exact("0.50300.0")
128
#else
13-
fatalError("This version of Periphery does not support Swift <= 5.2.")
9+
fatalError("This version of Periphery requires Swift >= 5.5.")
1410
#endif
1511

1612
var dependencies: [Package.Dependency] = [
1713
.package(url: "https://github.com/apple/swift-system", from: "1.0.0"),
18-
.package(url: "https://github.com/jpsim/Yams", from: "4.0.0"),
14+
.package(url: "https://github.com/jpsim/Yams", from: "5.0.0"),
1915
.package(url: "https://github.com/tadija/AEXML", from: "4.0.0"),
2016
.package(url: "https://github.com/apple/swift-argument-parser", from: "1.0.0"),
2117
.package(name: "SwiftIndexStore", url: "https://github.com/kateinoigakukun/swift-indexstore", from: "0.0.0"),

Sources/Frontend/Project.swift

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,7 @@ final class Project {
3030
let logger: Logger = inject()
3131

3232
logger.debug(SwiftVersion.current.fullVersion)
33-
34-
if SwiftVersion.current.version.isVersion(lessThanOrEqualTo: "5.2") {
35-
throw PeripheryError.swiftVersionUnsupportedError(version: SwiftVersion.current.fullVersion)
36-
}
33+
try SwiftVersion.current.validateVersion()
3734

3835
switch kind {
3936
case .xcode:

Sources/PeripheryKit/Analyzer/Analyzer.swift

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@ public final class Analyzer {
4545
EncodablePropertyRetainer.self,
4646
StringInterpolationAppendInterpolationRetainer.self,
4747
PropertyWrapperRetainer.self,
48-
OptionalProtocolMemberRetainer.self,
4948
ResultBuilderRetainer.self,
5049

5150
PlainExtensionEliminator.self,

Sources/PeripheryKit/Analyzer/Visitors/OptionalProtocolMemberRetainer.swift

Lines changed: 0 additions & 25 deletions
This file was deleted.

Sources/PeripheryKit/SPM/SPM.swift

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -47,12 +47,7 @@ public struct SPM {
4747

4848
func build(additionalArguments: [String]) throws {
4949
let shell: Shell = inject()
50-
var args: [String] = ["swift", "build", "--target", name] + additionalArguments
51-
52-
if SwiftVersion.current.version.isVersion(lessThan: "5.4") {
53-
args.append("--enable-test-discovery")
54-
}
55-
50+
let args: [String] = ["swift", "build", "--target", name] + additionalArguments
5651
try shell.exec(args)
5752
}
5853
}

Sources/PeripheryKit/SPM/SPMProjectDriver.swift

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -83,10 +83,6 @@ extension SPMProjectDriver: ProjectDriver {
8383
// MARK: - Private
8484

8585
private func absolutePath(for target: SPM.Target) -> FilePath {
86-
if SwiftVersion.current.version.isVersion(greaterThanOrEqualTo: "5.4") {
87-
return FilePath(package.path).appending(target.path)
88-
} else {
89-
return FilePath(target.path)
90-
}
86+
FilePath(package.path).appending(target.path)
9187
}
9288
}

Sources/PeripheryKit/SwiftVersion.swift

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ import Shared
44
public struct SwiftVersion {
55
public static let current = Self()
66

7+
static let minimumVersion = "5.5"
8+
79
public let version: VersionString
810
public let fullVersion: String
911

@@ -12,4 +14,12 @@ public struct SwiftVersion {
1214
self.fullVersion = try! shell.exec(["swift", "-version"]).trimmed
1315
self.version = try! SwiftVersionParser.parse(fullVersion)
1416
}
17+
18+
public func validateVersion() throws {
19+
if Self.current.version.isVersion(lessThan: Self.minimumVersion) {
20+
throw PeripheryError.swiftVersionUnsupportedError(
21+
version: SwiftVersion.current.fullVersion,
22+
minimumVersion: Self.minimumVersion)
23+
}
24+
}
1525
}

0 commit comments

Comments
 (0)