Skip to content

Commit d0dfb23

Browse files
authored
Merge pull request #111 from Adyen/reference-packages-macos
Switching reference packages to .macOS
2 parents e5d9afb + 1f786b8 commit d0dfb23

File tree

16 files changed

+73
-23
lines changed

16 files changed

+73
-23
lines changed

Package.resolved

+2-2
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,8 @@
5050
"kind" : "remoteSourceControl",
5151
"location" : "https://github.com/SimplyDanny/SwiftLintPlugins",
5252
"state" : {
53-
"revision" : "a60b5704f335fc18aa3aea3564c74774a338425f",
54-
"version" : "0.59.0"
53+
"revision" : "8545ddf4de043e6f2051c5cf204f39ef778ebf6b",
54+
"version" : "0.59.1"
5555
}
5656
}
5757
],

Package.swift

+1
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,7 @@ let package = Package(
124124
),
125125
.target(
126126
name: "ShellModule",
127+
dependencies: ["PADLogging"],
127128
path: "Sources/Shared/Package/ShellModule"
128129
),
129130
.target(

ReferencePackages/.DS_Store

0 Bytes
Binary file not shown.

ReferencePackages/ReferencePackage/Package.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import PackageDescription
55

66
let package = Package(
77
name: "ReferencePackage",
8-
platforms: [.iOS(.v17)],
8+
platforms: [.macOS(.v14)],
99
products: [
1010
// Products define the executables and libraries a package produces, making them visible to other packages.
1111
.library(

ReferencePackages/UpdatedPackage/Package.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import PackageDescription
55

66
let package = Package(
77
name: "ReferencePackage",
8-
platforms: [.iOS(.v17)],
8+
platforms: [.macOS(.v14)],
99
products: [
1010
// Products define the executables and libraries a package produces, making them visible to other packages.
1111
.library(

ReferencePackages/UpdatedPackage/Sources/ReferencePackage/ReferencePackage.swift

+8
Original file line numberDiff line numberDiff line change
@@ -234,3 +234,11 @@ public extension CustomEnum where T == String {
234234
return nil
235235
}
236236
}
237+
238+
@available(macOS 14, *)
239+
public enum NewEnumAvailableInVersion17: String, Codable, Equatable {
240+
case case1 = "Case 1"
241+
242+
@available(macOS 15, *)
243+
public func laterAvailableFunction(){}
244+
}

Sources/PublicModules/PADPackageFileAnalyzer/SwiftPackageFileAnalyzer.swift

+2-2
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,14 @@ public struct SwiftPackageFileAnalyzer: SwiftPackageFileAnalyzing {
3030
public init(logger: (any Logging)? = nil) {
3131
self.init(
3232
fileHandler: FileManager.default,
33-
shell: Shell(),
33+
shell: Shell(logger: logger),
3434
logger: logger
3535
)
3636
}
3737

3838
package init(
3939
fileHandler: FileHandling = FileManager.default,
40-
shell: ShellHandling = Shell(),
40+
shell: ShellHandling,
4141
logger: (any Logging)? = nil
4242
) {
4343
self.fileHandler = fileHandler

Sources/PublicModules/PADProjectBuilder/ProjectBuilder.swift

+2-2
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ public struct ProjectBuilder {
5050
platform: platform,
5151
swiftInterfaceType: swiftInterfaceType,
5252
fileHandler: FileManager.default,
53-
shell: Shell(),
53+
shell: Shell(logger: logger),
5454
logger: logger
5555
)
5656
}
@@ -60,7 +60,7 @@ public struct ProjectBuilder {
6060
platform: ProjectPlatform,
6161
swiftInterfaceType: SwiftInterfaceType,
6262
fileHandler: any FileHandling = FileManager.default,
63-
shell: any ShellHandling = Shell(),
63+
shell: any ShellHandling,
6464
logger: (any Logging)?
6565
) {
6666
self.projectType = projectType

Sources/PublicModules/PADProjectBuilder/ProjectSetup/ProjectSetupHelper.swift

+2-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ struct ProjectSetupHelper: ProjectSetupHelping {
2626
init(
2727
workingDirectoryPath: String,
2828
randomStringGenerator: any RandomStringGenerating = RandomStringGenerator(),
29-
shell: any ShellHandling = Shell(),
29+
shell: any ShellHandling,
3030
fileHandler: any FileHandling = FileManager.default,
3131
logger: (any Logging)?
3232
) {
@@ -75,6 +75,7 @@ extension ProjectSetupHelper {
7575
) async throws -> (old: URL, new: URL) {
7676
let projectSetupHelper = ProjectSetupHelper(
7777
workingDirectoryPath: workingDirectoryPath,
78+
shell: Shell(logger: logger),
7879
logger: logger
7980
)
8081

Sources/PublicModules/PADProjectBuilder/SwiftInterfaceProducer/XcodeTools.swift

+2-2
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ struct XcodeTools {
3131
private let logger: Logging?
3232

3333
init(
34-
shell: ShellHandling = Shell(),
34+
shell: ShellHandling,
3535
fileHandler: FileHandling = FileManager.default,
3636
logger: Logging?
3737
) {
@@ -81,7 +81,7 @@ struct XcodeTools {
8181
}
8282

8383
let command = commandComponents.joined(separator: " ")
84-
84+
8585
return try await Task {
8686
logger?.log("📦 Archiving \(scheme) from \(projectDirectoryPath)", from: String(describing: Self.self))
8787

Sources/Shared/Package/ShellModule/Shell.swift

+10-1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
//
66

77
import Foundation
8+
import PADLogging
89

910
package protocol ShellHandling {
1011

@@ -14,7 +15,13 @@ package protocol ShellHandling {
1415

1516
package struct Shell: ShellHandling {
1617

17-
package init() {}
18+
private let logger: Logging?
19+
20+
package init(
21+
logger: Logging?
22+
) {
23+
self.logger = logger
24+
}
1825

1926
@discardableResult
2027
package func execute(_ command: String) -> String {
@@ -29,6 +36,8 @@ package struct Shell: ShellHandling {
2936
task.standardInput = nil
3037
task.launch()
3138

39+
logger?.debug("👾 \(command)", from: String(describing: Self.self))
40+
3241
let data = pipe.fileHandleForReading.readDataToEndOfFile()
3342
return String(data: data, encoding: .utf8) ?? ""
3443
}

Sources/Shared/Public/PADSwiftInterfaceFileLocator/SwiftInterfaceFileLocator.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ public struct SwiftInterfaceFileLocator {
3232
) {
3333
self.init(
3434
fileHandler: FileManager.default,
35-
shell: Shell(),
35+
shell: Shell(logger: logger),
3636
logger: logger
3737
)
3838
}

Tests/IntegrationTests/ReferencePackageTests.swift

+11-6
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
@testable import PADOutputGenerator
99
@testable import PADProjectBuilder
1010
@testable import PADSwiftInterfaceDiff
11+
@testable import PADLogging
12+
import ShellModule
1113
import XCTest
1214

1315
class ReferencePackageTests: XCTestCase {
@@ -24,19 +26,22 @@ class ReferencePackageTests: XCTestCase {
2426
return // Nothing to build
2527
}
2628

27-
let xcodeTools = XcodeTools(logger: nil)
29+
let xcodeTools = XcodeTools(
30+
shell: Shell(logger: nil),
31+
logger: nil
32+
)
2833

2934
_ = try await xcodeTools.archive(
3035
projectDirectoryPath: oldReferencePackageDirectory.path(),
3136
scheme: "ReferencePackage",
3237
projectType: .swiftPackage,
33-
platform: .iOS
38+
platform: .macOS
3439
)
3540
_ = try await xcodeTools.archive(
3641
projectDirectoryPath: newReferencePackageDirectory.path(),
3742
scheme: "ReferencePackage",
3843
projectType: .swiftPackage,
39-
platform: .iOS
44+
platform: .macOS
4045
)
4146
}
4247

@@ -64,7 +69,7 @@ class ReferencePackageTests: XCTestCase {
6469
newVersionName: "new_public",
6570
warnings: []
6671
)
67-
72+
6873
let expectedLines = sanitizeOutput(expectedOutput).components(separatedBy: "\n")
6974
let markdownOutputLines = sanitizeOutput(markdownOutput).components(separatedBy: "\n")
7075

@@ -131,9 +136,9 @@ private extension ReferencePackageTests {
131136
var interfaceFilePath: String {
132137
switch self {
133138
case .public:
134-
"\(XcodeTools.Constants.derivedDataPath)/Build/Products/Debug-iphoneos/ReferencePackage.swiftmodule/arm64-apple-ios.swiftinterface"
139+
"\(XcodeTools.Constants.derivedDataPath)/Build/Products/Debug/ReferencePackage.swiftmodule/arm64-apple-macos.swiftinterface"
135140
case .private:
136-
"\(XcodeTools.Constants.derivedDataPath)/Build/Products/Debug-iphoneos/ReferencePackage.swiftmodule/arm64-apple-ios.private.swiftinterface"
141+
"\(XcodeTools.Constants.derivedDataPath)/Build/Products/Debug/ReferencePackage.swiftmodule/arm64-apple-macos.private.swiftinterface"
137142
}
138143
}
139144
}

Tests/IntegrationTests/Resources/expected-reference-changes-swift-interface-private.md

+14-2
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,23 @@
1-
# ⚠️ 57 public changes detected ⚠️
1+
# ⚠️ 58 public changes detected ⚠️
22
_Comparing `new_private` to `old_private`_
3-
<table><tr><td>❇️</td><td><b>33 Additions</b></td></tr><tr><td>🔀</td><td><b>22 Modifications</b></td></tr><tr><td>❌</td><td><b>2 Removals</b></td></tr></table>
3+
<table><tr><td>❇️</td><td><b>34 Additions</b></td></tr><tr><td>🔀</td><td><b>22 Modifications</b></td></tr><tr><td>❌</td><td><b>2 Removals</b></td></tr></table>
44

55
---
66
## `ReferencePackage`
77
#### ❇️ Added
88
```javascript
9+
@available(macOS 14, *)
10+
public enum NewEnumAvailableInVersion17: Swift.Codable, Swift.Equatable, Swift.Hashable, Swift.RawRepresentable, Swift.String {
11+
@available(macOS 14, *)
12+
public typealias RawValue = Swift.String
13+
@available(macOS 15, *)
14+
public func laterAvailableFunction() -> Swift.Void
15+
case case1
16+
public init?(rawValue: Swift.String)
17+
public var rawValue: Swift.String { get }
18+
}
19+
```
20+
```javascript
921
@resultBuilder
1022
public struct SomeResultBuilder {
1123
public static func buildBlock(_ components: Swift.String) -> Swift.String

Tests/IntegrationTests/Resources/expected-reference-changes-swift-interface-public.md

+14-2
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,23 @@
1-
# ⚠️ 48 public changes detected ⚠️
1+
# ⚠️ 49 public changes detected ⚠️
22
_Comparing `new_public` to `old_public`_
3-
<table><tr><td>❇️</td><td><b>30 Additions</b></td></tr><tr><td>🔀</td><td><b>16 Modifications</b></td></tr><tr><td>❌</td><td><b>2 Removals</b></td></tr></table>
3+
<table><tr><td>❇️</td><td><b>31 Additions</b></td></tr><tr><td>🔀</td><td><b>16 Modifications</b></td></tr><tr><td>❌</td><td><b>2 Removals</b></td></tr></table>
44

55
---
66
## `ReferencePackage`
77
#### ❇️ Added
88
```javascript
9+
@available(macOS 14, *)
10+
public enum NewEnumAvailableInVersion17: Swift.Codable, Swift.Equatable, Swift.Hashable, Swift.RawRepresentable, Swift.String {
11+
@available(macOS 14, *)
12+
public typealias RawValue = Swift.String
13+
@available(macOS 15, *)
14+
public func laterAvailableFunction() -> Swift.Void
15+
case case1
16+
public init?(rawValue: Swift.String)
17+
public var rawValue: Swift.String { get }
18+
}
19+
```
20+
```javascript
921
@resultBuilder
1022
public struct SomeResultBuilder {
1123
public static func buildBlock(_ components: Swift.String) -> Swift.String

Tests/UnitTests/SwiftPackageFileAnalyzerTests.swift

+2
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
@testable import PADCore
88
@testable import PADPackageFileAnalyzer
99
@testable import PADProjectBuilder
10+
import ShellModule
1011

1112
@testable import SwiftPackageFileHelperModule
1213

@@ -261,6 +262,7 @@ class SwiftPackageFileAnalyzerTests: XCTestCase {
261262
}
262263
let projectAnalyzer = SwiftPackageFileAnalyzer(
263264
fileHandler: fileHandler,
265+
shell: Shell(logger: nil),
264266
logger: nil
265267
)
266268

0 commit comments

Comments
 (0)