From 1bbaa5aa68be1611c2b9b527edfa80569236e985 Mon Sep 17 00:00:00 2001 From: Josh Elkins Date: Sun, 9 Nov 2025 10:51:52 -0600 Subject: [PATCH 1/5] feat: Add codegen build plugin to AWS services --- .../AWSCLIUtils/FileManager+Utils.swift | 2 ++ .../AWSSDKSwiftCLI/Resources/Package.Base.txt | 20 ++++++++++++++----- Package.swift | 20 ++++++++++++++----- 3 files changed, 32 insertions(+), 10 deletions(-) diff --git a/AWSSDKSwiftCLI/Sources/AWSCLIUtils/FileManager+Utils.swift b/AWSSDKSwiftCLI/Sources/AWSCLIUtils/FileManager+Utils.swift index 0634759c588..3b8a38414b8 100644 --- a/AWSSDKSwiftCLI/Sources/AWSCLIUtils/FileManager+Utils.swift +++ b/AWSSDKSwiftCLI/Sources/AWSCLIUtils/FileManager+Utils.swift @@ -57,6 +57,8 @@ public extension FileManager { .contentsOfDirectory(atPath: "../smithy-swift/Sources") .sorted() .filter { $0 != "libxml2" } // Ignore libxml module + .filter { $0 != "SmithyCodegenCLI" } // Ignore codegen component + .filter { $0 != "SmithyCodegenCore" } // Ignore codegen component .filter { !$0.hasPrefix(".") } } diff --git a/AWSSDKSwiftCLI/Sources/AWSSDKSwiftCLI/Resources/Package.Base.txt b/AWSSDKSwiftCLI/Sources/AWSSDKSwiftCLI/Resources/Package.Base.txt index dcbe1cecd18..88ab28d028a 100644 --- a/AWSSDKSwiftCLI/Sources/AWSSDKSwiftCLI/Resources/Package.Base.txt +++ b/AWSSDKSwiftCLI/Sources/AWSSDKSwiftCLI/Resources/Package.Base.txt @@ -42,6 +42,11 @@ extension Target.Dependency { static var SmithyXML: Self { .product(name: "SmithyXML", package: "smithy-swift") } } +extension Target.PluginUsage { + // Smithy plugins + static var SmithyCodeGenerator: Self { .plugin(name: "SmithyCodeGenerator", package: "smithy-swift") } +} + // MARK: Base Package let package = Package( @@ -198,22 +203,26 @@ private var runtimeTargets: [Target] { .target( name: "InternalAWSSTS", dependencies: internalAWSSTSDependencies, - path: "Sources/Core/AWSSDKIdentity/InternalClients/InternalAWSSTS/Sources/InternalAWSSTS" + path: "Sources/Core/AWSSDKIdentity/InternalClients/InternalAWSSTS/Sources/InternalAWSSTS", + plugins: [.SmithyCodeGenerator] ), .target( name: "InternalAWSSSO", dependencies: internalAWSSSODependencies, - path: "Sources/Core/AWSSDKIdentity/InternalClients/InternalAWSSSO/Sources/InternalAWSSSO" + path: "Sources/Core/AWSSDKIdentity/InternalClients/InternalAWSSSO/Sources/InternalAWSSSO", + plugins: [.SmithyCodeGenerator] ), .target( name: "InternalAWSSSOOIDC", dependencies: internalAWSSSOOIDCDependencies, - path: "Sources/Core/AWSSDKIdentity/InternalClients/InternalAWSSSOOIDC/Sources/InternalAWSSSOOIDC" + path: "Sources/Core/AWSSDKIdentity/InternalClients/InternalAWSSSOOIDC/Sources/InternalAWSSSOOIDC", + plugins: [.SmithyCodeGenerator] ), .target( name: "InternalAWSCognitoIdentity", dependencies: internalAWSCognitoIdentityDependencies, - path: "Sources/Core/AWSSDKIdentity/InternalClients/InternalAWSCognitoIdentity/Sources/InternalAWSCognitoIdentity" + path: "Sources/Core/AWSSDKIdentity/InternalClients/InternalAWSCognitoIdentity/Sources/InternalAWSCognitoIdentity", + plugins: [.SmithyCodeGenerator] ), .target( name: "AWSSDKChecksums", @@ -286,7 +295,8 @@ private func target(_ service: String, _ dependencies: [Target.Dependency]) -> T .target( name: service, dependencies: dependencies, - path: "Sources/Services/\(service)/Sources/\(service)" + path: "Sources/Services/\(service)/Sources/\(service)", + plugins: [.SmithyCodeGenerator] ) } diff --git a/Package.swift b/Package.swift index a6c715a9e8c..38964be41b8 100644 --- a/Package.swift +++ b/Package.swift @@ -480,6 +480,11 @@ extension Target.Dependency { static var SmithyXML: Self { .product(name: "SmithyXML", package: "smithy-swift") } } +extension Target.PluginUsage { + // Smithy plugins + static var SmithyCodeGenerator: Self { .plugin(name: "SmithyCodeGenerator", package: "smithy-swift") } +} + // MARK: Base Package let package = Package( @@ -636,22 +641,26 @@ private var runtimeTargets: [Target] { .target( name: "InternalAWSSTS", dependencies: internalAWSSTSDependencies, - path: "Sources/Core/AWSSDKIdentity/InternalClients/InternalAWSSTS/Sources/InternalAWSSTS" + path: "Sources/Core/AWSSDKIdentity/InternalClients/InternalAWSSTS/Sources/InternalAWSSTS", + plugins: [.SmithyCodeGenerator] ), .target( name: "InternalAWSSSO", dependencies: internalAWSSSODependencies, - path: "Sources/Core/AWSSDKIdentity/InternalClients/InternalAWSSSO/Sources/InternalAWSSSO" + path: "Sources/Core/AWSSDKIdentity/InternalClients/InternalAWSSSO/Sources/InternalAWSSSO", + plugins: [.SmithyCodeGenerator] ), .target( name: "InternalAWSSSOOIDC", dependencies: internalAWSSSOOIDCDependencies, - path: "Sources/Core/AWSSDKIdentity/InternalClients/InternalAWSSSOOIDC/Sources/InternalAWSSSOOIDC" + path: "Sources/Core/AWSSDKIdentity/InternalClients/InternalAWSSSOOIDC/Sources/InternalAWSSSOOIDC", + plugins: [.SmithyCodeGenerator] ), .target( name: "InternalAWSCognitoIdentity", dependencies: internalAWSCognitoIdentityDependencies, - path: "Sources/Core/AWSSDKIdentity/InternalClients/InternalAWSCognitoIdentity/Sources/InternalAWSCognitoIdentity" + path: "Sources/Core/AWSSDKIdentity/InternalClients/InternalAWSCognitoIdentity/Sources/InternalAWSCognitoIdentity", + plugins: [.SmithyCodeGenerator] ), .target( name: "AWSSDKChecksums", @@ -724,7 +733,8 @@ private func target(_ service: String, _ dependencies: [Target.Dependency]) -> T .target( name: service, dependencies: dependencies, - path: "Sources/Services/\(service)/Sources/\(service)" + path: "Sources/Services/\(service)/Sources/\(service)", + plugins: [.SmithyCodeGenerator] ) } From 6b64c5b9735933c2e67c36ac735d82c68b830e90 Mon Sep 17 00:00:00 2001 From: Josh Elkins Date: Sun, 9 Nov 2025 15:51:19 -0600 Subject: [PATCH 2/5] Delete internal clients before codegen --- scripts/codegen.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/codegen.sh b/scripts/codegen.sh index 2574b9ad633..d3909b12813 100755 --- a/scripts/codegen.sh +++ b/scripts/codegen.sh @@ -24,6 +24,7 @@ rm -rf ServiceClients/* rm -rf Sources/Services/* rm -rf Tests/Services/* rm -rf SmokeTests/* +rm -rf Sources/Core/AWSIdentity/InternalClients/* # Regenerate code ./gradlew -p codegen/sdk-codegen build From eda416960865fba07d6409245d152e14a558d17f Mon Sep 17 00:00:00 2001 From: Josh Elkins Date: Wed, 19 Nov 2025 14:50:33 -0600 Subject: [PATCH 3/5] CI From 82d5de0b3131b8ad4d056e551756886cc928b899 Mon Sep 17 00:00:00 2001 From: Josh Elkins Date: Fri, 5 Dec 2025 13:50:58 -0600 Subject: [PATCH 4/5] Add codegen plugin to internal AWSSignin client --- .../Sources/AWSSDKSwiftCLI/Resources/Package.Base.txt | 3 ++- Package.swift | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/AWSSDKSwiftCLI/Sources/AWSSDKSwiftCLI/Resources/Package.Base.txt b/AWSSDKSwiftCLI/Sources/AWSSDKSwiftCLI/Resources/Package.Base.txt index 06b68cd3724..b2a60ebfc77 100644 --- a/AWSSDKSwiftCLI/Sources/AWSSDKSwiftCLI/Resources/Package.Base.txt +++ b/AWSSDKSwiftCLI/Sources/AWSSDKSwiftCLI/Resources/Package.Base.txt @@ -228,7 +228,8 @@ private var runtimeTargets: [Target] { .target( name: "InternalAWSSignin", dependencies: internalAWSSigninDependencies, - path: "Sources/Core/AWSSDKIdentity/InternalClients/InternalAWSSignin/Sources/InternalAWSSignin" + path: "Sources/Core/AWSSDKIdentity/InternalClients/InternalAWSSignin/Sources/InternalAWSSignin", + plugins: [.SmithyCodeGenerator] ), .target( name: "AWSSDKChecksums", diff --git a/Package.swift b/Package.swift index bdc9950c273..9a6200da236 100644 --- a/Package.swift +++ b/Package.swift @@ -676,7 +676,8 @@ private var runtimeTargets: [Target] { .target( name: "InternalAWSSignin", dependencies: internalAWSSigninDependencies, - path: "Sources/Core/AWSSDKIdentity/InternalClients/InternalAWSSignin/Sources/InternalAWSSignin" + path: "Sources/Core/AWSSDKIdentity/InternalClients/InternalAWSSignin/Sources/InternalAWSSignin", + plugins: [.SmithyCodeGenerator] ), .target( name: "AWSSDKChecksums", From db5195afd251767640e73449252e627c669277eb Mon Sep 17 00:00:00 2001 From: Josh Elkins Date: Fri, 12 Dec 2025 10:48:41 -0600 Subject: [PATCH 5/5] Don't apply plugin to internal services --- .../Sources/AWSSDKSwiftCLI/Resources/Package.Base.txt | 2 +- Package.swift | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/AWSSDKSwiftCLI/Sources/AWSSDKSwiftCLI/Resources/Package.Base.txt b/AWSSDKSwiftCLI/Sources/AWSSDKSwiftCLI/Resources/Package.Base.txt index ec7c6012c6d..735476aabb5 100644 --- a/AWSSDKSwiftCLI/Sources/AWSSDKSwiftCLI/Resources/Package.Base.txt +++ b/AWSSDKSwiftCLI/Sources/AWSSDKSwiftCLI/Resources/Package.Base.txt @@ -227,7 +227,7 @@ private var runtimeTargets: [Target] { } private var internalServiceTargets: [Target] { - serviceClientData.filter { $0.serviceType == .internalUse }.map(target(_:)) + serviceClientData.filter { $0.serviceType == .internalUse }.map { .target(name: $0.name, dependencies: $0.dependencies, path: $0.sourcePath) } } private var runtimeTestTargets: [Target] { diff --git a/Package.swift b/Package.swift index 7ffeeefb4e8..cba3c9fe631 100644 --- a/Package.swift +++ b/Package.swift @@ -2359,7 +2359,7 @@ private var runtimeTargets: [Target] { } private var internalServiceTargets: [Target] { - serviceClientData.filter { $0.serviceType == .internalUse }.map(target(_:)) + serviceClientData.filter { $0.serviceType == .internalUse }.map { .target(name: $0.name, dependencies: $0.dependencies, path: $0.sourcePath) } } private var runtimeTestTargets: [Target] {