From 9c3d02ae45231fa534d3230396a1e20ffca72b65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felix=20F=C3=B6rtsch?= Date: Fri, 13 Mar 2026 18:05:02 +0100 Subject: [PATCH] scaffold MagnumOpusCore swift package with four modules Co-Authored-By: Claude Opus 4.6 --- Packages/MagnumOpusCore/Package.resolved | 78 +++++++++++++++++++ Packages/MagnumOpusCore/Package.swift | 55 +++++++++++++ .../Sources/IMAPClient/Placeholder.swift | 1 + .../Sources/MailStore/Placeholder.swift | 1 + .../Sources/Models/Placeholder.swift | 1 + .../Sources/SyncEngine/Placeholder.swift | 1 + .../Tests/IMAPClientTests/Placeholder.swift | 1 + .../Tests/MailStoreTests/Placeholder.swift | 1 + .../Tests/ModelsTests/Placeholder.swift | 1 + .../Tests/SyncEngineTests/Placeholder.swift | 1 + 10 files changed, 141 insertions(+) create mode 100644 Packages/MagnumOpusCore/Package.resolved create mode 100644 Packages/MagnumOpusCore/Package.swift create mode 100644 Packages/MagnumOpusCore/Sources/IMAPClient/Placeholder.swift create mode 100644 Packages/MagnumOpusCore/Sources/MailStore/Placeholder.swift create mode 100644 Packages/MagnumOpusCore/Sources/Models/Placeholder.swift create mode 100644 Packages/MagnumOpusCore/Sources/SyncEngine/Placeholder.swift create mode 100644 Packages/MagnumOpusCore/Tests/IMAPClientTests/Placeholder.swift create mode 100644 Packages/MagnumOpusCore/Tests/MailStoreTests/Placeholder.swift create mode 100644 Packages/MagnumOpusCore/Tests/ModelsTests/Placeholder.swift create mode 100644 Packages/MagnumOpusCore/Tests/SyncEngineTests/Placeholder.swift diff --git a/Packages/MagnumOpusCore/Package.resolved b/Packages/MagnumOpusCore/Package.resolved new file mode 100644 index 0000000..ba81d3b --- /dev/null +++ b/Packages/MagnumOpusCore/Package.resolved @@ -0,0 +1,78 @@ +{ + "originHash" : "a1955dd30653eff5ee0ba37fd1a1ae6889b855a52e62cf725083a2a94b1fc6c1", + "pins" : [ + { + "identity" : "grdb.swift", + "kind" : "remoteSourceControl", + "location" : "https://github.com/groue/GRDB.swift.git", + "state" : { + "revision" : "36e30a6f1ef10e4194f6af0cff90888526f0c115", + "version" : "7.10.0" + } + }, + { + "identity" : "swift-atomics", + "kind" : "remoteSourceControl", + "location" : "https://github.com/apple/swift-atomics.git", + "state" : { + "revision" : "b601256eab081c0f92f059e12818ac1d4f178ff7", + "version" : "1.3.0" + } + }, + { + "identity" : "swift-collections", + "kind" : "remoteSourceControl", + "location" : "https://github.com/apple/swift-collections.git", + "state" : { + "revision" : "8d9834a6189db730f6264db7556a7ffb751e99ee", + "version" : "1.4.0" + } + }, + { + "identity" : "swift-nio", + "kind" : "remoteSourceControl", + "location" : "https://github.com/apple/swift-nio", + "state" : { + "revision" : "b31565862a8f39866af50bc6676160d8dda7de35", + "version" : "2.96.0" + } + }, + { + "identity" : "swift-nio-imap", + "kind" : "remoteSourceControl", + "location" : "https://github.com/apple/swift-nio-imap.git", + "state" : { + "revision" : "0a471f59b2632d04a5f4274e3b94db0d2fc7c839", + "version" : "0.2.0" + } + }, + { + "identity" : "swift-nio-ssl", + "kind" : "remoteSourceControl", + "location" : "https://github.com/apple/swift-nio-ssl.git", + "state" : { + "revision" : "173cc69a058623525a58ae6710e2f5727c663793", + "version" : "2.36.0" + } + }, + { + "identity" : "swift-se0270-range-set", + "kind" : "remoteSourceControl", + "location" : "https://github.com/apple/swift-se0270-range-set.git", + "state" : { + "revision" : "7d6d7531d40e95f4e1e26f6565265be6df228911", + "version" : "1.0.1" + } + }, + { + "identity" : "swift-system", + "kind" : "remoteSourceControl", + "location" : "https://github.com/apple/swift-system.git", + "state" : { + "revision" : "7c6ad0fc39d0763e0b699210e4124afd5041c5df", + "version" : "1.6.4" + } + } + ], + "version" : 3 +} diff --git a/Packages/MagnumOpusCore/Package.swift b/Packages/MagnumOpusCore/Package.swift new file mode 100644 index 0000000..c45b215 --- /dev/null +++ b/Packages/MagnumOpusCore/Package.swift @@ -0,0 +1,55 @@ +// swift-tools-version: 6.0 +import PackageDescription + +let package = Package( + name: "MagnumOpusCore", + // macOS 15+ / iOS 18+ required for Swift 6 strict concurrency + latest SwiftUI APIs + platforms: [ + .macOS(.v15), + .iOS(.v18), + ], + products: [ + .library(name: "Models", targets: ["Models"]), + .library(name: "MailStore", targets: ["MailStore"]), + .library(name: "IMAPClient", targets: ["IMAPClient"]), + .library(name: "SyncEngine", targets: ["SyncEngine"]), + ], + dependencies: [ + .package(url: "https://github.com/apple/swift-nio-imap.git", from: "0.1.0"), + .package(url: "https://github.com/apple/swift-nio-ssl.git", from: "2.27.0"), + .package(url: "https://github.com/groue/GRDB.swift.git", from: "7.0.0"), + ], + targets: [ + .target(name: "Models"), + .target( + name: "MailStore", + dependencies: [ + "Models", + .product(name: "GRDB", package: "GRDB.swift"), + ] + ), + .target( + name: "IMAPClient", + dependencies: [ + "Models", + .product(name: "NIOIMAPCore", package: "swift-nio-imap"), + .product(name: "NIOIMAP", package: "swift-nio-imap"), + .product(name: "NIOSSL", package: "swift-nio-ssl"), + ] + ), + .target( + name: "SyncEngine", + dependencies: ["Models", "IMAPClient", "MailStore"] + ), + .testTarget(name: "ModelsTests", dependencies: ["Models"]), + .testTarget(name: "MailStoreTests", dependencies: ["MailStore"]), + .testTarget( + name: "IMAPClientTests", + dependencies: [ + "IMAPClient", + .product(name: "NIOIMAPCore", package: "swift-nio-imap"), + ] + ), + .testTarget(name: "SyncEngineTests", dependencies: ["SyncEngine", "IMAPClient", "MailStore"]), + ] +) diff --git a/Packages/MagnumOpusCore/Sources/IMAPClient/Placeholder.swift b/Packages/MagnumOpusCore/Sources/IMAPClient/Placeholder.swift new file mode 100644 index 0000000..18050fa --- /dev/null +++ b/Packages/MagnumOpusCore/Sources/IMAPClient/Placeholder.swift @@ -0,0 +1 @@ +enum IMAPClientPlaceholder {} diff --git a/Packages/MagnumOpusCore/Sources/MailStore/Placeholder.swift b/Packages/MagnumOpusCore/Sources/MailStore/Placeholder.swift new file mode 100644 index 0000000..69d38bd --- /dev/null +++ b/Packages/MagnumOpusCore/Sources/MailStore/Placeholder.swift @@ -0,0 +1 @@ +enum MailStorePlaceholder {} diff --git a/Packages/MagnumOpusCore/Sources/Models/Placeholder.swift b/Packages/MagnumOpusCore/Sources/Models/Placeholder.swift new file mode 100644 index 0000000..69d972d --- /dev/null +++ b/Packages/MagnumOpusCore/Sources/Models/Placeholder.swift @@ -0,0 +1 @@ +enum ModelsPlaceholder {} diff --git a/Packages/MagnumOpusCore/Sources/SyncEngine/Placeholder.swift b/Packages/MagnumOpusCore/Sources/SyncEngine/Placeholder.swift new file mode 100644 index 0000000..b9a61cf --- /dev/null +++ b/Packages/MagnumOpusCore/Sources/SyncEngine/Placeholder.swift @@ -0,0 +1 @@ +enum SyncEnginePlaceholder {} diff --git a/Packages/MagnumOpusCore/Tests/IMAPClientTests/Placeholder.swift b/Packages/MagnumOpusCore/Tests/IMAPClientTests/Placeholder.swift new file mode 100644 index 0000000..d196bca --- /dev/null +++ b/Packages/MagnumOpusCore/Tests/IMAPClientTests/Placeholder.swift @@ -0,0 +1 @@ +import Testing diff --git a/Packages/MagnumOpusCore/Tests/MailStoreTests/Placeholder.swift b/Packages/MagnumOpusCore/Tests/MailStoreTests/Placeholder.swift new file mode 100644 index 0000000..d196bca --- /dev/null +++ b/Packages/MagnumOpusCore/Tests/MailStoreTests/Placeholder.swift @@ -0,0 +1 @@ +import Testing diff --git a/Packages/MagnumOpusCore/Tests/ModelsTests/Placeholder.swift b/Packages/MagnumOpusCore/Tests/ModelsTests/Placeholder.swift new file mode 100644 index 0000000..d196bca --- /dev/null +++ b/Packages/MagnumOpusCore/Tests/ModelsTests/Placeholder.swift @@ -0,0 +1 @@ +import Testing diff --git a/Packages/MagnumOpusCore/Tests/SyncEngineTests/Placeholder.swift b/Packages/MagnumOpusCore/Tests/SyncEngineTests/Placeholder.swift new file mode 100644 index 0000000..d196bca --- /dev/null +++ b/Packages/MagnumOpusCore/Tests/SyncEngineTests/Placeholder.swift @@ -0,0 +1 @@ +import Testing