Skip to content

Commit 65bdf0c

Browse files
committed
Merge branch 'main' into ah/ai-generable
2 parents 5e187d8 + 1925e24 commit 65bdf0c

16 files changed

+69
-1715
lines changed

.github/CODEOWNERS

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
ReleaseTooling/ @firebase/firebase-ios-sdk-admin
2+
FirebaseCore/ @firebase/firebase-ios-sdk-admin
3+
Package.swift @firebase/firebase-ios-sdk-admin
4+
Dangerfile @firebase/firebase-ios-sdk-admin
5+
**/Public @firebase/firebase-ios-sdk-admin
6+
*.podspec @firebase/firebase-ios-sdk-admin
7+
Gemfile* @firebase/firebase-ios-sdk-admin
8+
Interop/ @firebase/firebase-ios-sdk-admin
9+
scripts/ @firebase/firebase-ios-sdk-admin
10+
.github/ @firebase/firebase-ios-sdk-admin
11+
*.md @firebase/firebase-ios-sdk-admin

.github/workflows/common_cocoapods_cron.yml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,12 +62,16 @@ jobs:
6262
matrix:
6363
platform: ${{ fromJson(inputs.platforms) }}
6464
flags: ${{ fromJson(inputs.flags) }}
65-
6665
steps:
6766
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
6867
- uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
6968
- name: Setup Bundler
70-
run: scripts/setup_bundler.sh
69+
uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3
70+
with:
71+
timeout_minutes: 10
72+
max_attempts: 5
73+
retry_wait_seconds: 300
74+
command: scripts/setup_bundler.sh
7175
- name: Xcode
7276
run: sudo xcode-select -s /Applications/${{ inputs.xcode }}.app/Contents/Developer
7377
- name: Set FIREBASE_CI, if needed.

.github/workflows/common_quickstart.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ jobs:
6868
env:
6969
plist_secret: ${{ secrets.plist_secret }}
7070
QUICKSTART_BRANCH: ${{ inputs.quickstart_branch }}
71+
FIREBASECI_USE_LATEST_GOOGLEAPPMEASUREMENT: 1
7172
runs-on: macos-15
7273
steps:
7374
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1

.github/workflows/nightly_ftl.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@ on:
1313
- '.github/workflows/nightly_ftl.yml'
1414
- 'Gemfile*'
1515

16+
env:
17+
FIREBASECI_USE_LATEST_GOOGLEAPPMEASUREMENT: 1
18+
1619
jobs:
1720
ftl_test:
1821
if: github.repository == 'Firebase/firebase-ios-sdk'

.github/workflows/prerelease.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ on:
1616

1717
env:
1818
FIREBASE_CI: true
19+
FIREBASECI_USE_LATEST_GOOGLEAPPMEASUREMENT: 1
1920

2021
concurrency:
2122
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}

FirebaseMLModelDownloader.podspec

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,9 @@ Pod::Spec.new do |s|
3939
s.dependency 'FirebaseCore', '~> 12.8.0'
4040
s.dependency 'FirebaseCoreExtension', '~> 12.8.0'
4141
s.dependency 'FirebaseInstallations', '~> 12.8.0'
42-
s.dependency 'GoogleDataTransport', '~> 10.1'
4342
s.dependency 'GoogleUtilities/UserDefaults', '~> 8.1'
44-
s.dependency 'SwiftProtobuf', '~> 1.19'
4543

4644
s.pod_target_xcconfig = {
47-
'GCC_PREPROCESSOR_DEFINITIONS' => 'FIRMLModelDownloader_VERSION=' + s.version.to_s,
4845
'OTHER_CFLAGS' => '-fno-autolink',
4946
}
5047

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# 12.8.0
2+
- [fixed] Remove unused legacy telemetry along with the large swift-protobuf dependency.

FirebaseMLModelDownloader/Sources/ModelDownloadTask.swift

Lines changed: 1 addition & 119 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,6 @@ class ModelDownloadTask {
3636
/// Downloader instance.
3737
private let downloader: FileDownloader
3838

39-
/// Telemetry logger.
40-
private let telemetryLogger: TelemetryLogger?
41-
4239
/// Download progress handler.
4340
typealias ProgressHandler = (Float) -> Void
4441
private var progressHandler: ProgressHandler?
@@ -52,15 +49,13 @@ class ModelDownloadTask {
5249
defaults: GULUserDefaults,
5350
downloader: FileDownloader,
5451
progressHandler: ProgressHandler? = nil,
55-
completion: @escaping Completion,
56-
telemetryLogger: TelemetryLogger? = nil) {
52+
completion: @escaping Completion) {
5753
self.remoteModelInfo = remoteModelInfo
5854
self.appName = appName
5955
self.defaults = defaults
6056
self.downloader = downloader
6157
self.progressHandler = progressHandler
6258
self.completion = completion
63-
self.telemetryLogger = telemetryLogger
6459
}
6560
}
6661

@@ -96,23 +91,9 @@ extension ModelDownloadTask {
9691
DeviceLogger.logEvent(level: .debug,
9792
message: ModelDownloadTask.ErrorDescription.anotherDownloadInProgress,
9893
messageCode: .anotherDownloadInProgressError)
99-
telemetryLogger?.logModelDownloadEvent(eventName: .modelDownload,
100-
status: .failed,
101-
model: CustomModel(name: remoteModelInfo.name,
102-
size: remoteModelInfo.size,
103-
path: "",
104-
hash: remoteModelInfo.modelHash),
105-
downloadErrorCode: .downloadFailed)
10694
return
10795
}
10896
downloadStatus = .downloading
109-
telemetryLogger?.logModelDownloadEvent(eventName: .modelDownload,
110-
status: .downloading,
111-
model: CustomModel(name: remoteModelInfo.name,
112-
size: remoteModelInfo.size,
113-
path: "",
114-
hash: remoteModelInfo.modelHash),
115-
downloadErrorCode: .noError)
11697
downloader.downloadFile(with: remoteModelInfo.downloadURL,
11798
progressHandler: { downloadedBytes, totalBytes in
11899
/// Fraction of model file downloaded.
@@ -141,45 +122,18 @@ extension ModelDownloadTask {
141122
DeviceLogger.logEvent(level: .debug,
142123
message: description,
143124
messageCode: .hostnameError)
144-
self.telemetryLogger?.logModelDownloadEvent(
145-
eventName: .modelDownload,
146-
status: .failed,
147-
model: CustomModel(name: self.remoteModelInfo.name,
148-
size: self.remoteModelInfo.size,
149-
path: "",
150-
hash: self.remoteModelInfo.modelHash),
151-
downloadErrorCode: .noConnection
152-
)
153125
case FileDownloaderError.unexpectedResponseType:
154126
let description = ModelDownloadTask.ErrorDescription.invalidHTTPResponse
155127
downloadError = .internalError(description: description)
156128
DeviceLogger.logEvent(level: .debug,
157129
message: description,
158130
messageCode: .invalidHTTPResponse)
159-
self.telemetryLogger?.logModelDownloadEvent(
160-
eventName: .modelDownload,
161-
status: .failed,
162-
model: CustomModel(name: self.remoteModelInfo.name,
163-
size: self.remoteModelInfo.size,
164-
path: "",
165-
hash: self.remoteModelInfo.modelHash),
166-
downloadErrorCode: .downloadFailed
167-
)
168131
default:
169132
let description = ModelDownloadTask.ErrorDescription.unknownDownloadError
170133
downloadError = .internalError(description: description)
171134
DeviceLogger.logEvent(level: .debug,
172135
message: description,
173136
messageCode: .modelDownloadError)
174-
self.telemetryLogger?.logModelDownloadEvent(
175-
eventName: .modelDownload,
176-
status: .failed,
177-
model: CustomModel(name: self.remoteModelInfo.name,
178-
size: self.remoteModelInfo.size,
179-
path: "",
180-
hash: self.remoteModelInfo.modelHash),
181-
downloadErrorCode: .downloadFailed
182-
)
183137
}
184138
self.completion(.failure(downloadError))
185139
}
@@ -197,75 +151,30 @@ extension ModelDownloadTask {
197151
message: ModelDownloadTask.ErrorDescription
198152
.invalidArgument(remoteModelInfo.name),
199153
messageCode: .invalidArgument)
200-
telemetryLogger?.logModelDownloadEvent(
201-
eventName: .modelDownload,
202-
status: .failed,
203-
model: CustomModel(name: remoteModelInfo.name,
204-
size: remoteModelInfo.size,
205-
path: "",
206-
hash: remoteModelInfo.modelHash),
207-
downloadErrorCode: .httpError(code: response.statusCode)
208-
)
209154
completion(.failure(.invalidArgument))
210155
return
211156
}
212157
DeviceLogger.logEvent(level: .debug,
213158
message: ModelDownloadTask.ErrorDescription.expiredModelInfo,
214159
messageCode: .expiredModelInfo)
215-
telemetryLogger?.logModelDownloadEvent(
216-
eventName: .modelDownload,
217-
status: .failed,
218-
model: CustomModel(name: remoteModelInfo.name,
219-
size: remoteModelInfo.size,
220-
path: "",
221-
hash: remoteModelInfo.modelHash),
222-
downloadErrorCode: .urlExpired
223-
)
224160
completion(.failure(.expiredDownloadURL))
225161
case 401, 403:
226162
DeviceLogger.logEvent(level: .debug,
227163
message: ModelDownloadTask.ErrorDescription.permissionDenied,
228164
messageCode: .permissionDenied)
229-
telemetryLogger?.logModelDownloadEvent(
230-
eventName: .modelDownload,
231-
status: .failed,
232-
model: CustomModel(name: remoteModelInfo.name,
233-
size: remoteModelInfo.size,
234-
path: "",
235-
hash: remoteModelInfo.modelHash),
236-
downloadErrorCode: .httpError(code: response.statusCode)
237-
)
238165
completion(.failure(.permissionDenied))
239166
case 404:
240167
DeviceLogger.logEvent(level: .debug,
241168
message: ModelDownloadTask.ErrorDescription
242169
.modelNotFound(remoteModelInfo.name),
243170
messageCode: .modelNotFound)
244-
telemetryLogger?.logModelDownloadEvent(
245-
eventName: .modelDownload,
246-
status: .failed,
247-
model: CustomModel(name: remoteModelInfo.name,
248-
size: remoteModelInfo.size,
249-
path: "",
250-
hash: remoteModelInfo.modelHash),
251-
downloadErrorCode: .httpError(code: response.statusCode)
252-
)
253171
completion(.failure(.notFound))
254172
default:
255173
let description = ModelDownloadTask.ErrorDescription
256174
.modelDownloadFailed(response.statusCode)
257175
DeviceLogger.logEvent(level: .debug,
258176
message: description,
259177
messageCode: .modelDownloadError)
260-
telemetryLogger?.logModelDownloadEvent(
261-
eventName: .modelDownload,
262-
status: .failed,
263-
model: CustomModel(name: remoteModelInfo.name,
264-
size: remoteModelInfo.size,
265-
path: "",
266-
hash: remoteModelInfo.modelHash),
267-
downloadErrorCode: .httpError(code: response.statusCode)
268-
)
269178
completion(.failure(.internalError(description: description)))
270179
}
271180
return
@@ -282,13 +191,6 @@ extension ModelDownloadTask {
282191
message: description,
283192
messageCode: .downloadedModelSaveError)
284193
// Downloading the file succeeding but saving failed.
285-
telemetryLogger?.logModelDownloadEvent(eventName: .modelDownload,
286-
status: .succeeded,
287-
model: CustomModel(name: remoteModelInfo.name,
288-
size: remoteModelInfo.size,
289-
path: "",
290-
hash: remoteModelInfo.modelHash),
291-
downloadErrorCode: .downloadFailed)
292194
completion(.failure(.internalError(description: description)))
293195
return
294196
}
@@ -325,12 +227,6 @@ extension ModelDownloadTask {
325227
DeviceLogger.logEvent(level: .debug,
326228
message: ModelDownloadTask.DebugDescription.modelDownloaded,
327229
messageCode: .modelDownloaded)
328-
telemetryLogger?.logModelDownloadEvent(
329-
eventName: .modelDownload,
330-
status: .succeeded,
331-
model: model,
332-
downloadErrorCode: .noError
333-
)
334230
completion(.success(model))
335231
} catch let error as DownloadError {
336232
if error == .notEnoughSpace {
@@ -343,27 +239,13 @@ extension ModelDownloadTask {
343239
messageCode: .downloadedModelSaveError)
344240
}
345241
// Downloading the file succeeding but saving failed.
346-
telemetryLogger?.logModelDownloadEvent(eventName: .modelDownload,
347-
status: .succeeded,
348-
model: CustomModel(name: remoteModelInfo.name,
349-
size: remoteModelInfo.size,
350-
path: "",
351-
hash: remoteModelInfo.modelHash),
352-
downloadErrorCode: .downloadFailed)
353242
completion(.failure(error))
354243
return
355244
} catch {
356245
DeviceLogger.logEvent(level: .debug,
357246
message: ModelDownloadTask.ErrorDescription.modelSaveError,
358247
messageCode: .downloadedModelSaveError)
359248
// Downloading the file succeeding but saving failed.
360-
telemetryLogger?.logModelDownloadEvent(eventName: .modelDownload,
361-
status: .succeeded,
362-
model: CustomModel(name: remoteModelInfo.name,
363-
size: remoteModelInfo.size,
364-
path: "",
365-
hash: remoteModelInfo.modelHash),
366-
downloadErrorCode: .downloadFailed)
367249
completion(.failure(.internalError(description: error.localizedDescription)))
368250
return
369251
}

0 commit comments

Comments
 (0)