Skip to content

Commit 3429c4d

Browse files
authored
[Infra] Bump swift-tools-version in Package.swift (#15026)
1 parent e45e488 commit 3429c4d

File tree

4 files changed

+85
-21
lines changed

4 files changed

+85
-21
lines changed

FirebaseAI/Sources/Types/Internal/Imagen/ImagenImageRepresentable.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import Foundation
1717
// TODO(andrewheard): Make this public when the SDK supports Imagen operations that take images as
1818
// input (upscaling / editing).
1919
@available(iOS 15.0, macOS 12.0, macCatalyst 15.0, tvOS 15.0, watchOS 8.0, *)
20-
protocol ImagenImageRepresentable {
20+
protocol ImagenImageRepresentable: Sendable {
2121
/// Internal representation of the image for use with the Imagen model.
2222
///
2323
/// - Important: Not needed by SDK users.

FirebaseCore/CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@
2929
To start using the new SDK, import the `FirebaseAI` module and use the
3030
top-level `FirebaseAI` class. See details in the [migration guide
3131
](https://firebase.google.com/docs/ai-logic/migrate-to-latest-sdk).
32+
- [changed] **Breaking change** The Firebase Swift package now requires the
33+
Swift 6.0 toolchain (Xcode 16.2+).
3234

3335
# Firebase 11.15.0
3436
- [fixed] Remove c99 as the required C language standard. (#14950)

FirebaseFunctions/Sources/Callable+Codable.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ public struct Callable<Request: Encodable, Response: Decodable>: Sendable {
6464
completion: @escaping @MainActor (Result<Response, Error>)
6565
-> Void) {
6666
do {
67-
let encoded = try encoder.encode(data)
67+
let encoded = try SendableWrapper(value: encoder.encode(data))
6868
callable.call(encoded) { result, error in
6969
do {
7070
if let result {

Package.swift

Lines changed: 81 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// swift-tools-version:5.9
1+
// swift-tools-version:6.0
22
// The swift-tools-version declares the minimum version of Swift required to
33
// build this package.
44

@@ -16,7 +16,6 @@
1616
// See the License for the specific language governing permissions and
1717
// limitations under the License.
1818

19-
import class Foundation.ProcessInfo
2019
import PackageDescription
2120

2221
let firebaseVersion = "12.0.0"
@@ -439,6 +438,9 @@ let package = Package(
439438
path: "FirebaseAppDistribution/Tests/Unit/Swift",
440439
cSettings: [
441440
.headerSearchPath("../../../.."),
441+
],
442+
swiftSettings: [
443+
.swiftLanguageMode(SwiftLanguageMode.v5),
442444
]
443445
),
444446

@@ -459,7 +461,9 @@ let package = Package(
459461
"ObjC", "Public",
460462
],
461463
resources: [.process("Resources/PrivacyInfo.xcprivacy")],
462-
swiftSettings: Context.environment["FIREBASE_CI"] != nil ? [.define("FIREBASE_CI")] : [],
464+
swiftSettings: [
465+
.swiftLanguageMode(SwiftLanguageMode.v5),
466+
],
463467
linkerSettings: [
464468
.linkedFramework("Security"),
465469
.linkedFramework("SafariServices", .when(platforms: [.iOS])),
@@ -505,12 +509,18 @@ let package = Package(
505509
"ObjCAPITests.m",
506510
"ObjCGlobalTests.m",
507511
"FIROAuthProviderTests.m",
512+
],
513+
swiftSettings: [
514+
.swiftLanguageMode(SwiftLanguageMode.v5),
508515
]
509516
),
510517
.target(
511518
name: "FirebaseAuthCombineSwift",
512519
dependencies: ["FirebaseAuth"],
513-
path: "FirebaseCombineSwift/Sources/Auth"
520+
path: "FirebaseCombineSwift/Sources/Auth",
521+
swiftSettings: [
522+
.swiftLanguageMode(SwiftLanguageMode.v5),
523+
]
514524
),
515525
.target(
516526
name: "FirebaseFirestoreCombineSwift",
@@ -592,7 +602,10 @@ let package = Package(
592602
.testTarget(
593603
name: "FirebaseCrashlyticsSwiftUnit",
594604
dependencies: ["FirebaseCrashlyticsSwift"],
595-
path: "Crashlytics/UnitTestsSwift/"
605+
path: "Crashlytics/UnitTestsSwift/",
606+
swiftSettings: [
607+
.swiftLanguageMode(SwiftLanguageMode.v5),
608+
]
596609
),
597610
.testTarget(
598611
name: "FirebaseCrashlyticsUnit",
@@ -657,6 +670,9 @@ let package = Package(
657670
resources: [.process("Resources")],
658671
cSettings: [
659672
.headerSearchPath("../.."),
673+
],
674+
swiftSettings: [
675+
.swiftLanguageMode(SwiftLanguageMode.v5),
660676
]
661677
),
662678
.testTarget(
@@ -665,6 +681,9 @@ let package = Package(
665681
path: "FirebaseDatabase/Tests/Unit/Swift",
666682
cSettings: [
667683
.headerSearchPath("../.."),
684+
],
685+
swiftSettings: [
686+
.swiftLanguageMode(SwiftLanguageMode.v5),
668687
]
669688
),
670689
.target(
@@ -678,6 +697,10 @@ let package = Package(
678697
exclude: [
679698
"third_party/FirebaseDataEncoder/LICENSE",
680699
"third_party/FirebaseDataEncoder/METADATA",
700+
],
701+
// TODO(ncooke3): Can this be upgraded to Swift 6?
702+
swiftSettings: [
703+
.swiftLanguageMode(SwiftLanguageMode.v5),
681704
]
682705
),
683706
.testTarget(
@@ -713,6 +736,9 @@ let package = Package(
713736
path: "FirebaseFunctions/Tests/Unit",
714737
cSettings: [
715738
.headerSearchPath("../../../"),
739+
],
740+
swiftSettings: [
741+
.swiftLanguageMode(SwiftLanguageMode.v5),
716742
]
717743
),
718744
.testTarget(
@@ -737,7 +763,10 @@ let package = Package(
737763
.target(
738764
name: "FirebaseFunctionsCombineSwift",
739765
dependencies: ["FirebaseFunctions"],
740-
path: "FirebaseCombineSwift/Sources/Functions"
766+
path: "FirebaseCombineSwift/Sources/Functions",
767+
swiftSettings: [
768+
.swiftLanguageMode(SwiftLanguageMode.v5),
769+
]
741770
),
742771
.testTarget(
743772
name: "FunctionsCombineUnit",
@@ -790,7 +819,10 @@ let package = Package(
790819
.target(
791820
name: "FirebaseInAppMessaging",
792821
dependencies: ["FirebaseInAppMessagingInternal"],
793-
path: "FirebaseInAppMessaging/Swift/Source"
822+
path: "FirebaseInAppMessaging/Swift/Source",
823+
swiftSettings: [
824+
.swiftLanguageMode(SwiftLanguageMode.v5),
825+
]
794826
),
795827

796828
.target(
@@ -828,6 +860,9 @@ let package = Package(
828860
],
829861
cSettings: [
830862
.define("FIRMLModelDownloader_VERSION", to: firebaseVersion),
863+
],
864+
swiftSettings: [
865+
.swiftLanguageMode(SwiftLanguageMode.v5),
831866
]
832867
),
833868
.testTarget(
@@ -1012,7 +1047,10 @@ let package = Package(
10121047
"FirebaseSharedSwift",
10131048
],
10141049
path: "FirebaseRemoteConfig/Swift",
1015-
resources: [.process("Resources/PrivacyInfo.xcprivacy")]
1050+
resources: [.process("Resources/PrivacyInfo.xcprivacy")],
1051+
swiftSettings: [
1052+
.swiftLanguageMode(SwiftLanguageMode.v5),
1053+
]
10161054
),
10171055
.testTarget(
10181056
name: "RemoteConfigFakeConsole",
@@ -1029,6 +1067,9 @@ let package = Package(
10291067
],
10301068
cSettings: [
10311069
.headerSearchPath("../../../"),
1070+
],
1071+
swiftSettings: [
1072+
.swiftLanguageMode(SwiftLanguageMode.v5),
10321073
]
10331074
),
10341075
.target(
@@ -1136,7 +1177,10 @@ let package = Package(
11361177
.product(name: "GTMSessionFetcherCore", package: "gtm-session-fetcher"),
11371178
.product(name: "GULEnvironment", package: "GoogleUtilities"),
11381179
],
1139-
path: "FirebaseStorage/Sources"
1180+
path: "FirebaseStorage/Sources",
1181+
swiftSettings: [
1182+
.swiftLanguageMode(SwiftLanguageMode.v5),
1183+
]
11401184
),
11411185
.testTarget(
11421186
name: "FirebaseStorageUnit",
@@ -1145,6 +1189,9 @@ let package = Package(
11451189
path: "FirebaseStorage/Tests/Unit",
11461190
cSettings: [
11471191
.headerSearchPath("../../../"),
1192+
],
1193+
swiftSettings: [
1194+
.swiftLanguageMode(SwiftLanguageMode.v5),
11481195
]
11491196
),
11501197
.testTarget(
@@ -1191,15 +1238,21 @@ let package = Package(
11911238
"FirebaseStorage",
11921239
.product(name: "nanopb", package: "nanopb"),
11931240
],
1194-
path: "SwiftPMTests/swift-test"
1241+
path: "SwiftPMTests/swift-test",
1242+
swiftSettings: [
1243+
.swiftLanguageMode(SwiftLanguageMode.v5),
1244+
]
11951245
),
11961246
.testTarget(
11971247
name: "analytics-import-test",
11981248
dependencies: [
11991249
"FirebaseAnalyticsWrapper",
12001250
"Firebase",
12011251
],
1202-
path: "SwiftPMTests/analytics-import-test"
1252+
path: "SwiftPMTests/analytics-import-test",
1253+
swiftSettings: [
1254+
.swiftLanguageMode(SwiftLanguageMode.v5),
1255+
]
12031256
),
12041257
.testTarget(
12051258
name: "objc-import-test",
@@ -1290,7 +1343,10 @@ let package = Package(
12901343
.testTarget(
12911344
name: "FirebaseAppCheckUnitSwift",
12921345
dependencies: ["FirebaseAppCheck"],
1293-
path: "FirebaseAppCheck/Tests/Unit/Swift"
1346+
path: "FirebaseAppCheck/Tests/Unit/Swift",
1347+
swiftSettings: [
1348+
.swiftLanguageMode(SwiftLanguageMode.v5),
1349+
]
12941350
),
12951351

12961352
// MARK: Testing support
@@ -1324,7 +1380,7 @@ func googleAppMeasurementDependency() -> Package.Dependency {
13241380

13251381
// Point SPM CI to the tip of main of https://github.com/google/GoogleAppMeasurement so that the
13261382
// release process can defer publishing the GoogleAppMeasurement tag until after testing.
1327-
if ProcessInfo.processInfo.environment["FIREBASECI_USE_LATEST_GOOGLEAPPMEASUREMENT"] != nil {
1383+
if Context.environment["FIREBASECI_USE_LATEST_GOOGLEAPPMEASUREMENT"] != nil {
13281384
return .package(url: appMeasurementURL, branch: "main")
13291385
}
13301386

@@ -1336,7 +1392,7 @@ func abseilDependency() -> Package.Dependency {
13361392

13371393
// If building Firestore from source, abseil will need to be built as source
13381394
// as the headers in the binary version of abseil are unusable.
1339-
if ProcessInfo.processInfo.environment["FIREBASE_SOURCE_FIRESTORE"] != nil {
1395+
if Context.environment["FIREBASE_SOURCE_FIRESTORE"] != nil {
13401396
packageInfo = (
13411397
"https://github.com/firebase/abseil-cpp-SwiftPM.git",
13421398
"0.20240722.0" ..< "0.20240723.0"
@@ -1356,7 +1412,7 @@ func grpcDependency() -> Package.Dependency {
13561412

13571413
// If building Firestore from source, abseil will need to be built as source
13581414
// as the headers in the binary version of abseil are unusable.
1359-
if ProcessInfo.processInfo.environment["FIREBASE_SOURCE_FIRESTORE"] != nil {
1415+
if Context.environment["FIREBASE_SOURCE_FIRESTORE"] != nil {
13601416
packageInfo = ("https://github.com/grpc/grpc-ios.git", "1.69.0" ..< "1.70.0")
13611417
} else {
13621418
packageInfo = ("https://github.com/google/grpc-binary.git", "1.69.0" ..< "1.70.0")
@@ -1366,7 +1422,7 @@ func grpcDependency() -> Package.Dependency {
13661422
}
13671423

13681424
func firestoreWrapperTarget() -> Target {
1369-
if ProcessInfo.processInfo.environment["FIREBASE_SOURCE_FIRESTORE"] != nil {
1425+
if Context.environment["FIREBASE_SOURCE_FIRESTORE"] != nil {
13701426
return .target(
13711427
name: "FirebaseFirestoreTarget",
13721428
dependencies: [.target(name: "FirebaseFirestore",
@@ -1385,7 +1441,7 @@ func firestoreWrapperTarget() -> Target {
13851441
}
13861442

13871443
func firestoreTargets() -> [Target] {
1388-
if ProcessInfo.processInfo.environment["FIREBASE_SOURCE_FIRESTORE"] != nil {
1444+
if Context.environment["FIREBASE_SOURCE_FIRESTORE"] != nil {
13891445
return [
13901446
.target(
13911447
name: "FirebaseFirestoreInternalWrapper",
@@ -1481,13 +1537,16 @@ func firestoreTargets() -> [Target] {
14811537
sources: [
14821538
"Swift/Source/",
14831539
],
1484-
resources: [.process("Source/Resources/PrivacyInfo.xcprivacy")]
1540+
resources: [.process("Source/Resources/PrivacyInfo.xcprivacy")],
1541+
swiftSettings: [
1542+
.swiftLanguageMode(SwiftLanguageMode.v5),
1543+
]
14851544
),
14861545
]
14871546
}
14881547

14891548
let firestoreInternalTarget: Target = {
1490-
if ProcessInfo.processInfo.environment["FIREBASECI_USE_LOCAL_FIRESTORE_ZIP"] != nil {
1549+
if Context.environment["FIREBASECI_USE_LOCAL_FIRESTORE_ZIP"] != nil {
14911550
// This is set when running `scripts/check_firestore_symbols.sh`.
14921551
return .binaryTarget(
14931552
name: "FirebaseFirestoreInternal",
@@ -1530,6 +1589,9 @@ func firestoreTargets() -> [Target] {
15301589
],
15311590
path: "Firestore/Swift/Source",
15321591
resources: [.process("Resources/PrivacyInfo.xcprivacy")],
1592+
swiftSettings: [
1593+
.swiftLanguageMode(SwiftLanguageMode.v5),
1594+
],
15331595
linkerSettings: [
15341596
.linkedFramework("SystemConfiguration", .when(platforms: [.iOS, .macOS, .tvOS])),
15351597
.linkedFramework("UIKit", .when(platforms: [.iOS, .tvOS])),

0 commit comments

Comments
 (0)