Skip to content

Make a best effort attempt to flush reports at crash time #4112

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Sep 27, 2022

Conversation

mrober
Copy link
Contributor

@mrober mrober commented Sep 16, 2022

Make a best effort attempt to flush reports at crash time. This should allow us to upload reports for app initialization crashes. This will also prevent the app from needing to relaunch to upload the scheduled reports. If the best effort attempt fails, this will still go back to the original behaviour.

@google-oss-bot
Copy link
Contributor

google-oss-bot commented Sep 16, 2022

Coverage Report 1

Affected Products

  • firebase-crashlytics

    Overall coverage changed from ? (988ff71) to 10.14% (a542470) by ?.

    111 individual files with coverage change

    FilenameBase (988ff71)Merge (a542470)Diff
    AnalyticsDeferredProxy.java?0.00%?
    AnalyticsEventLogger.java?0.00%?
    AnalyticsEventReceiver.java?0.00%?
    AppData.java?56.25%?
    AutoCrashlyticsReportEncoder.java?57.86%?
    AutoValue_CrashlyticsReport.java?0.00%?
    AutoValue_CrashlyticsReportWithSessionId.java?0.00%?
    AutoValue_CrashlyticsReport_ApplicationExitInfo.java?68.09%?
    AutoValue_CrashlyticsReport_CustomAttribute.java?0.00%?
    AutoValue_CrashlyticsReport_FilesPayload.java?0.00%?
    AutoValue_CrashlyticsReport_FilesPayload_File.java?0.00%?
    AutoValue_CrashlyticsReport_Session.java?0.00%?
    AutoValue_CrashlyticsReport_Session_Application.java?0.00%?
    AutoValue_CrashlyticsReport_Session_Application_Organization.java?0.00%?
    AutoValue_CrashlyticsReport_Session_Device.java?0.00%?
    AutoValue_CrashlyticsReport_Session_Event.java?0.00%?
    AutoValue_CrashlyticsReport_Session_Event_Application.java?0.00%?
    AutoValue_CrashlyticsReport_Session_Event_Application_Execution.java?0.00%?
    AutoValue_CrashlyticsReport_Session_Event_Application_Execution_BinaryImage.java?0.00%?
    AutoValue_CrashlyticsReport_Session_Event_Application_Execution_Exception.java?0.00%?
    AutoValue_CrashlyticsReport_Session_Event_Application_Execution_Signal.java?0.00%?
    AutoValue_CrashlyticsReport_Session_Event_Application_Execution_Thread.java?0.00%?
    AutoValue_CrashlyticsReport_Session_Event_Application_Execution_Thread_Frame.java?0.00%?
    AutoValue_CrashlyticsReport_Session_Event_Device.java?0.00%?
    AutoValue_CrashlyticsReport_Session_Event_Log.java?0.00%?
    AutoValue_CrashlyticsReport_Session_OperatingSystem.java?0.00%?
    AutoValue_CrashlyticsReport_Session_User.java?0.00%?
    AutoValue_StaticSessionData.java?0.00%?
    AutoValue_StaticSessionData_AppData.java?6.00%?
    AutoValue_StaticSessionData_DeviceData.java?0.00%?
    AutoValue_StaticSessionData_OsData.java?0.00%?
    BackgroundPriorityRunnable.java?0.00%?
    BatteryState.java?0.00%?
    BlockingAnalyticsEventLogger.java?0.00%?
    BreadcrumbAnalyticsEventReceiver.java?0.00%?
    BreadcrumbHandler.java?0.00%?
    BreadcrumbSource.java?0.00%?
    BytesBackedNativeSessionFile.java?0.00%?
    CachedSettingsIo.java?0.00%?
    CLSUUID.java?0.00%?
    CommonUtils.java?0.00%?
    CrashlyticsAnalyticsListener.java?0.00%?
    CrashlyticsBackgroundWorker.java?56.25%?
    CrashlyticsController.java?18.29%?
    CrashlyticsCore.java?0.63%?
    CrashlyticsFileMarker.java?30.77%?
    CrashlyticsLifecycleEvents.java?0.00%?
    CrashlyticsNativeComponent.java?0.00%?
    CrashlyticsNativeComponentDeferredProxy.java?25.81%?
    CrashlyticsOriginAnalyticsEventLogger.java?0.00%?
    CrashlyticsRegistrar.java?0.00%?
    CrashlyticsReport.java?2.83%?
    CrashlyticsReportDataCapture.java?3.98%?
    CrashlyticsReportJsonTransform.java?1.24%?
    CrashlyticsReportPersistence.java?3.19%?
    CrashlyticsReportWithSessionId.java?0.00%?
    CrashlyticsUncaughtExceptionHandler.java?0.00%?
    CurrentTimeProvider.java?0.00%?
    CustomKeysAndValues.java?0.00%?
    DataCollectionArbiter.java?0.00%?
    DataTransportCrashlyticsReportSender.java?48.28%?
    DefaultSettingsJsonTransform.java?0.00%?
    DefaultSettingsSpiCall.java?0.00%?
    DeliveryMechanism.java?90.91%?
    DevelopmentPlatformProvider.java?0.00%?
    DisabledBreadcrumbSource.java?0.00%?
    ExecutorUtils.java?0.00%?
    FileBackedNativeSessionFile.java?0.00%?
    FileLogStore.java?0.00%?
    FileStore.java?36.36%?
    FirebaseCrashlytics.java?0.00%?
    HttpGetRequest.java?0.00%?
    HttpRequestFactory.java?0.00%?
    HttpResponse.java?0.00%?
    IdManager.java?3.13%?
    ImmutableList.java?0.00%?
    InstallerPackageNameProvider.java?0.00%?
    InstallIdProvider.java?0.00%?
    KeysMap.java?24.32%?
    LogFileManager.java?60.71%?
    Logger.java?40.54%?
    MetaDataStore.java?23.38%?
    MiddleOutFallbackStrategy.java?0.00%?
    MiddleOutStrategy.java?0.00%?
    NativeSessionFile.java?0.00%?
    NativeSessionFileGzipper.java?0.00%?
    NativeSessionFileProvider.java?0.00%?
    OnDemandCounter.java?0.00%?
    QueueFile.java?0.00%?
    QueueFileLogStore.java?7.58%?
    RemoveRepeatsStrategy.java?0.00%?
    ReportQueue.java?0.00%?
    ResponseParser.java?0.00%?
    SessionReportingCoordinator.java?44.76%?
    Settings.java?94.74%?
    SettingsCacheBehavior.java?0.00%?
    SettingsController.java?0.00%?
    SettingsJsonConstants.java?0.00%?
    SettingsJsonParser.java?0.00%?
    SettingsJsonTransform.java?0.00%?
    SettingsProvider.java?0.00%?
    SettingsRequest.java?0.00%?
    SettingsSpiCall.java?0.00%?
    SettingsV3JsonTransform.java?0.00%?
    StackTraceTrimmingStrategy.java?0.00%?
    StaticSessionData.java?12.50%?
    SystemCurrentTimeProvider.java?0.00%?
    TrimmedThrowableData.java?0.00%?
    UnavailableAnalyticsEventLogger.java?0.00%?
    UserMetadata.java?25.93%?
    Utils.java?0.00%?

  • transport-runtime

    Overall coverage changed from ? (988ff71) to 0.00% (a542470) by ?.

    93 individual files with coverage change

    FilenameBase (988ff71)Merge (a542470)Diff
    AlarmManagerScheduler.java?0.00%?
    AlarmManagerSchedulerBroadcastReceiver.java?0.00%?
    AutoProtoEncoderDoNotUseEncoder.java?0.00%?
    AutoValue_BackendRequest.java?0.00%?
    AutoValue_BackendResponse.java?0.00%?
    AutoValue_CreationContext.java?0.00%?
    AutoValue_EventInternal.java?0.00%?
    AutoValue_EventStoreConfig.java?0.00%?
    AutoValue_PersistedEvent.java?0.00%?
    AutoValue_SchedulerConfig.java?0.00%?
    AutoValue_SchedulerConfig_ConfigValue.java?0.00%?
    AutoValue_SendRequest.java?0.00%?
    AutoValue_TransportContext.java?0.00%?
    BackendFactory.java?0.00%?
    BackendRegistry.java?0.00%?
    BackendRegistryModule.java?0.00%?
    BackendRequest.java?0.00%?
    BackendResponse.java?0.00%?
    ClientHealthMetricsStore.java?0.00%?
    ClientMetrics.java?0.00%?
    Clock.java?0.00%?
    CreationContext.java?0.00%?
    CreationContextFactory.java?0.00%?
    CreationContextFactory_Factory.java?0.00%?
    DaggerTransportRuntimeComponent.java?0.00%?
    DefaultScheduler.java?0.00%?
    DefaultScheduler_Factory.java?0.00%?
    Destination.java?0.00%?
    EncodedDestination.java?0.00%?
    EncodedPayload.java?0.00%?
    EventInternal.java?0.00%?
    EventStore.java?0.00%?
    EventStoreConfig.java?0.00%?
    EventStoreModule.java?0.00%?
    EventStoreModule_DbNameFactory.java?0.00%?
    EventStoreModule_PackageNameFactory.java?0.00%?
    EventStoreModule_SchemaVersionFactory.java?0.00%?
    EventStoreModule_StoreConfigFactory.java?0.00%?
    ExecutionModule.java?0.00%?
    ExecutionModule_ExecutorFactory.java?0.00%?
    ForcedSender.java?0.00%?
    Function.java?0.00%?
    GlobalMetrics.java?0.00%?
    JobInfoScheduler.java?0.00%?
    JobInfoSchedulerService.java?0.00%?
    LogEventDropped.java?0.00%?
    Logging.java?0.00%?
    LogSourceMetrics.java?0.00%?
    MetadataBackendRegistry.java?0.00%?
    MetadataBackendRegistry_Factory.java?0.00%?
    Monotonic.java?0.00%?
    PersistedEvent.java?0.00%?
    PriorityMapping.java?0.00%?
    ProtoEncoderDoNotUse.java?0.00%?
    Retries.java?0.00%?
    RetryStrategy.java?0.00%?
    SafeLoggingExecutor.java?0.00%?
    Scheduler.java?0.00%?
    SchedulerConfig.java?0.00%?
    SchedulingConfigModule.java?0.00%?
    SchedulingConfigModule_ConfigFactory.java?0.00%?
    SchedulingModule.java?0.00%?
    SchedulingModule_WorkSchedulerFactory.java?0.00%?
    SchemaManager.java?0.00%?
    SchemaManager_Factory.java?0.00%?
    SendRequest.java?0.00%?
    SQLiteEventStore.java?0.00%?
    SQLiteEventStore_Factory.java?0.00%?
    StorageMetrics.java?0.00%?
    SynchronizationException.java?0.00%?
    SynchronizationGuard.java?0.00%?
    TestClock.java?0.00%?
    TimeModule.java?0.00%?
    TimeModule_EventClockFactory.java?0.00%?
    TimeModule_UptimeClockFactory.java?0.00%?
    TimeWindow.java?0.00%?
    TransportBackend.java?0.00%?
    TransportBackendDiscovery.java?0.00%?
    TransportContext.java?0.00%?
    TransportFactoryImpl.java?0.00%?
    TransportImpl.java?0.00%?
    TransportInternal.java?0.00%?
    TransportRuntime.java?0.00%?
    TransportRuntimeComponent.java?0.00%?
    TransportRuntime_Factory.java?0.00%?
    Uploader.java?0.00%?
    Uploader_Factory.java?0.00%?
    UptimeClock.java?0.00%?
    WallTime.java?0.00%?
    WallTimeClock.java?0.00%?
    WorkInitializer.java?0.00%?
    WorkInitializer_Factory.java?0.00%?
    WorkScheduler.java?0.00%?

