Skip to content

Commit 3bea41c

Browse files
committed
chore: improve Package.swift bundling so it doesn't use cached version
1 parent 4fa10c3 commit 3bea41c

30 files changed

Lines changed: 134 additions & 2105 deletions

File tree

melos.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ command:
2121
dart run scripts/generate_dataconnect_version.dart && \
2222
dart run scripts/generate_versions_web.dart && \
2323
dart run scripts/generate_versions_spm.dart && \
24-
git add packages/firebase_data_connect/firebase_data_connect/lib/src/dataconnect_version.dart && git add packages/*/*_web/lib/src/*_version.dart
24+
git add packages/firebase_data_connect/firebase_data_connect/lib/src/dataconnect_version.dart && git add packages/*/*_web/lib/src/*_version.dart && git add packages/*/*/ios/*/Package.swift packages/*/*/macos/*/Package.swift
2525
post: |
2626
dart run scripts/generate_tag_spm_firebase_core.dart
2727

packages/cloud_firestore/cloud_firestore/ios/cloud_firestore/Package.swift

Lines changed: 3 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -5,81 +5,11 @@
55
// for details. All rights reserved. Use of this source code is governed by a
66
// BSD-style license that can be found in the LICENSE file.
77

8-
import Foundation
98
import PackageDescription
109

11-
enum ConfigurationError: Error {
12-
case fileNotFound(String)
13-
case parsingError(String)
14-
case invalidFormat(String)
15-
}
16-
17-
let firestoreDirectory = String(URL(string: #file)!.deletingLastPathComponent().absoluteString
18-
.dropLast())
19-
20-
func loadFirebaseSDKVersion() throws -> String {
21-
let firebaseCoreScriptPath = NSString.path(withComponents: [
22-
firestoreDirectory,
23-
"..",
24-
"generated_firebase_sdk_version.txt",
25-
])
26-
do {
27-
return try String(contentsOfFile: firebaseCoreScriptPath, encoding: .utf8)
28-
.trimmingCharacters(in: .whitespacesAndNewlines)
29-
} catch {
30-
throw ConfigurationError
31-
.fileNotFound("Error loading or parsing generated_firebase_sdk_version.txt: \(error)")
32-
}
33-
}
34-
35-
func loadPubspecVersions() throws -> (packageVersion: String, firebaseCoreVersion: String) {
36-
let pubspecPath = NSString.path(withComponents: [firestoreDirectory, "..", "..", "pubspec.yaml"])
37-
do {
38-
let yamlString = try String(contentsOfFile: pubspecPath, encoding: .utf8)
39-
let lines = yamlString.split(separator: "\n")
40-
41-
guard let packageVersionLine = lines.first(where: { $0.starts(with: "version:") }) else {
42-
throw ConfigurationError.invalidFormat("No package version line found in pubspec.yaml")
43-
}
44-
var packageVersion = packageVersionLine.split(separator: ":")[1]
45-
.trimmingCharacters(in: .whitespaces)
46-
.replacingOccurrences(of: "+", with: "-")
47-
packageVersion = packageVersion.replacingOccurrences(of: "^", with: "")
48-
49-
guard let firebaseCoreVersionLine = lines.first(where: { $0.contains("firebase_core:") }) else {
50-
throw ConfigurationError
51-
.invalidFormat("No firebase_core dependency version line found in pubspec.yaml")
52-
}
53-
var firebaseCoreVersion = firebaseCoreVersionLine.split(separator: ":")[1]
54-
.trimmingCharacters(in: .whitespaces)
55-
firebaseCoreVersion = firebaseCoreVersion.replacingOccurrences(of: "^", with: "")
56-
57-
return (packageVersion, firebaseCoreVersion)
58-
} catch {
59-
throw ConfigurationError.fileNotFound("Error loading or parsing pubspec.yaml: \(error)")
60-
}
61-
}
62-
63-
let library_version: String
64-
let firebase_sdk_version_string: String
65-
let firebase_core_version_string: String
66-
let shared_spm_tag = "-firebase-core-swift"
67-
68-
do {
69-
library_version = try loadPubspecVersions().packageVersion
70-
firebase_sdk_version_string = try loadFirebaseSDKVersion()
71-
firebase_core_version_string = try loadPubspecVersions().firebaseCoreVersion
72-
} catch {
73-
fatalError("Failed to load configuration: \(error)")
74-
}
75-
76-
guard let firebase_sdk_version = Version(firebase_sdk_version_string) else {
77-
fatalError("Invalid Firebase SDK version: \(firebase_sdk_version_string)")
78-
}
79-
80-
guard let shared_spm_version = Version("\(firebase_core_version_string)\(shared_spm_tag)") else {
81-
fatalError("Invalid firebase_core version: \(firebase_core_version_string)\(shared_spm_tag)")
82-
}
10+
let library_version = "6.1.3"
11+
let firebase_sdk_version = Version("12.9.0")!
12+
let shared_spm_version = Version("4.5.0-firebase-core-swift")!
8313

8414
let package = Package(
8515
name: "cloud_firestore",

packages/cloud_firestore/cloud_firestore/macos/cloud_firestore/Package.swift

Lines changed: 3 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -5,83 +5,11 @@
55
// for details. All rights reserved. Use of this source code is governed by a
66
// BSD-style license that can be found in the LICENSE file.
77

8-
import Foundation
98
import PackageDescription
109

11-
enum ConfigurationError: Error {
12-
case fileNotFound(String)
13-
case parsingError(String)
14-
case invalidFormat(String)
15-
}
16-
17-
let firestoreDirectory = String(URL(string: #file)!.deletingLastPathComponent().absoluteString
18-
.dropLast())
19-
20-
func loadFirebaseSDKVersion() throws -> String {
21-
let firebaseCoreScriptPath = NSString.path(withComponents: [
22-
firestoreDirectory,
23-
"..",
24-
"..",
25-
"ios",
26-
"generated_firebase_sdk_version.txt",
27-
])
28-
do {
29-
return try String(contentsOfFile: firebaseCoreScriptPath, encoding: .utf8)
30-
.trimmingCharacters(in: .whitespacesAndNewlines)
31-
} catch {
32-
throw ConfigurationError
33-
.fileNotFound("Error loading or parsing generated_firebase_sdk_version.txt: \(error)")
34-
}
35-
}
36-
37-
func loadPubspecVersions() throws -> (packageVersion: String, firebaseCoreVersion: String) {
38-
let pubspecPath = NSString.path(withComponents: [firestoreDirectory, "..", "..", "pubspec.yaml"])
39-
do {
40-
let yamlString = try String(contentsOfFile: pubspecPath, encoding: .utf8)
41-
let lines = yamlString.split(separator: "\n")
42-
43-
guard let packageVersionLine = lines.first(where: { $0.starts(with: "version:") }) else {
44-
throw ConfigurationError.invalidFormat("No package version line found in pubspec.yaml")
45-
}
46-
var packageVersion = packageVersionLine.split(separator: ":")[1]
47-
.trimmingCharacters(in: .whitespaces)
48-
.replacingOccurrences(of: "+", with: "-")
49-
packageVersion = packageVersion.replacingOccurrences(of: "^", with: "")
50-
51-
guard let firebaseCoreVersionLine = lines.first(where: { $0.contains("firebase_core:") }) else {
52-
throw ConfigurationError
53-
.invalidFormat("No firebase_core dependency version line found in pubspec.yaml")
54-
}
55-
var firebaseCoreVersion = firebaseCoreVersionLine.split(separator: ":")[1]
56-
.trimmingCharacters(in: .whitespaces)
57-
firebaseCoreVersion = firebaseCoreVersion.replacingOccurrences(of: "^", with: "")
58-
59-
return (packageVersion, firebaseCoreVersion)
60-
} catch {
61-
throw ConfigurationError.fileNotFound("Error loading or parsing pubspec.yaml: \(error)")
62-
}
63-
}
64-
65-
let library_version: String
66-
let firebase_sdk_version_string: String
67-
let firebase_core_version_string: String
68-
let shared_spm_tag = "-firebase-core-swift"
69-
70-
do {
71-
library_version = try loadPubspecVersions().packageVersion
72-
firebase_sdk_version_string = try loadFirebaseSDKVersion()
73-
firebase_core_version_string = try loadPubspecVersions().firebaseCoreVersion
74-
} catch {
75-
fatalError("Failed to load configuration: \(error)")
76-
}
77-
78-
guard let firebase_sdk_version = Version(firebase_sdk_version_string) else {
79-
fatalError("Invalid Firebase SDK version: \(firebase_sdk_version_string)")
80-
}
81-
82-
guard let shared_spm_version = Version("\(firebase_core_version_string)\(shared_spm_tag)") else {
83-
fatalError("Invalid firebase_core version: \(firebase_core_version_string)\(shared_spm_tag)")
84-
}
10+
let library_version = "6.1.3"
11+
let firebase_sdk_version = Version("12.9.0")!
12+
let shared_spm_version = Version("4.5.0-firebase-core-swift")!
8513

8614
let package = Package(
8715
name: "cloud_firestore",

packages/cloud_functions/cloud_functions/ios/cloud_functions/Package.swift

Lines changed: 2 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -5,81 +5,10 @@
55
// for details. All rights reserved. Use of this source code is governed by a
66
// BSD-style license that can be found in the LICENSE file.
77

8-
import Foundation
98
import PackageDescription
109

11-
enum ConfigurationError: Error {
12-
case fileNotFound(String)
13-
case parsingError(String)
14-
case invalidFormat(String)
15-
}
16-
17-
let functionsDirectory = String(URL(string: #file)!.deletingLastPathComponent().absoluteString
18-
.dropLast())
19-
20-
func loadFirebaseSDKVersion() throws -> String {
21-
let firebaseCoreScriptPath = NSString.path(withComponents: [
22-
functionsDirectory,
23-
"..",
24-
"generated_firebase_sdk_version.txt",
25-
])
26-
do {
27-
return try String(contentsOfFile: firebaseCoreScriptPath, encoding: .utf8)
28-
.trimmingCharacters(in: .whitespacesAndNewlines)
29-
} catch {
30-
throw ConfigurationError
31-
.fileNotFound("Error loading or parsing generated_firebase_sdk_version.txt: \(error)")
32-
}
33-
}
34-
35-
func loadPubspecVersions() throws -> (packageVersion: String, firebaseCoreVersion: String) {
36-
let pubspecPath = NSString.path(withComponents: [functionsDirectory, "..", "..", "pubspec.yaml"])
37-
do {
38-
let yamlString = try String(contentsOfFile: pubspecPath, encoding: .utf8)
39-
let lines = yamlString.split(separator: "\n")
40-
41-
guard let packageVersionLine = lines.first(where: { $0.starts(with: "version:") }) else {
42-
throw ConfigurationError.invalidFormat("No package version line found in pubspec.yaml")
43-
}
44-
var packageVersion = packageVersionLine.split(separator: ":")[1]
45-
.trimmingCharacters(in: .whitespaces)
46-
.replacingOccurrences(of: "+", with: "-")
47-
packageVersion = packageVersion.replacingOccurrences(of: "^", with: "")
48-
49-
guard let firebaseCoreVersionLine = lines.first(where: { $0.contains("firebase_core:") }) else {
50-
throw ConfigurationError
51-
.invalidFormat("No firebase_core dependency version line found in pubspec.yaml")
52-
}
53-
var firebaseCoreVersion = firebaseCoreVersionLine.split(separator: ":")[1]
54-
.trimmingCharacters(in: .whitespaces)
55-
firebaseCoreVersion = firebaseCoreVersion.replacingOccurrences(of: "^", with: "")
56-
57-
return (packageVersion, firebaseCoreVersion)
58-
} catch {
59-
throw ConfigurationError.fileNotFound("Error loading or parsing pubspec.yaml: \(error)")
60-
}
61-
}
62-
63-
let library_version: String
64-
let firebase_sdk_version_string: String
65-
let firebase_core_version_string: String
66-
let shared_spm_tag = "-firebase-core-swift"
67-
68-
do {
69-
library_version = try loadPubspecVersions().packageVersion
70-
firebase_sdk_version_string = try loadFirebaseSDKVersion()
71-
firebase_core_version_string = try loadPubspecVersions().firebaseCoreVersion
72-
} catch {
73-
fatalError("Failed to load configuration: \(error)")
74-
}
75-
76-
guard let firebase_sdk_version = Version(firebase_sdk_version_string) else {
77-
fatalError("Invalid Firebase SDK version: \(firebase_sdk_version_string)")
78-
}
79-
80-
guard let shared_spm_version = Version("\(firebase_core_version_string)\(shared_spm_tag)") else {
81-
fatalError("Invalid firebase_core version: \(firebase_core_version_string)\(shared_spm_tag)")
82-
}
10+
let firebase_sdk_version = Version("12.9.0")!
11+
let shared_spm_version = Version("4.5.0-firebase-core-swift")!
8312

8413
let package = Package(
8514
name: "cloud_functions",

packages/cloud_functions/cloud_functions/macos/cloud_functions/Package.swift

Lines changed: 2 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -5,83 +5,10 @@
55
// for details. All rights reserved. Use of this source code is governed by a
66
// BSD-style license that can be found in the LICENSE file.
77

8-
import Foundation
98
import PackageDescription
109

11-
enum ConfigurationError: Error {
12-
case fileNotFound(String)
13-
case parsingError(String)
14-
case invalidFormat(String)
15-
}
16-
17-
let functionsDirectory = String(URL(string: #file)!.deletingLastPathComponent().absoluteString
18-
.dropLast())
19-
20-
func loadFirebaseSDKVersion() throws -> String {
21-
let firebaseCoreScriptPath = NSString.path(withComponents: [
22-
functionsDirectory,
23-
"..",
24-
"..",
25-
"ios",
26-
"generated_firebase_sdk_version.txt",
27-
])
28-
do {
29-
return try String(contentsOfFile: firebaseCoreScriptPath, encoding: .utf8)
30-
.trimmingCharacters(in: .whitespacesAndNewlines)
31-
} catch {
32-
throw ConfigurationError
33-
.fileNotFound("Error loading or parsing generated_firebase_sdk_version.txt: \(error)")
34-
}
35-
}
36-
37-
func loadPubspecVersions() throws -> (packageVersion: String, firebaseCoreVersion: String) {
38-
let pubspecPath = NSString.path(withComponents: [functionsDirectory, "..", "..", "pubspec.yaml"])
39-
do {
40-
let yamlString = try String(contentsOfFile: pubspecPath, encoding: .utf8)
41-
let lines = yamlString.split(separator: "\n")
42-
43-
guard let packageVersionLine = lines.first(where: { $0.starts(with: "version:") }) else {
44-
throw ConfigurationError.invalidFormat("No package version line found in pubspec.yaml")
45-
}
46-
var packageVersion = packageVersionLine.split(separator: ":")[1]
47-
.trimmingCharacters(in: .whitespaces)
48-
.replacingOccurrences(of: "+", with: "-")
49-
packageVersion = packageVersion.replacingOccurrences(of: "^", with: "")
50-
51-
guard let firebaseCoreVersionLine = lines.first(where: { $0.contains("firebase_core:") }) else {
52-
throw ConfigurationError
53-
.invalidFormat("No firebase_core dependency version line found in pubspec.yaml")
54-
}
55-
var firebaseCoreVersion = firebaseCoreVersionLine.split(separator: ":")[1]
56-
.trimmingCharacters(in: .whitespaces)
57-
firebaseCoreVersion = firebaseCoreVersion.replacingOccurrences(of: "^", with: "")
58-
59-
return (packageVersion, firebaseCoreVersion)
60-
} catch {
61-
throw ConfigurationError.fileNotFound("Error loading or parsing pubspec.yaml: \(error)")
62-
}
63-
}
64-
65-
let library_version: String
66-
let firebase_sdk_version_string: String
67-
let firebase_core_version_string: String
68-
let shared_spm_tag = "-firebase-core-swift"
69-
70-
do {
71-
library_version = try loadPubspecVersions().packageVersion
72-
firebase_sdk_version_string = try loadFirebaseSDKVersion()
73-
firebase_core_version_string = try loadPubspecVersions().firebaseCoreVersion
74-
} catch {
75-
fatalError("Failed to load configuration: \(error)")
76-
}
77-
78-
guard let firebase_sdk_version = Version(firebase_sdk_version_string) else {
79-
fatalError("Invalid Firebase SDK version: \(firebase_sdk_version_string)")
80-
}
81-
82-
guard let shared_spm_version = Version("\(firebase_core_version_string)\(shared_spm_tag)") else {
83-
fatalError("Invalid firebase_core version: \(firebase_core_version_string)\(shared_spm_tag)")
84-
}
10+
let firebase_sdk_version = Version("12.9.0")!
11+
let shared_spm_version = Version("4.5.0-firebase-core-swift")!
8512

8613
let package = Package(
8714
name: "cloud_functions",

0 commit comments

Comments
 (0)