Test Logs

  1. https://storage.googleapis.com/firebase-sdk-metric-reports/x5yPPZM2PX.html

@github-actions
Copy link
Contributor

github-actions bot commented Sep 16, 2022

Unit Test Results

792 tests   - 180   792 ✔️  - 180   5m 1s ⏱️ + 3m 15s
  60 suites +    9       0 💤 ±    0 
  60 files   +    9       0 ±    0 

Results for commit 7a4d20e. ± Comparison against base commit 6df92b9.

♻️ This comment has been updated with latest results.

@google-oss-bot
Copy link
Contributor

google-oss-bot commented Sep 16, 2022

Size Report 1

Affected Products

  • firebase-crashlytics

    TypeBase (988ff71)Merge (a542470)Diff
    aar340 kB341 kB+965 B (+0.3%)
    apk (aggressive)217 kB217 kB+348 B (+0.2%)
    apk (release)894 kB895 kB+1.06 kB (+0.1%)
  • transport-backend-cct

    TypeBase (988ff71)Merge (a542470)Diff
    apk (release)105 kB105 kB+416 B (+0.4%)
  • transport-runtime

    TypeBase (988ff71)Merge (a542470)Diff
    aar178 kB180 kB+1.08 kB (+0.6%)
    apk (release)83.0 kB83.5 kB+540 B (+0.7%)

Test Logs

  1. https://storage.googleapis.com/firebase-sdk-metric-reports/bFfRAgc5j8.html

Comment on lines 122 to 132
new Thread(
() -> {
TransportRuntime.getInstance()
.getUploader()
.upload(DataTransportCrashlyticsReportSender.transportContext, 1, () -> {});
latch.countDown();
})
.start();
try {
//noinspection ResultOfMethodCallIgnored best effort only
latch.await(2, TimeUnit.SECONDS);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you block waiting for the thread to finish, why have a Thread at all instead of calling the blocking method directly?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We want this to time out after 2 seconds, so it never leaves the app hanging after the uncaught exception.

@vkryachko
Copy link
Member

@emilypgoogle jfyi

Copy link
Member

@vkryachko vkryachko left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We probably need some tests as well

Copy link
Contributor

@mrichards mrichards left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@mrober mrober merged commit 1d344e8 into master Sep 27, 2022
@mrober mrober deleted the crashlytics-flush branch September 27, 2022 13:41
lfkellogg added a commit that referenced this pull request Oct 26, 2022
* Deflake firebase_common HeartBeat tests. (#4083)

The tests relied on `TestOnCompleteListener` that was not safe to call
more than once since it was based on a count down latch. So reusing it
multiple times would cause await() to return immediately.

This change makes it so that a new latch is created for every await()
call, making all await() calls work.

Fixes: http://b/245956774

* Add Javadoc support to the DackkaPlugin (#4082)

* Add util method for copying directories

* Add javadoc support to our dackka plugin

* Remove the extension check on fromDirectory

* Add a note about cache compliance and the javadoc task

* Add reference to kotlin stdlib package list (#4093)

* Add appcheck-ktx to bom config (#4081)

* Removing getRunningAppProcesses since the process_name isn't used (#4057)

* Fix Documentation classpath (#4099)

b/241795594

* Add projectSpecificSources back to the DackkaPlugin (#4110)

* Added extra method for TaskProviders

* Added specificSources method back

* Revert to dependsOn for docstubs dep

* Revamp test harness for macrobenchmark tests (#4071)

* Fix dependabot security alerts (#4123)

* Make firesite transform cacheable (#4124)

* add coroutines-play-services as a transitive dep to firebase-common-ktx (#4044)

* add kotlinx-coroutines-play-services as a transitive dep to firebase-common-ktx

* Update to Coroutines 1.6.4

* database-ktx: add callbackFlow for eventlisteners (#4012)

* add callbackFlow for RTDB's ValueEventListener

* add callbackFlow for RTDB's ChildEventListener

* delegate trySendBlocking to DefaultRunLoop

* add group to ktx.gradle

* update api.txt file

* Update released versions (#4135)

* Upgrade dackkaConfig (#4141)

* Add names to all Firebase components (#4117)

* Add appcheck's ktx artifact back to package list file (#4142)

* Add strict mode testing in firebase-messaging (#4095)

* Add gralde property to instrument Fireperf E2E test (#4144)

The perf gradle PR is #334 in the gradle repo.

b/246802885

* Resolve StrictMode violation in App Check. (#4085)

* Resolve StrictMode violation in App Check.

* Attempt to fix some tests.

* Fix unit tests.

* Make `retrieveStoredAppCheckTokenInBackground` private instead of package-private.

* Move listener invocations back to the main thread while keeping disk write on background thread.

* Refactor to use lambda syntax.

* Implemented exponential backoff and max retry with resumable uploads (#4087)

* storage-ktx: add callbackFlow for upload/download progress (#4139)

* add kotlin flows to storage

* update api.txt file

* add group to storage/ktx.gradle

* Make a best effort attempt to flush reports at crash time (#4112)

This should allow us to upload reports for start-up crashes.

* Public Count (#4130)

* Public Count

* Disable prod testing

* Long to long

* Api.txt

* Backfill changelog

* Add PR

* Fix assertEquals error

* Re-write API javadocs for COUNT API (#4143)

Co-authored-by: Denver Coneybeare <[email protected]>

* [Fireperf][AASA] send `_experiment_app_start_ttid` trace, controlled by RC flag (#4114)

* log _experiment_as_ttid

* send event and RRC mitigation

* add RC wip

* modified save to cache when RC fetches

* dev-app manifest override

* unit test for RCc cache saving

* better name and comments

* better formatting remoteconfigmanagertest

* better comments and added local RC lookup back

* Specify unique ref tags in Dackka output (#4149)

* Add util methods for gradle projects

* Disable Javadoc generation on empty projects

* Fix ref path generation in Dackka output

* Add documentation for util methods

* Update the DackkaPlugin docs

* Reduced path to relative from tenant

* Reduced ref head path even more

* Fixed ref tag path to working solution

* Disabled publishJavadoc by default for tests

It should be enabled explicitly when being tested anyhow, and causes issues otherwise. Instead of disabling it for the tests that don't need it- this is much quicker and easier to manager.

* Add strict mode tests to inappmessaging and inappmessaging-display (#4136)

* Fix strict mode violations for appcheck (#4148)

* Fix strict mode violations for appcheck

* Formatting

* Add copyright header

* Populate SDKs changelog files (#4070)

* first try seeding changelogs

* Added unreleased section to CHANGELOG

* Fix empty lines between sections

* Add missing entries for abt

* Update data to include latest releases

* Update CHANGELOG.md

* Add missing line in unreleased section for perf.

* Enable CHANGELOG check globally (#4084)

* Enable CHANGELOG check globally

* Simplify conditional.

* Enable COUNT integration tests, now that backend support has rolled out (#4163)

* Remove separation of kotlin directories in dackka (#4166)

* Deprecate App Check SafetyNet SDK (#4187)

* Add `@Deprecated` annotations to Firebase App Check SafetyNet SDK public API.

* Add `@deprecated` tag in the Javadoc as well.

* Remove stale entries from Unreleased section. (#4185)

* Assign ConfigContainer Builder return values. (#4194)

* update bom (#4155)

* update bom

* update

* update

* feat(perf-ktx): add trace(name, block) extension function (#4180)

* Remove smoke test for app indexing (#4219)

App Indexing is deprecated starting BoM 31.0.0 .

https://firebase.google.com/support/release-notes/android#bom_v31-0-0

* Bump Robolectric to 4.9 (#4161)

* Add plexus-utils for firebase-database tests

Looks like firebase-database tests use plexus-utils dependency of
Robolectric directly. But this dependency was removed by Robolectric. So
this CL adds plexus-utils explictly for firebase-database tests.

Signed-off-by: utzcoz <[email protected]>

* Bump Robolectric to 4.9

1. Use legacy LooperMode for tests explicitly, because recent
   Robolectric releases switch to use PAUSED mode default. Before these
   tests migrate to PAUSED mode, they use LEGACY mode to pass tests.
2. Migrate Assert.assertThat to Truth.assertThat to avoid using removed
   APIs.
3. All build.gradle use the same robolectricVersion except
   transport-backend-cct because Robolectric 4.8+ has compatibility
   problem for TelephonyManager with low compile/targetSdkversion.
   To keep httpclient compatibility, transport-backend-ccts continues to
   use Robolectric 4.3.1.
4. Remove unused exclude protobuf-java from Robolectric.
5. Add necessary protobuf-lite dependency on classpath for
   some ktx modules' tests.

Signed-off-by: utzcoz <[email protected]>

Signed-off-by: utzcoz <[email protected]>

* return exception if modelname is empty (#4226)

* Add "create release PR" github action (#4236)

This implementation:

- Creates the base branch (name is based in user input)
- Creates the release branch (name is based in user input)
- Creates the release.cfg file in the release branch without adding
  any SDK (module) to it.

It can create the branches based on any existing branch of the repo.

* Sync spec tests from web SDK to Android SDK (#4230)

* Update versions (#4238)

* Update versions

* Exclude .github dir from `firebaseContinuousIntegration` paths (#4239)

* Performing IN expansion (#4221)

* WIP: `in` expansion.

* Add composite filter in-expansion test.

* Fix formatting.

* Run in-expansion as part of DNF computation and add tests.

* Add test with nested IN filters with CSI.

* Add tests for other cases.

* typo fix (#4237)

* Firestore: Add test that verifies count query error message when missing index (#4232)

* refactor(functions): update firebase-iid to 21.1.0 (#4225)

* refactor(functions): update firebase-iid to 21.1.0

* Update CHANGELOG.md

* Update CHANGELOG.md

* bump firebase-iid-interop to 17.1.0

* exclude firebase-components from firebase-iid dependency

Signed-off-by: utzcoz <[email protected]>
Co-authored-by: Vladimir Kryachko <[email protected]>
Co-authored-by: Daymon <[email protected]>
Co-authored-by: Raymond Lam <[email protected]>
Co-authored-by: Yifan Yang <[email protected]>
Co-authored-by: Rosário Pereira Fernandes <[email protected]>
Co-authored-by: emilypgoogle <[email protected]>
Co-authored-by: Jeremy Jiang <[email protected]>
Co-authored-by: Rosalyn Tan <[email protected]>
Co-authored-by: Maneesh Tewani <[email protected]>
Co-authored-by: Matthew Robertson <[email protected]>
Co-authored-by: wu-hui <[email protected]>
Co-authored-by: Denver Coneybeare <[email protected]>
Co-authored-by: Leo Zhan <[email protected]>
Co-authored-by: Rodrigo Lazo <[email protected]>
Co-authored-by: Dana Silver <[email protected]>
Co-authored-by: Vinay Guthal <[email protected]>
Co-authored-by: utzcoz <[email protected]>
Co-authored-by: argzdev <[email protected]>
Co-authored-by: Mila <[email protected]>
Co-authored-by: Ehsan <[email protected]>
Co-authored-by: cherylEnkidu <[email protected]>
lfkellogg added a commit that referenced this pull request Oct 27, 2022
* Minor updates to the App Distribution test app. (#4088)

* Update various versions (#4090)

* Updated various versions (dependencies and SDK to fix Android resource linking failure (AAPT: error: resource android:attr/lStar not found.)

* Update compileSdk/targetSdkVersion from 31 to 33

* Update with latest changes from master (#4091)

* Deflake firebase_common HeartBeat tests. (#4083)

The tests relied on `TestOnCompleteListener` that was not safe to call
more than once since it was based on a count down latch. So reusing it
multiple times would cause await() to return immediately.

This change makes it so that a new latch is created for every await()
call, making all await() calls work.

Fixes: http://b/245956774

* Add Javadoc support to the DackkaPlugin (#4082)

* Add util method for copying directories

* Add javadoc support to our dackka plugin

* Remove the extension check on fromDirectory

* Add a note about cache compliance and the javadoc task

* Add reference to kotlin stdlib package list (#4093)

Co-authored-by: Vladimir Kryachko <[email protected]>
Co-authored-by: Daymon <[email protected]>

* Resolve strict mode violations in firebase-appdistribution (#4092)

* merge master into fad/next (#4102)

* Deflake firebase_common HeartBeat tests. (#4083)

The tests relied on `TestOnCompleteListener` that was not safe to call
more than once since it was based on a count down latch. So reusing it
multiple times would cause await() to return immediately.

This change makes it so that a new latch is created for every await()
call, making all await() calls work.

Fixes: http://b/245956774

* Add Javadoc support to the DackkaPlugin (#4082)

* Add util method for copying directories

* Add javadoc support to our dackka plugin

* Remove the extension check on fromDirectory

* Add a note about cache compliance and the javadoc task

* Add reference to kotlin stdlib package list (#4093)

Co-authored-by: Vladimir Kryachko <[email protected]>
Co-authored-by: Daymon <[email protected]>

* Remove `release` field. (#4174)

* Merge changes from master into fad/next (#4199)

* Merge latest master into fad/next (#4247)

* Deflake firebase_common HeartBeat tests. (#4083)

The tests relied on `TestOnCompleteListener` that was not safe to call
more than once since it was based on a count down latch. So reusing it
multiple times would cause await() to return immediately.

This change makes it so that a new latch is created for every await()
call, making all await() calls work.

Fixes: http://b/245956774

* Add Javadoc support to the DackkaPlugin (#4082)

* Add util method for copying directories

* Add javadoc support to our dackka plugin

* Remove the extension check on fromDirectory

* Add a note about cache compliance and the javadoc task

* Add reference to kotlin stdlib package list (#4093)

* Add appcheck-ktx to bom config (#4081)

* Removing getRunningAppProcesses since the process_name isn't used (#4057)

* Fix Documentation classpath (#4099)

b/241795594

* Add projectSpecificSources back to the DackkaPlugin (#4110)

* Added extra method for TaskProviders

* Added specificSources method back

* Revert to dependsOn for docstubs dep

* Revamp test harness for macrobenchmark tests (#4071)

* Fix dependabot security alerts (#4123)

* Make firesite transform cacheable (#4124)

* add coroutines-play-services as a transitive dep to firebase-common-ktx (#4044)

* add kotlinx-coroutines-play-services as a transitive dep to firebase-common-ktx

* Update to Coroutines 1.6.4

* database-ktx: add callbackFlow for eventlisteners (#4012)

* add callbackFlow for RTDB's ValueEventListener

* add callbackFlow for RTDB's ChildEventListener

* delegate trySendBlocking to DefaultRunLoop

* add group to ktx.gradle

* update api.txt file

* Update released versions (#4135)

* Upgrade dackkaConfig (#4141)

* Add names to all Firebase components (#4117)

* Add appcheck's ktx artifact back to package list file (#4142)

* Add strict mode testing in firebase-messaging (#4095)

* Add gralde property to instrument Fireperf E2E test (#4144)

The perf gradle PR is #334 in the gradle repo.

b/246802885

* Resolve StrictMode violation in App Check. (#4085)

* Resolve StrictMode violation in App Check.

* Attempt to fix some tests.

* Fix unit tests.

* Make `retrieveStoredAppCheckTokenInBackground` private instead of package-private.

* Move listener invocations back to the main thread while keeping disk write on background thread.

* Refactor to use lambda syntax.

* Implemented exponential backoff and max retry with resumable uploads (#4087)

* storage-ktx: add callbackFlow for upload/download progress (#4139)

* add kotlin flows to storage

* update api.txt file

* add group to storage/ktx.gradle

* Make a best effort attempt to flush reports at crash time (#4112)

This should allow us to upload reports for start-up crashes.

* Public Count (#4130)

* Public Count

* Disable prod testing

* Long to long

* Api.txt

* Backfill changelog

* Add PR

* Fix assertEquals error

* Re-write API javadocs for COUNT API (#4143)

Co-authored-by: Denver Coneybeare <[email protected]>

* [Fireperf][AASA] send `_experiment_app_start_ttid` trace, controlled by RC flag (#4114)

* log _experiment_as_ttid

* send event and RRC mitigation

* add RC wip

* modified save to cache when RC fetches

* dev-app manifest override

* unit test for RCc cache saving

* better name and comments

* better formatting remoteconfigmanagertest

* better comments and added local RC lookup back

* Specify unique ref tags in Dackka output (#4149)

* Add util methods for gradle projects

* Disable Javadoc generation on empty projects

* Fix ref path generation in Dackka output

* Add documentation for util methods

* Update the DackkaPlugin docs

* Reduced path to relative from tenant

* Reduced ref head path even more

* Fixed ref tag path to working solution

* Disabled publishJavadoc by default for tests

It should be enabled explicitly when being tested anyhow, and causes issues otherwise. Instead of disabling it for the tests that don't need it- this is much quicker and easier to manager.

* Add strict mode tests to inappmessaging and inappmessaging-display (#4136)

* Fix strict mode violations for appcheck (#4148)

* Fix strict mode violations for appcheck

* Formatting

* Add copyright header

* Populate SDKs changelog files (#4070)

* first try seeding changelogs

* Added unreleased section to CHANGELOG

* Fix empty lines between sections

* Add missing entries for abt

* Update data to include latest releases

* Update CHANGELOG.md

* Add missing line in unreleased section for perf.

* Enable CHANGELOG check globally (#4084)

* Enable CHANGELOG check globally

* Simplify conditional.

* Enable COUNT integration tests, now that backend support has rolled out (#4163)

* Remove separation of kotlin directories in dackka (#4166)

* Deprecate App Check SafetyNet SDK (#4187)

* Add `@Deprecated` annotations to Firebase App Check SafetyNet SDK public API.

* Add `@deprecated` tag in the Javadoc as well.

* Remove stale entries from Unreleased section. (#4185)

* Assign ConfigContainer Builder return values. (#4194)

* update bom (#4155)

* update bom

* update

* update

* feat(perf-ktx): add trace(name, block) extension function (#4180)

* Remove smoke test for app indexing (#4219)

App Indexing is deprecated starting BoM 31.0.0 .

https://firebase.google.com/support/release-notes/android#bom_v31-0-0

* Bump Robolectric to 4.9 (#4161)

* Add plexus-utils for firebase-database tests

Looks like firebase-database tests use plexus-utils dependency of
Robolectric directly. But this dependency was removed by Robolectric. So
this CL adds plexus-utils explictly for firebase-database tests.

Signed-off-by: utzcoz <[email protected]>

* Bump Robolectric to 4.9

1. Use legacy LooperMode for tests explicitly, because recent
   Robolectric releases switch to use PAUSED mode default. Before these
   tests migrate to PAUSED mode, they use LEGACY mode to pass tests.
2. Migrate Assert.assertThat to Truth.assertThat to avoid using removed
   APIs.
3. All build.gradle use the same robolectricVersion except
   transport-backend-cct because Robolectric 4.8+ has compatibility
   problem for TelephonyManager with low compile/targetSdkversion.
   To keep httpclient compatibility, transport-backend-ccts continues to
   use Robolectric 4.3.1.
4. Remove unused exclude protobuf-java from Robolectric.
5. Add necessary protobuf-lite dependency on classpath for
   some ktx modules' tests.

Signed-off-by: utzcoz <[email protected]>

Signed-off-by: utzcoz <[email protected]>

* return exception if modelname is empty (#4226)

* Add "create release PR" github action (#4236)

This implementation:

- Creates the base branch (name is based in user input)
- Creates the release branch (name is based in user input)
- Creates the release.cfg file in the release branch without adding
  any SDK (module) to it.

It can create the branches based on any existing branch of the repo.

* Sync spec tests from web SDK to Android SDK (#4230)

* Update versions (#4238)

* Update versions

* Exclude .github dir from `firebaseContinuousIntegration` paths (#4239)

* Performing IN expansion (#4221)

* WIP: `in` expansion.

* Add composite filter in-expansion test.

* Fix formatting.

* Run in-expansion as part of DNF computation and add tests.

* Add test with nested IN filters with CSI.

* Add tests for other cases.

* typo fix (#4237)

* Firestore: Add test that verifies count query error message when missing index (#4232)

* refactor(functions): update firebase-iid to 21.1.0 (#4225)

* refactor(functions): update firebase-iid to 21.1.0

* Update CHANGELOG.md

* Update CHANGELOG.md

* bump firebase-iid-interop to 17.1.0

* exclude firebase-components from firebase-iid dependency

Signed-off-by: utzcoz <[email protected]>
Co-authored-by: Vladimir Kryachko <[email protected]>
Co-authored-by: Daymon <[email protected]>
Co-authored-by: Raymond Lam <[email protected]>
Co-authored-by: Yifan Yang <[email protected]>
Co-authored-by: Rosário Pereira Fernandes <[email protected]>
Co-authored-by: emilypgoogle <[email protected]>
Co-authored-by: Jeremy Jiang <[email protected]>
Co-authored-by: Rosalyn Tan <[email protected]>
Co-authored-by: Maneesh Tewani <[email protected]>
Co-authored-by: Matthew Robertson <[email protected]>
Co-authored-by: wu-hui <[email protected]>
Co-authored-by: Denver Coneybeare <[email protected]>
Co-authored-by: Leo Zhan <[email protected]>
Co-authored-by: Rodrigo Lazo <[email protected]>
Co-authored-by: Dana Silver <[email protected]>
Co-authored-by: Vinay Guthal <[email protected]>
Co-authored-by: utzcoz <[email protected]>
Co-authored-by: argzdev <[email protected]>
Co-authored-by: Mila <[email protected]>
Co-authored-by: Ehsan <[email protected]>
Co-authored-by: cherylEnkidu <[email protected]>

* Fix ImageUtils test after robolectric update

* Remove extra member initialization in test app

* Ignore flaky test

Signed-off-by: utzcoz <[email protected]>
Co-authored-by: Kai Bolay <[email protected]>
Co-authored-by: Vladimir Kryachko <[email protected]>
Co-authored-by: Daymon <[email protected]>
Co-authored-by: emilypgoogle <[email protected]>
Co-authored-by: Raymond Lam <[email protected]>
Co-authored-by: Yifan Yang <[email protected]>
Co-authored-by: Rosário Pereira Fernandes <[email protected]>
Co-authored-by: Jeremy Jiang <[email protected]>
Co-authored-by: Rosalyn Tan <[email protected]>
Co-authored-by: Maneesh Tewani <[email protected]>
Co-authored-by: Matthew Robertson <[email protected]>
Co-authored-by: wu-hui <[email protected]>
Co-authored-by: Denver Coneybeare <[email protected]>
Co-authored-by: Leo Zhan <[email protected]>
Co-authored-by: Rodrigo Lazo <[email protected]>
Co-authored-by: Dana Silver <[email protected]>
Co-authored-by: Vinay Guthal <[email protected]>
Co-authored-by: utzcoz <[email protected]>
Co-authored-by: argzdev <[email protected]>
Co-authored-by: Mila <[email protected]>
Co-authored-by: Ehsan <[email protected]>
Co-authored-by: cherylEnkidu <[email protected]>
@firebase firebase locked and limited conversation to collaborators Oct 28, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants