diff --git a/ai-logic/firebase-ai-ksp-processor/CHANGELOG.md b/ai-logic/firebase-ai-ksp-processor/CHANGELOG.md index 947ead13085..6a7e8939b22 100644 --- a/ai-logic/firebase-ai-ksp-processor/CHANGELOG.md +++ b/ai-logic/firebase-ai-ksp-processor/CHANGELOG.md @@ -1,10 +1,10 @@ # Unreleased -- [feature] Added support for on-device structured output generation using `generateObject` (#8395) +- [feature] Added support for on-device structured output generation using + `generateObject` (#8395) # 16.0.0 - [feature] Initial release of the Firebase AI KSP processor SDK - (`firebase-ai-ksp-processor`). This SDK provides support for - automatic Json schema generation. - + (`firebase-ai-ksp-processor`). This SDK provides support for automatic Json + schema generation. diff --git a/ai-logic/firebase-ai-ondevice-interop/CHANGELOG.md b/ai-logic/firebase-ai-ondevice-interop/CHANGELOG.md index 198bf254786..16b93f57098 100644 --- a/ai-logic/firebase-ai-ondevice-interop/CHANGELOG.md +++ b/ai-logic/firebase-ai-ondevice-interop/CHANGELOG.md @@ -1,6 +1,7 @@ # Unreleased -- [feature] Added support for on-device structured output generation using `generateObject` (#8395) +- [feature] Added support for on-device structured output generation using + `generateObject` (#8395) # 16.0.0-beta03 @@ -13,4 +14,3 @@ # 16.0.0-beta01 - [feature] Initial release. - diff --git a/ai-logic/firebase-ai-ondevice/CHANGELOG.md b/ai-logic/firebase-ai-ondevice/CHANGELOG.md index 79bbab5838b..c5a693e44f0 100644 --- a/ai-logic/firebase-ai-ondevice/CHANGELOG.md +++ b/ai-logic/firebase-ai-ondevice/CHANGELOG.md @@ -1,6 +1,7 @@ # Unreleased -- [feature] Added support for on-device structured output generation using `generateObject` (#8395) +- [feature] Added support for on-device structured output generation using + `generateObject` (#8395) # 16.0.0-beta04 @@ -17,4 +18,3 @@ # 16.0.0-beta01 - [feature] Initial release. - diff --git a/ai-logic/firebase-ai/CHANGELOG.md b/ai-logic/firebase-ai/CHANGELOG.md index 75e1a873d33..a5d6e6c9d67 100644 --- a/ai-logic/firebase-ai/CHANGELOG.md +++ b/ai-logic/firebase-ai/CHANGELOG.md @@ -1,36 +1,47 @@ # Unreleased -- [feature] Added support for on-device structured output generation using `generateObject` (#8395) -- [changed] **Breaking Change**: Removed deprecated Imagen methods and types due to Imagen models being shut down in August 2026. As a replacement, you can [migrate your apps to use Gemini Image models (the "Nano Banana" models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration). -- [changed] Adjusts `LiveSession.isClosed` to better reflect underlying connection closure state and not consume frames (#8511) -- [changed] Replaced the `"function"` conversational role with `"user"` for function response content. (#8508) +- [feature] Added support for on-device structured output generation using + `generateObject` (#8395) +- [changed] **Breaking Change**: Removed deprecated Imagen methods and types + due to Imagen models being shut down in August 2026. As a replacement, you can + [migrate your apps to use Gemini Image models (the "Nano Banana" models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration). +- [changed] Adjusts `LiveSession.isClosed` to better reflect underlying + connection closure state and not consume frames (#8511) +- [changed] Replaced the `"function"` conversational role with `"user"` for + function response content. (#8508) # 17.15.0 -- [feature] Added support for `RealtimeInputConfig` and `ActivityDetectionConfig` to configure voice activity detection in Live API. Added `sendStartActivityRealtime` and `sendStopActivityRealtime` to `LiveSession` for manual activity control. (#8080) +- [feature] Added support for `RealtimeInputConfig` and + `ActivityDetectionConfig` to configure voice activity detection in Live API. + Added `sendStartActivityRealtime` and `sendStopActivityRealtime` to + `LiveSession` for manual activity control. (#8080) - [feature] Added `getOnDeviceModelName` to `GenerativeModel` (#8247) - [changed] Deprecated `GenerativeBackend.vertexAI` in favor of - `GenerativeBackend.agentPlatform` to reflect the renaming of Vertex - AI to Gemini Enterprise Agent Platform. (#8437) - - Note: The only difference for `GenerativeBackend.agentPlatform` is the default + `GenerativeBackend.agentPlatform` to reflect the renaming of Vertex AI to + Gemini Enterprise Agent Platform. (#8437) Note: The only difference for + `GenerativeBackend.agentPlatform` is the default [location for accessing the model](https://firebase.google.com/docs/ai-logic/locations?api=vertex). - The default location for `GenerativeBackend.agentPlatform` is `global`, whereas - the default location for `GenerativeBackend.vertexAI` is `us-central1`. To use - `us-central1` with `GenerativeBackend.agentPlatform`, specify - `GenerativeBackend.agentPlatform(location = "us-central1")` when - initializing the SDK. However, note that most new Gemini models do - not support `us-central1`. + The default location for `GenerativeBackend.agentPlatform` is `global`, + whereas the default location for `GenerativeBackend.vertexAI` is + `us-central1`. To use `us-central1` with `GenerativeBackend.agentPlatform`, + specify `GenerativeBackend.agentPlatform(location = "us-central1")` when + initializing the SDK. However, note that most new Gemini models do not support + `us-central1`. # 17.14.0 -- [feature] Added static factory methods `createWithThinking` for `Part` implementations to expose `thoughtSignature` and `isThought` properties. (#8352) -- [feature] Added automatic function calling support for `LiveGenerativeModel`. (#8223) +- [feature] Added static factory methods `createWithThinking` for `Part` + implementations to expose `thoughtSignature` and `isThought` properties. + (#8352) +- [feature] Added automatic function calling support for `LiveGenerativeModel`. + (#8223) # 17.13.0 -- [feature] Expanded `SpeechConfig` to support `MultiSpeakerVoiceConfig` and `LanguageCode`. - Integrated `SpeechConfig` into `GenerationConfig` to support Text-to-speech generation (TTS). (#8100) +- [feature] Expanded `SpeechConfig` to support `MultiSpeakerVoiceConfig` and + `LanguageCode`. Integrated `SpeechConfig` into `GenerationConfig` to support + Text-to-speech generation (TTS). (#8100) - [feature] Added `modelVersion` property to `GenerateContentResponse` (#8227) - [feature] Added [firebase_app_check] as a dependency of the SDK (#8225) @@ -42,50 +53,64 @@ # 17.12.0 - [feature] Added support for `ImageConfig` and `finishMessage`. (#8020) -- [feature] Added a Java-friendly wrapper for TemplateChat interactions (`TemplateChatFutures`). -- [feature] Added support for [Maps Grounding](https://ai.google.dev/gemini-api/docs/maps-grounding) (#7950) -- [feature] Added the `turnComplete` argument to multiple `LiveSession.send()` methods. (#8014) -- [fixed] Fixed `LiveGenerativeModel.connect()` not attaching the `X-Firebase-AppCheck` - header, causing Live API requests to be rejected when App Check is enforced on AI Logic. (#8060) -- [feature] Added support for Java usage of Chat interactions using server prompt templates (#8065) +- [feature] Added a Java-friendly wrapper for TemplateChat interactions + (`TemplateChatFutures`). +- [feature] Added support for + [Maps Grounding](https://ai.google.dev/gemini-api/docs/maps-grounding) (#7950) +- [feature] Added the `turnComplete` argument to multiple `LiveSession.send()` + methods. (#8014) +- [fixed] Fixed `LiveGenerativeModel.connect()` not attaching the + `X-Firebase-AppCheck` header, causing Live API requests to be rejected when + App Check is enforced on AI Logic. (#8060) +- [feature] Added support for Java usage of Chat interactions using server + prompt templates (#8065) # 17.11.0 -- [deprecated] All Imagen models are deprecated and will shut down as early as June 2026. - As a replacement, you can [migrate your apps to use Gemini Image models (the "Nano Banana" models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration). -- [feature] Added support for Chat interactions using server prompt templates (#7986) -- [feature] Added support for function calling in Chat interactions using server prompt templates (#8004) -- [fixed] Fixed an issue causing network timeouts to throw the incorrect exception type, instead of - `RequestTimeoutException` (#7966) -- [fixed] Fixed missing `toString()` implementation for `InferenceSource` (#7970) -- [fixed] Fixed an issue causing the SDK to throw an exception if an unknown message was received - from the LiveAPI model, instead of ignoring it (#7975) +- [deprecated] All Imagen models are deprecated and will shut down as early as + June 2026. As a replacement, you can + [migrate your apps to use Gemini Image models (the "Nano Banana" models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration). +- [feature] Added support for Chat interactions using server prompt templates + (#7986) +- [feature] Added support for function calling in Chat interactions using server + prompt templates (#8004) +- [fixed] Fixed an issue causing network timeouts to throw the incorrect + exception type, instead of `RequestTimeoutException` (#7966) +- [fixed] Fixed missing `toString()` implementation for `InferenceSource` + (#7970) +- [fixed] Fixed an issue causing the SDK to throw an exception if an unknown + message was received from the LiveAPI model, instead of ignoring it (#7975) # 17.10.1 -- [fixed] Fixed an issue causing Live API to fail when using the `GoogleAI` backend (#7880) -- [changed] Added the `hybrid` component to request headers coming from `prefer_in_cloud` configurations (#7857) +- [fixed] Fixed an issue causing Live API to fail when using the `GoogleAI` + backend (#7880) +- [changed] Added the `hybrid` component to request headers coming from + `prefer_in_cloud` configurations (#7857) - [fixed] Fixed documentation errors (#7891) # 17.10.0 - [feature] Added experimental support for on-device inference (#7739) -- [feature] Added automatic function calling support with `AutoFunctionDeclaration`. -- [feature] Added no-argument overloads for `Tool.urlContext()` and `Tool.googleSearch()`. +- [feature] Added automatic function calling support with + `AutoFunctionDeclaration`. +- [feature] Added no-argument overloads for `Tool.urlContext()` and + `Tool.googleSearch()`. # 17.9.0 -- [feature] Added `JsonSchema`, `GenerativeModel#generateObject` and the firebase-ai-ksp processor's - annotation (`Generable`, and `Guide`). To learn more about how to use them, and the ksp processor - see the [Firebase KSP Processor Readme](https://github.com/firebase/firebase-android-sdk/blob/main/firebase-ai-ksp-processor/README.md) -- [feature] Added support for [API Key - restrictions](https://docs.cloud.google.com/docs/authentication/api-keys#adding-application-restrictions) (#7679) +- [feature] Added `JsonSchema`, `GenerativeModel#generateObject` and the + firebase-ai-ksp processor's annotation (`Generable`, and `Guide`). To learn + more about how to use them, and the ksp processor see the + [Firebase KSP Processor Readme](https://github.com/firebase/firebase-android-sdk/blob/main/firebase-ai-ksp-processor/README.md) +- [feature] Added support for + [API Key restrictions](https://docs.cloud.google.com/docs/authentication/api-keys#adding-application-restrictions) + (#7679) - [changed] The URL context tool APIs are now GA. (#7686) -- [feature] Added support for implicit caching (context caching) - metadata in GenerateContentResponse. You can now access - cachedContentTokenCount and cacheTokensDetails in UsageMetadata to - see savings from cached content. See the [caching - documentation](https://ai.google.dev/gemini-api/docs/caching) for +- [feature] Added support for implicit caching (context caching) metadata in + GenerateContentResponse. You can now access cachedContentTokenCount and + cacheTokensDetails in UsageMetadata to see savings from cached content. See + the [caching documentation](https://ai.google.dev/gemini-api/docs/caching) for more details. (#7647) # 17.8.0 @@ -96,9 +121,10 @@ # 17.7.0 -- [changed] Added `LiveAudioConversationConfig` to control different aspects of the conversation - while using the `startAudioConversation` function. -- [fixed] Fixed an issue causing streaming chat interactions to drop thought signatures. (#7562) +- [changed] Added `LiveAudioConversationConfig` to control different aspects of + the conversation while using the `startAudioConversation` function. +- [fixed] Fixed an issue causing streaming chat interactions to drop thought + signatures. (#7562) # 17.6.0 @@ -109,107 +135,123 @@ - [changed] Added better scheduling and louder output for Live API. - [changed] Added support for input and output transcription. (#7482) -- [feature] Added support for sending realtime audio and video in a `LiveSession`. +- [feature] Added support for sending realtime audio and video in a + `LiveSession`. - [changed] Removed redundant internal exception types. (#7475) # 17.4.0 -- [changed] **Breaking Change**: Removed the `candidateCount` option from `LiveGenerationConfig` -- [changed] Added support for user interrupts for the `startAudioConversation` method in the - `LiveSession` class. (#7413) -- [changed] Added support for the URL context tool, which allows the model to access content from - provided public web URLs to inform and enhance its responses. (#7382) -- [changed] Added better error messages to `ServiceConnectionHandshakeFailedException` (#7412) -- [changed] Marked the public constructor for `UsageMetadata` as deprecated (#7420) -- [changed] Using Firebase AI Logic with the Gemini Developer API is now Generally Available (GA). -- [changed] Using Firebase AI Logic with the Imagen generation APIs is now Generally Available (GA). +- [changed] **Breaking Change**: Removed the `candidateCount` option from + `LiveGenerationConfig` +- [changed] Added support for user interrupts for the `startAudioConversation` + method in the `LiveSession` class. (#7413) +- [changed] Added support for the URL context tool, which allows the model to + access content from provided public web URLs to inform and enhance its + responses. (#7382) +- [changed] Added better error messages to + `ServiceConnectionHandshakeFailedException` (#7412) +- [changed] Marked the public constructor for `UsageMetadata` as deprecated + (#7420) +- [changed] Using Firebase AI Logic with the Gemini Developer API is now + Generally Available (GA). +- [changed] Using Firebase AI Logic with the Imagen generation APIs is now + Generally Available (GA). # 17.3.0 - [changed] Bumped internal dependencies. - [feature] Added support for code execution. -- [changed] Marked the public constructors for `ExecutableCodePart` and `CodeExecutionResultPart` as - deprecated. -- [feature] Introduced `MissingPermissionsException`, which is thrown when the necessary permissions - have not been granted by the user. -- [feature] Added helper functions to `LiveSession` to allow developers to track the status of the - audio session and the underlying websocket connection. +- [changed] Marked the public constructors for `ExecutableCodePart` and + `CodeExecutionResultPart` as deprecated. +- [feature] Introduced `MissingPermissionsException`, which is thrown when the + necessary permissions have not been granted by the user. +- [feature] Added helper functions to `LiveSession` to allow developers to track + the status of the audio session and the underlying websocket connection. - [changed] Added new values to `HarmCategory` (#7324) -- [fixed] Fixed an issue that caused unknown or empty `Part`s to throw an exception. Instead, we now - log them and filter them from the response (#7333) +- [fixed] Fixed an issue that caused unknown or empty `Part`s to throw an + exception. Instead, we now log them and filter them from the response (#7333) # 17.2.0 -- [feature] Added support for returning thought summaries, which are synthesized versions of a - model's internal reasoning process. -- [fixed] Fixed an issue causing the accessor methods in `GenerateContentResponse` to throw an - exception when the response contained no candidates. -- [changed] Added better description for requests which fail due to the Gemini API not being - configured. -- [changed] Added a `dilation` parameter to `ImagenMaskReference.generateMaskAndPadForOutpainting` - (#7260) -- [feature] Added support for limited-use tokens with Firebase App Check. These limited-use tokens - are required for an upcoming optional feature called _replay protection_. We recommend +- [feature] Added support for returning thought summaries, which are synthesized + versions of a model's internal reasoning process. +- [fixed] Fixed an issue causing the accessor methods in + `GenerateContentResponse` to throw an exception when the response contained no + candidates. +- [changed] Added better description for requests which fail due to the Gemini + API not being configured. +- [changed] Added a `dilation` parameter to + `ImagenMaskReference.generateMaskAndPadForOutpainting` (#7260) +- [feature] Added support for limited-use tokens with Firebase App Check. These + limited-use tokens are required for an upcoming optional feature called + _replay protection_. We recommend [enabling the usage of limited-use tokens](https://firebase.google.com/docs/ai-logic/app-check) - now so that when replay protection becomes available, you can enable it sooner because more of - your users will be on versions of your app that send limited-use tokens. (#7285) + now so that when replay protection becomes available, you can enable it sooner + because more of your users will be on versions of your app that send + limited-use tokens. (#7285) # 17.1.0 ======= -- [feature] added support for Imagen Editing, including inpainting, outpainting, control, style - transfer, and subject references (#7075) -- [feature] **Preview:** Added support for bidirectional streaming in Gemini Developer Api +- [feature] added support for Imagen Editing, including inpainting, outpainting, + control, style transfer, and subject references (#7075) +- [feature] **Preview:** Added support for bidirectional streaming in Gemini + Developer Api # 17.0.0 -- [feature] Added support for configuring the "thinking" budget when using Gemini 2.5 series models. - (#6990) -- [feature] **Breaking Change**: Add support for grounding with Google Search (#7042). - - **Action Required:** Update all references of `groundingAttributions`, `webSearchQueries`, - `retrievalQueries` in `GroundingMetadata` to be non-optional. -- [changed] require at least one argument for `generateContent()`, `generateContentStream()` and - `countTokens()`. -- [feature] Added new overloads for `generateContent()`, `generateContentStream()` and - `countTokens()` that take a `List` parameter. -- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or higher. +- [feature] Added support for configuring the "thinking" budget when using + Gemini 2.5 series models. (#6990) +- [feature] **Breaking Change**: Add support for grounding with Google Search + (#7042). + - **Action Required:** Update all references of `groundingAttributions`, + `webSearchQueries`, `retrievalQueries` in `GroundingMetadata` to be + non-optional. +- [changed] require at least one argument for `generateContent()`, + `generateContentStream()` and `countTokens()`. +- [feature] Added new overloads for `generateContent()`, + `generateContentStream()` and `countTokens()` that take a `List` + parameter. +- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or + higher. # 16.2.0 -- [changed] Deprecate the `totalBillableCharacters` field (only usable with pre-2.0 models). (#7042) -- [feature] Added support for extra schema properties like `title`, `minItems`, `maxItems`, - `minimum` and `maximum`. As well as support for the `anyOf` schema. (#7013) +- [changed] Deprecate the `totalBillableCharacters` field (only usable with + pre-2.0 models). (#7042) +- [feature] Added support for extra schema properties like `title`, `minItems`, + `maxItems`, `minimum` and `maximum`. As well as support for the `anyOf` + schema. (#7013) # 16.1.0 - [fixed] Fixed `FirebaseAI.getInstance` StackOverflowException (#6971) -- [fixed] Fixed an issue that was causing the SDK to send empty `FunctionDeclaration` descriptions - to the API. -- [changed] Introduced the `Voice` class, which accepts a voice name, and deprecated the `Voices` - class. -- [changed] **Breaking Change**: Updated `SpeechConfig` to take in `Voice` class instead of `Voices` - class. - - **Action Required:** Update all references of `SpeechConfig` initialization to use `Voice` - class. -- [fixed] Fix incorrect model name in count token requests to the developer API backend +- [fixed] Fixed an issue that was causing the SDK to send empty + `FunctionDeclaration` descriptions to the API. +- [changed] Introduced the `Voice` class, which accepts a voice name, and + deprecated the `Voices` class. +- [changed] **Breaking Change**: Updated `SpeechConfig` to take in `Voice` + class instead of `Voices` class. + - **Action Required:** Update all references of `SpeechConfig` initialization + to use `Voice` class. +- [fixed] Fix incorrect model name in count token requests to the developer API + backend # 16.0.0 -- [feature] Initial release of the Firebase AI SDK (`firebase-ai`). This SDK _replaces_ the previous - Vertex AI in Firebase SDK (`firebase-vertexai`) to accommodate the evolving set of supported - features and services. - - The new Firebase AI SDK provides **Preview** support for the Gemini Developer API, including its - free tier offering. - - Using the Firebase AI SDK with the Vertex AI Gemini API is still generally available (GA). - -If you're using the old `firebase-vertexai`, we recommend -[migrating to `firebase-ai`](/docs/ai-logic/migrate-to-latest-sdk) because all new development and -features will be in this new SDK. -- [feature] **Preview:** Added support for specifying response modalities in `GenerationConfig` -(only available in the new `firebase-ai` package). This includes support for image generation -using [specific Gemini models](/docs/vertex-ai/models). - -Note: This feature is in Public Preview, which means that it is not subject to any SLA or -deprecation policy and could change in backwards-incompatible ways. - +- [feature] Initial release of the Firebase AI SDK (`firebase-ai`). This SDK + _replaces_ the previous Vertex AI in Firebase SDK (`firebase-vertexai`) to + accommodate the evolving set of supported features and services. + - The new Firebase AI SDK provides **Preview** support for the Gemini + Developer API, including its free tier offering. + - Using the Firebase AI SDK with the Vertex AI Gemini API is still generally + available (GA). If you're using the old `firebase-vertexai`, we recommend + [migrating to `firebase-ai`](/docs/ai-logic/migrate-to-latest-sdk) because + all new development and features will be in this new SDK. +- [feature] **Preview:** Added support for specifying response modalities in + `GenerationConfig` (only available in the new `firebase-ai` package). This + includes support for image generation using + [specific Gemini models](/docs/vertex-ai/models). Note: This feature is in + Public Preview, which means that it is not subject to any SLA or deprecation + policy and could change in backwards-incompatible ways. diff --git a/appcheck/firebase-appcheck-debug-testing/CHANGELOG.md b/appcheck/firebase-appcheck-debug-testing/CHANGELOG.md index 68dcccdeab6..bed4159ee0b 100644 --- a/appcheck/firebase-appcheck-debug-testing/CHANGELOG.md +++ b/appcheck/firebase-appcheck-debug-testing/CHANGELOG.md @@ -54,17 +54,19 @@ # 16.1.1 -- [changed] Integrated the [app_check] Debug Testing SDK with Firebase components. (GitHub - [#4436](//github.com/firebase/firebase-android-sdk/issues/4436){: .external}) +- [changed] Integrated the [app_check] Debug Testing SDK with Firebase + components. + (GitHub [#4436](//github.com/firebase/firebase-android-sdk/issues/4436){: .external}) # 16.1.0 -- [unchanged] Updated to accommodate the release of the updated [app_check] Kotlin extensions - library. +- [unchanged] Updated to accommodate the release of the updated [app_check] + Kotlin extensions library. # 16.0.1 -- [changed] Updated dependency of `play-services-basement` to its latest version (v18.1.0). +- [changed] Updated dependency of `play-services-basement` to its latest version + (v18.1.0). # 16.0.0 @@ -72,7 +74,8 @@ # 16.0.0-beta06 -- [fixed] Fixed a bug in the [app_check] token refresh flow when using a custom provider. +- [fixed] Fixed a bug in the [app_check] token refresh flow when using a custom + provider. # 16.0.0-beta05 @@ -80,24 +83,24 @@ # 16.0.0-beta04 -- [changed] Improved error handling logic by minimizing the amount of requests that are unlikely to - succeed. +- [changed] Improved error handling logic by minimizing the amount of requests + that are unlikely to succeed. - [fixed] Fixed heartbeat reporting. # 16.0.0-beta03 -- [changed] Added `X-Android-Package` and `X-Android-Cert` request headers to [app_check] network - calls. +- [changed] Added `X-Android-Package` and `X-Android-Cert` request headers to + [app_check] network calls. # 16.0.0-beta02 - [feature] Added [`getAppCheckToken()`](), [`AppCheckTokenListener`](/docs/reference/android/com/google/firebase/appcheck/FirebaseAppCheck.AppCheckListener), - and associated setters and removers for developers to request and observe changes to the - [app_check] token. + and associated setters and removers for developers to request and observe + changes to the [app_check] token. # 16.0.0-beta01 -- [feature] Initial beta release of the [app_check] Debug Testing SDK with abuse reduction features. - +- [feature] Initial beta release of the [app_check] Debug Testing SDK with abuse + reduction features. diff --git a/appcheck/firebase-appcheck-debug/CHANGELOG.md b/appcheck/firebase-appcheck-debug/CHANGELOG.md index 08ea9bddb6b..4ca5e6dd29f 100644 --- a/appcheck/firebase-appcheck-debug/CHANGELOG.md +++ b/appcheck/firebase-appcheck-debug/CHANGELOG.md @@ -1,10 +1,12 @@ # Unreleased -- [changed] Updated App Check debug token log message to include Firebase CLI commands and Firebase Console registration links. (#8503) +- [changed] Updated App Check debug token log message to include Firebase CLI + commands and Firebase Console registration links. (#8503) # 19.4.0 -- [fixed] Log debug secret on every DebugAppCheckProvider initialization. (#8454) +- [fixed] Log debug secret on every DebugAppCheckProvider initialization. + (#8454) # 19.3.0 @@ -16,7 +18,8 @@ # 19.1.0 -- [fixed] Fixed issue preventing limited use tokens from being correctly generated. (#8204) +- [fixed] Fixed issue preventing limited use tokens from being correctly + generated. (#8204) # 19.0.2 @@ -56,22 +59,25 @@ # 16.1.1 -- [changed] Migrated [app_check] SDKs to use standard Firebase executors. (GitHub - [#4431](//github.com/firebase/firebase-android-sdk/issues/4431){: .external} and +- [changed] Migrated [app_check] SDKs to use standard Firebase executors. + (GitHub + [#4431](//github.com/firebase/firebase-android-sdk/issues/4431){: .external} + and [#4449](//github.com/firebase/firebase-android-sdk/issues/4449){: .external}) -- [changed] Integrated the [app_check] Debug SDK with Firebase components. (GitHub - [#4436](//github.com/firebase/firebase-android-sdk/issues/4436){: .external}) -- [changed] Moved Task continuations off the main thread. (GitHub - [#4453](//github.com/firebase/firebase-android-sdk/issues/4453){: .external}) +- [changed] Integrated the [app_check] Debug SDK with Firebase components. + (GitHub [#4436](//github.com/firebase/firebase-android-sdk/issues/4436){: .external}) +- [changed] Moved Task continuations off the main thread. + (GitHub [#4453](//github.com/firebase/firebase-android-sdk/issues/4453){: .external}) # 16.1.0 -- [unchanged] Updated to accommodate the release of the updated [app_check] Kotlin extensions - library. +- [unchanged] Updated to accommodate the release of the updated [app_check] + Kotlin extensions library. # 16.0.1 -- [changed] Updated dependency of `play-services-basement` to its latest version (v18.1.0). +- [changed] Updated dependency of `play-services-basement` to its latest version + (v18.1.0). # 16.0.0 @@ -79,7 +85,8 @@ # 16.0.0-beta06 -- [fixed] Fixed a bug in the [app_check] token refresh flow when using a custom provider. +- [fixed] Fixed a bug in the [app_check] token refresh flow when using a custom + provider. # 16.0.0-beta05 @@ -87,24 +94,24 @@ # 16.0.0-beta04 -- [changed] Improved error handling logic by minimizing the amount of requests that are unlikely to - succeed. +- [changed] Improved error handling logic by minimizing the amount of requests + that are unlikely to succeed. - [fixed] Fixed heartbeat reporting. # 16.0.0-beta03 -- [changed] Added `X-Android-Package` and `X-Android-Cert` request headers to [app_check] network - calls. +- [changed] Added `X-Android-Package` and `X-Android-Cert` request headers to + [app_check] network calls. # 16.0.0-beta02 - [feature] Added [`getAppCheckToken()`](), [`AppCheckTokenListener`](/docs/reference/android/com/google/firebase/appcheck/FirebaseAppCheck.AppCheckListener), - and associated setters and removers for developers to request and observe changes to the - [app_check] token. + and associated setters and removers for developers to request and observe + changes to the [app_check] token. # 16.0.0-beta01 -- [feature] Initial beta release of the [app_check] Debug SDK with abuse reduction features. - +- [feature] Initial beta release of the [app_check] Debug SDK with abuse + reduction features. diff --git a/appcheck/firebase-appcheck-interop/CHANGELOG.md b/appcheck/firebase-appcheck-interop/CHANGELOG.md index a1ecf841edb..79e701b844d 100644 --- a/appcheck/firebase-appcheck-interop/CHANGELOG.md +++ b/appcheck/firebase-appcheck-interop/CHANGELOG.md @@ -1,2 +1 @@ # Unreleased - diff --git a/appcheck/firebase-appcheck-playintegrity/CHANGELOG.md b/appcheck/firebase-appcheck-playintegrity/CHANGELOG.md index 17a0ec68fd9..408eb8740f1 100644 --- a/appcheck/firebase-appcheck-playintegrity/CHANGELOG.md +++ b/appcheck/firebase-appcheck-playintegrity/CHANGELOG.md @@ -14,7 +14,8 @@ # 19.1.0 -- [fixed] Fixed issue preventing limited use tokens from being correctly generated. (#8204) +- [fixed] Fixed issue preventing limited use tokens from being correctly + generated. (#8204) # 19.0.2 @@ -26,7 +27,8 @@ # 19.0.0 -- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or higher. +- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or + higher. # 18.0.0 @@ -55,25 +57,29 @@ # 16.1.1 -- [changed] Migrated [app_check] SDKs to use standard Firebase executors. (GitHub - [#4431](//github.com/firebase/firebase-android-sdk/issues/4431){: .external} and +- [changed] Migrated [app_check] SDKs to use standard Firebase executors. + (GitHub + [#4431](//github.com/firebase/firebase-android-sdk/issues/4431){: .external} + and [#4449](//github.com/firebase/firebase-android-sdk/issues/4449){: .external}) -- [changed] Integrated the [app_check] Play integrity SDK with Firebase components. (GitHub - [#4436](//github.com/firebase/firebase-android-sdk/issues/4436){: .external}) -- [changed] Moved Task continuations off the main thread. (GitHub - [#4453](//github.com/firebase/firebase-android-sdk/issues/4453){: .external}) +- [changed] Integrated the [app_check] Play integrity SDK with Firebase + components. + (GitHub [#4436](//github.com/firebase/firebase-android-sdk/issues/4436){: .external}) +- [changed] Moved Task continuations off the main thread. + (GitHub [#4453](//github.com/firebase/firebase-android-sdk/issues/4453){: .external}) # 16.1.0 -- [unchanged] Updated to accommodate the release of the updated [app_check] Kotlin extensions - library. +- [unchanged] Updated to accommodate the release of the updated [app_check] + Kotlin extensions library. # 16.0.1 -- [changed] Updated dependency of `play-services-basement` to its latest version (v18.1.0). +- [changed] Updated dependency of `play-services-basement` to its latest version + (v18.1.0). # 16.0.0 -- [feature] Added support for [Play Integrity](https://developer.android.com/google/play/integrity) - as an attestation provider. - +- [feature] Added support for + [Play Integrity](https://developer.android.com/google/play/integrity) as an + attestation provider. diff --git a/appcheck/firebase-appcheck-recaptcha/CHANGELOG.md b/appcheck/firebase-appcheck-recaptcha/CHANGELOG.md index 9215cdbece2..8798f8a5e11 100644 --- a/appcheck/firebase-appcheck-recaptcha/CHANGELOG.md +++ b/appcheck/firebase-appcheck-recaptcha/CHANGELOG.md @@ -2,15 +2,15 @@ # 19.2.0 -- [changed] Initialization now requires the site key to be passed as a parameter. (#8457) +- [changed] Initialization now requires the site key to be passed as a + parameter. (#8457) # 19.1.0 -- [changed] Added warning logs when failing to initialize the reCAPTCHA client or - exchange attestation for a token (#8330) +- [changed] Added warning logs when failing to initialize the reCAPTCHA client + or exchange attestation for a token (#8330) # 19.0.0 - [feature] Initial release of the Firebase AppCheck reCaptcha SDK (`firebase-appcheck-recaptcha`) - diff --git a/appcheck/firebase-appcheck/CHANGELOG.md b/appcheck/firebase-appcheck/CHANGELOG.md index 62e7a29ab99..e7ccd04ee13 100644 --- a/appcheck/firebase-appcheck/CHANGELOG.md +++ b/appcheck/firebase-appcheck/CHANGELOG.md @@ -14,13 +14,15 @@ # 19.1.0 -- [fixed] Fixed issue preventing limited use tokens from being correctly generated. (#8204) -- [changed] Added new `getLimitedUseToken` to `AppCheckProvider` interface, that default to - calling `getToken`. (#8204) +- [fixed] Fixed issue preventing limited use tokens from being correctly + generated. (#8204) +- [changed] Added new `getLimitedUseToken` to `AppCheckProvider` interface, that + default to calling `getToken`. (#8204) # 19.0.2 -- [fixed] Fixed a bug causing custom `AppCheckProvider` returning errors without a message to throw an exception. +- [fixed] Fixed a bug causing custom `AppCheckProvider` returning errors without + a message to throw an exception. [#7624](//github.com/firebase/firebase-android-sdk/pull/7624) # 19.0.1 @@ -29,10 +31,11 @@ # 19.0.0 -- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or higher. -- [removed] **Breaking Change**: Stopped releasing the deprecated Kotlin extensions (KTX) module and - removed it from the Firebase Android BoM. Instead, use the KTX APIs from the main module. For - details, see the +- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or + higher. +- [removed] **Breaking Change**: Stopped releasing the deprecated Kotlin + extensions (KTX) module and removed it from the Firebase Android BoM. Instead, + use the KTX APIs from the main module. For details, see the [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration). # 18.0.0 @@ -57,7 +60,8 @@ Kotlin extensions library has no additional updates. # 17.1.1 -- [fixed] Fixed a bug causing internal tests to depend directly on `firebase-common`. +- [fixed] Fixed a bug causing internal tests to depend directly on + `firebase-common`. - [fixed] Fixed client-side throttling in Play Integrity flows. ## Kotlin @@ -67,14 +71,16 @@ Kotlin extensions library has no additional updates. # 17.1.0 -- [changed] Added Kotlin extensions (KTX) APIs from `com.google.firebase:firebase-appcheck-ktx` to - `com.google.firebase:firebase-appcheck` under the `com.google.firebase.appcheck` package. For - details, see the +- [changed] Added Kotlin extensions (KTX) APIs from + `com.google.firebase:firebase-appcheck-ktx` to + `com.google.firebase:firebase-appcheck` under the + `com.google.firebase.appcheck` package. For details, see the [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration) -- [deprecated] All the APIs from `com.google.firebase:firebase-appcheck-ktx` have been added to - `com.google.firebase:firebase-appcheck` under the `com.google.firebase.appcheck` package, and all - the Kotlin extensions (KTX) APIs in `com.google.firebase:firebase-appcheck-ktx` are now - deprecated. As early as April 2024, we'll no longer release KTX modules. For details, see the +- [deprecated] All the APIs from `com.google.firebase:firebase-appcheck-ktx` + have been added to `com.google.firebase:firebase-appcheck` under the + `com.google.firebase.appcheck` package, and all the Kotlin extensions (KTX) + APIs in `com.google.firebase:firebase-appcheck-ktx` are now deprecated. As + early as April 2024, we'll no longer release KTX modules. For details, see the [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration) ## Kotlin @@ -84,7 +90,8 @@ Kotlin extensions library has no additional updates. # 17.0.1 -- [changed] Internal updates to allow Firebase SDKs to obtain limited-use tokens. +- [changed] Internal updates to allow Firebase SDKs to obtain limited-use + tokens. # 17.0.0 @@ -108,11 +115,13 @@ Kotlin extensions library has no additional updates. # 16.1.1 -- [changed] Migrated [app_check] SDKs to use standard Firebase executors. (GitHub - [#4431](//github.com/firebase/firebase-android-sdk/issues/4431){: .external} and +- [changed] Migrated [app_check] SDKs to use standard Firebase executors. + (GitHub + [#4431](//github.com/firebase/firebase-android-sdk/issues/4431){: .external} + and [#4449](//github.com/firebase/firebase-android-sdk/issues/4449){: .external}) -- [changed] Moved Task continuations off the main thread. (GitHub - [#4453](//github.com/firebase/firebase-android-sdk/issues/4453){: .external}) +- [changed] Moved Task continuations off the main thread. + (GitHub [#4453](//github.com/firebase/firebase-android-sdk/issues/4453){: .external}) ## Kotlin @@ -121,8 +130,8 @@ Kotlin extensions library has no additional updates. # 16.1.0 -- [unchanged] Updated to accommodate the release of the updated [app_check] Kotlin extensions - library. +- [unchanged] Updated to accommodate the release of the updated [app_check] + Kotlin extensions library. ## Kotlin @@ -130,24 +139,28 @@ The Kotlin extensions library transitively includes the updated `firebase-appche Kotlin extensions library has the following additional updates: - [feature] Firebase now supports Kotlin coroutines. With this release, we added - [`kotlinx-coroutines-play-services`](https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-play-services/){: - .external} to `firebase-appcheck-ktx` as a transitive dependency, which exposes the + [`kotlinx-coroutines-play-services`](https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-play-services/){: .external} + to `firebase-appcheck-ktx` as a transitive dependency, which exposes the `Task.await()` suspend function to convert a - [`Task`](https://developers.google.com/android/guides/tasks) into a Kotlin coroutine. + [`Task`](https://developers.google.com/android/guides/tasks) into a Kotlin + coroutine. # 16.0.1 -- [changed] Updated dependency of `play-services-basement` to its latest version (v18.1.0). +- [changed] Updated dependency of `play-services-basement` to its latest version + (v18.1.0). # 16.0.0 - [changed] [app_check] has exited beta and is now generally available for use. -- [feature] Added support for [Play Integrity](https://developer.android.com/google/play/integrity) - as an attestation provider. +- [feature] Added support for + [Play Integrity](https://developer.android.com/google/play/integrity) as an + attestation provider. # 16.0.0-beta06 -- [fixed] Fixed a bug in the [app_check] token refresh flow when using a custom provider. +- [fixed] Fixed a bug in the [app_check] token refresh flow when using a custom + provider. # 16.0.0-beta05 @@ -155,24 +168,24 @@ Kotlin extensions library has the following additional updates: # 16.0.0-beta04 -- [changed] Improved error handling logic by minimizing the amount of requests that are unlikely to - succeed. +- [changed] Improved error handling logic by minimizing the amount of requests + that are unlikely to succeed. - [fixed] Fixed heartbeat reporting. # 16.0.0-beta03 -- [changed] Added `X-Android-Package` and `X-Android-Cert` request headers to [app_check] network - calls. +- [changed] Added `X-Android-Package` and `X-Android-Cert` request headers to + [app_check] network calls. # 16.0.0-beta02 - [feature] Added [`getAppCheckToken()`](), [`AppCheckTokenListener`](/docs/reference/android/com/google/firebase/appcheck/FirebaseAppCheck.AppCheckListener), - and associated setters and removers for developers to request and observe changes to the - [app_check] token. + and associated setters and removers for developers to request and observe + changes to the [app_check] token. # 16.0.0-beta01 -- [feature] Initial beta release of the [app_check] SDK with abuse reduction features. - +- [feature] Initial beta release of the [app_check] SDK with abuse reduction + features. diff --git a/build.gradle.kts b/build.gradle.kts index 6ff7b3d66d7..881002df7c9 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -64,7 +64,13 @@ fun Project.applySpotless() { } flexmark { target("src/**/*.md", "*.md", "docs/**/*.md") - targetExclude("**/third_party/**", "src/test/resources/**", "release_report.md") + targetExclude( + "**/third_party/**", + "src/test/resources/**", + "release_report.md", + "**/CHANGELOG.md", + "CHANGELOG.md" + ) flexmark("0.64.8") } } @@ -72,6 +78,49 @@ fun Project.applySpotless() { applySpotless() +val formatChangelogs by + tasks.registering { + doLast { + fileTree(projectDir) { + include("**/CHANGELOG.md") + exclude("**/third_party/**", "**/test/resources/**", "build/**", "*-gradle/**") + } + .forEach { file -> + val content = file.readText() + val formatted = com.google.firebase.gradle.plugins.ChangelogFormatter.format(content) + if (content != formatted) { + file.writeText(formatted) + } + } + } + } + +tasks.named("spotlessApply") { dependsOn(formatChangelogs) } + +val checkChangelogs by + tasks.registering { + doLast { + var failed = false + fileTree(projectDir) { + include("**/CHANGELOG.md") + exclude("**/third_party/**", "**/test/resources/**", "build/**", "*-gradle/**") + } + .forEach { file -> + val content = file.readText() + val formatted = com.google.firebase.gradle.plugins.ChangelogFormatter.format(content) + if (content != formatted) { + println( + "${file.absolutePath} is not formatted properly. Run ./gradlew formatChangelogs" + ) + failed = true + } + } + if (failed) throw GradleException("Changelogs formatting check failed") + } + } + +tasks.named("spotlessCheck") { dependsOn(checkChangelogs) } + configure(subprojects) { applySpotless() } tasks.named("clean") { delete(rootProject.layout.buildDirectory) } diff --git a/encoders/firebase-decoders-json/CHANGELOG.md b/encoders/firebase-decoders-json/CHANGELOG.md index a1ecf841edb..79e701b844d 100644 --- a/encoders/firebase-decoders-json/CHANGELOG.md +++ b/encoders/firebase-decoders-json/CHANGELOG.md @@ -1,2 +1 @@ # Unreleased - diff --git a/encoders/firebase-encoders-json/CHANGELOG.md b/encoders/firebase-encoders-json/CHANGELOG.md index a1ecf841edb..79e701b844d 100644 --- a/encoders/firebase-encoders-json/CHANGELOG.md +++ b/encoders/firebase-encoders-json/CHANGELOG.md @@ -1,2 +1 @@ # Unreleased - diff --git a/encoders/firebase-encoders-processor/CHANGELOG.md b/encoders/firebase-encoders-processor/CHANGELOG.md index a1ecf841edb..79e701b844d 100644 --- a/encoders/firebase-encoders-processor/CHANGELOG.md +++ b/encoders/firebase-encoders-processor/CHANGELOG.md @@ -1,2 +1 @@ # Unreleased - diff --git a/encoders/firebase-encoders-proto/CHANGELOG.md b/encoders/firebase-encoders-proto/CHANGELOG.md index 2a56f05cb97..d43e9b27315 100644 --- a/encoders/firebase-encoders-proto/CHANGELOG.md +++ b/encoders/firebase-encoders-proto/CHANGELOG.md @@ -2,4 +2,3 @@ - [changed] Updated protobuf dependency to `3.25.5` to fix [CVE-2024-7254](https://nvd.nist.gov/vuln/detail/CVE-2024-7254). - diff --git a/encoders/firebase-encoders-reflective/CHANGELOG.md b/encoders/firebase-encoders-reflective/CHANGELOG.md index a1ecf841edb..79e701b844d 100644 --- a/encoders/firebase-encoders-reflective/CHANGELOG.md +++ b/encoders/firebase-encoders-reflective/CHANGELOG.md @@ -1,2 +1 @@ # Unreleased - diff --git a/encoders/firebase-encoders/CHANGELOG.md b/encoders/firebase-encoders/CHANGELOG.md index a1ecf841edb..79e701b844d 100644 --- a/encoders/firebase-encoders/CHANGELOG.md +++ b/encoders/firebase-encoders/CHANGELOG.md @@ -1,2 +1 @@ # Unreleased - diff --git a/encoders/protoc-gen-firebase-encoders/CHANGELOG.md b/encoders/protoc-gen-firebase-encoders/CHANGELOG.md index a1ecf841edb..79e701b844d 100644 --- a/encoders/protoc-gen-firebase-encoders/CHANGELOG.md +++ b/encoders/protoc-gen-firebase-encoders/CHANGELOG.md @@ -1,2 +1 @@ # Unreleased - diff --git a/firebase-abt/CHANGELOG.md b/firebase-abt/CHANGELOG.md index 37ecf139a20..e00b478a5a9 100644 --- a/firebase-abt/CHANGELOG.md +++ b/firebase-abt/CHANGELOG.md @@ -6,10 +6,11 @@ # 23.0.0 -- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or higher. -- [removed] **Breaking Change**: Stopped releasing the deprecated Kotlin extensions (KTX) module and - removed it from the Firebase Android BoM. Instead, use the KTX APIs from the main module. For - details, see the +- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or + higher. +- [removed] **Breaking Change**: Stopped releasing the deprecated Kotlin + extensions (KTX) module and removed it from the Firebase Android BoM. Instead, + use the KTX APIs from the main module. For details, see the [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration). # 22.0.0 @@ -26,18 +27,21 @@ # 21.1.0 -- [changed] Internal changes to ensure functionality alignment with other SDK releases. +- [changed] Internal changes to ensure functionality alignment with other SDK + releases. # 21.0.2 -- [changed] Updated dependency of `play-services-basement` to its latest version (v18.1.0). +- [changed] Updated dependency of `play-services-basement` to its latest version + (v18.1.0). # 21.0.1 -- [changed] Updated dependencies of `play-services-basement`, `play-services-base`, and - `play-services-tasks` to their latest versions (v18.0.0, v18.0.1, and v18.0.1, respectively). For - more information, see the [note](#basement18-0-0_base18-0-1_tasks18-0-1) at the top of this - release entry. +- [changed] Updated dependencies of `play-services-basement`, + `play-services-base`, and `play-services-tasks` to their latest versions + (v18.0.0, v18.0.1, and v18.0.1, respectively). For more information, see the + [note](#basement18-0-0_base18-0-1_tasks18-0-1) at the top of this release + entry. # 21.0.0 @@ -46,13 +50,14 @@ # 20.0.0 -- [removed] Removed the protocol buffer dependency and moved relevant protocol buffer definitions to - [inappmessaging_longer]. If you use [ab_testing] with [inappmessaging], you'll need to update to - [inappmessaging] v19.1.2 or later. +- [removed] Removed the protocol buffer dependency and moved relevant protocol + buffer definitions to [inappmessaging_longer]. If you use [ab_testing] with + [inappmessaging], you'll need to update to [inappmessaging] v19.1.2 or later. # 19.0.1 -- [changed] Internal changes to ensure functionality alignment with other SDK releases. +- [changed] Internal changes to ensure functionality alignment with other SDK + releases. # 17.1.1 @@ -62,4 +67,3 @@ # 17.1.0 - [changed] Updated API to support the latest [remote_config] update. - diff --git a/firebase-annotations/CHANGELOG.md b/firebase-annotations/CHANGELOG.md index b0ed2d3803b..d9e88d812de 100644 --- a/firebase-annotations/CHANGELOG.md +++ b/firebase-annotations/CHANGELOG.md @@ -1,4 +1,4 @@ # Unreleased -- [changed] Hid Executors from public API, as they are intended to be internal anyhow. - +- [changed] Hid Executors from public API, as they are intended to be internal + anyhow. diff --git a/firebase-appdistribution-api/CHANGELOG.md b/firebase-appdistribution-api/CHANGELOG.md index af7943ab2f0..8cf0bdd49ef 100644 --- a/firebase-appdistribution-api/CHANGELOG.md +++ b/firebase-appdistribution-api/CHANGELOG.md @@ -18,15 +18,17 @@ # 16.0.0-beta16 -- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or higher. -- [removed] **Breaking Change**: Stopped releasing the deprecated Kotlin extensions (KTX) module and - removed it from the Firebase Android BoM. Instead, use the KTX APIs from the main module. For - details, see the +- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or + higher. +- [removed] **Breaking Change**: Stopped releasing the deprecated Kotlin + extensions (KTX) module and removed it from the Firebase Android BoM. Instead, + use the KTX APIs from the main module. For details, see the [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration). # 16.0.0-beta15 -- [unchanged] Updated to accommodate the release of the updated [appdistro] library. +- [unchanged] Updated to accommodate the release of the updated [appdistro] + library. ## Kotlin @@ -35,7 +37,8 @@ library. The Kotlin extensions library has no additional updates. # 16.0.0-beta14 -- [unchanged] Updated to accommodate the release of the updated [appdistro] library. +- [unchanged] Updated to accommodate the release of the updated [appdistro] + library. ## Kotlin @@ -53,7 +56,8 @@ library. The Kotlin extensions library has no additional updates. # 16.0.0-beta12 -- [unchanged] Updated to accommodate the release of the updated [appdistro] library. +- [unchanged] Updated to accommodate the release of the updated [appdistro] + library. ## Kotlin @@ -64,14 +68,16 @@ library. The Kotlin extensions library has no additional updates. - [changed] Added Kotlin extensions (KTX) APIs from `com.google.firebase:firebase-appdistribution-api-ktx` to - `com.google.firebase:firebase-appdistribution-api` under the `com.google.firebase.appdistribution` - package. For details, see the + `com.google.firebase:firebase-appdistribution-api` under the + `com.google.firebase.appdistribution` package. For details, see the [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration) -- [deprecated] All the APIs from `com.google.firebase:firebase-appdistribution-api-ktx` have been - added to `com.google.firebase:firebase-appdistribution-api` under the - `com.google.firebase.appdistribution` package, and all the Kotlin extensions (KTX) APIs in - `com.google.firebase:firebase-appdistribution-api-ktx` are now deprecated. As early as April 2024, - we'll no longer release KTX modules. For details, see the +- [deprecated] All the APIs from + `com.google.firebase:firebase-appdistribution-api-ktx` have been added to + `com.google.firebase:firebase-appdistribution-api` under the + `com.google.firebase.appdistribution` package, and all the Kotlin extensions + (KTX) APIs in `com.google.firebase:firebase-appdistribution-api-ktx` are now + deprecated. As early as April 2024, we'll no longer release KTX modules. For + details, see the [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration) ## Kotlin @@ -81,7 +87,8 @@ library. The Kotlin extensions library has no additional updates. # 16.0.0-beta09 -- [feature] Improved development mode to allow all API calls to be made without having to sign in. +- [feature] Improved development mode to allow all API calls to be made without + having to sign in. ## Kotlin @@ -90,8 +97,8 @@ library. The Kotlin extensions library has no additional updates. # 16.0.0-beta08 -- [fixed] Fixed an issue where a crash happened whenever a feedback notification was shown on - devices running Android 4.4 and lower. +- [fixed] Fixed an issue where a crash happened whenever a feedback notification + was shown on devices running Android 4.4 and lower. ## Kotlin @@ -100,7 +107,8 @@ library. The Kotlin extensions library has no additional updates. # 16.0.0-beta07 -- [feature] Added support for testers to attach JPEG screenshots to their feedback. +- [feature] Added support for testers to attach JPEG screenshots to their + feedback. ## Kotlin @@ -111,8 +119,8 @@ library. The Kotlin extensions library has no additional updates. - [feature] Added support for in-app tester feedback. To learn more, see [Collect feedback from testers](/docs/app-distribution/collect-feedback-from-testers?platform=android). -- [fixed] Fixed a bug where only the last listener added to an `UpdateTask` using - `addOnProgressListener()` would receive updates. +- [fixed] Fixed a bug where only the last listener added to an `UpdateTask` + using `addOnProgressListener()` would receive updates. ## Kotlin @@ -121,8 +129,8 @@ library. The Kotlin extensions library has no additional updates. # 16.0.0-beta05 -- [unchanged] Updated to accommodate the release of the updated [appdistro] Kotlin extensions - library. +- [unchanged] Updated to accommodate the release of the updated [appdistro] + Kotlin extensions library. ## Kotlin @@ -130,14 +138,16 @@ The Kotlin extensions library transitively includes the updated `firebase-appdis library. The Kotlin extensions library has the following additional updates: - [feature] Firebase now supports Kotlin coroutines. With this release, we added - [`kotlinx-coroutines-play-services`](https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-play-services/){: - .external} to `firebase-appdistribution-api-ktx` as a transitive dependency, which exposes the - `Task.await()` suspend function to convert a - [`Task`](https://developers.google.com/android/guides/tasks) into a Kotlin coroutine. + [`kotlinx-coroutines-play-services`](https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-play-services/){: .external} + to `firebase-appdistribution-api-ktx` as a transitive dependency, which + exposes the `Task.await()` suspend function to convert a + [`Task`](https://developers.google.com/android/guides/tasks) into a Kotlin + coroutine. # 16.0.0-beta04 -- [changed] Updated dependency of `play-services-basement` to its latest version (v18.1.0). +- [changed] Updated dependency of `play-services-basement` to its latest version + (v18.1.0). ## Kotlin @@ -147,17 +157,17 @@ library. The Kotlin extensions library has no additional updates. # 16.0.0-beta03 - [feature] The [appdistro] SDK has been split into two libraries: - - `firebase-appdistribution-api` - The API-only library
This new API-only library is - functional only when the full [appdistro] SDK implementation (`firebase-appdistribution`) is - present. `firebase-appdistribution-api` can be included in all + - `firebase-appdistribution-api` - The API-only library
This new API-only + library is functional only when the full [appdistro] SDK implementation + (`firebase-appdistribution`) is present. `firebase-appdistribution-api` can + be included in all [build variants](https://developer.android.com/studio/build/build-variants){: .external}. - - `firebase-appdistribution` - The full SDK implementation
This full SDK implementation is - optional and should only be included in pre-release builds. - - Visit the documentation to learn how to - [add these SDKs](/docs/app-distribution/set-up-alerts?platform=android#add-appdistro) to your - Android app. + - `firebase-appdistribution` - The full SDK implementation
This full SDK + implementation is optional and should only be included in pre-release + builds. Visit the documentation to learn how to + [add these SDKs](/docs/app-distribution/set-up-alerts?platform=android#add-appdistro) + to your Android app. ## Kotlin @@ -166,4 +176,3 @@ has been moved to the new API-only library: `firebase-appdistribution-api-ktx`. This new Kotlin extensions library transitively includes the `firebase-appdistribution-api` library. The Kotlin extensions library has no additional updates. - diff --git a/firebase-appdistribution/CHANGELOG.md b/firebase-appdistribution/CHANGELOG.md index 69216cae741..367dc045f13 100644 --- a/firebase-appdistribution/CHANGELOG.md +++ b/firebase-appdistribution/CHANGELOG.md @@ -6,7 +6,8 @@ # 16.0.0-beta19 -- [fixed] Fixed failing APK downloads due to an invalid file provider authority [#8136] +- [fixed] Fixed failing APK downloads due to an invalid file provider authority + [#8136] # 16.0.0-beta18 @@ -18,7 +19,8 @@ # 16.0.0-beta16 -- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or higher. +- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or + higher. # 16.0.0-beta15 @@ -42,54 +44,58 @@ # 16.0.0-beta09 -- [feature] Improved development mode to allow all API calls to be made without having to sign in. +- [feature] Improved development mode to allow all API calls to be made without + having to sign in. # 16.0.0-beta08 -- [fixed] Fixed an issue where a crash happened whenever a feedback notification was shown on - devices running Android 4.4 and lower. +- [fixed] Fixed an issue where a crash happened whenever a feedback notification + was shown on devices running Android 4.4 and lower. # 16.0.0-beta07 -- [feature] Added support for testers to attach JPEG screenshots to their feedback. +- [feature] Added support for testers to attach JPEG screenshots to their + feedback. # 16.0.0-beta06 - [feature] Added support for in-app tester feedback. To learn more, see [Collect feedback from testers](/docs/app-distribution/collect-feedback-from-testers). -- [fixed] Fixed a bug where only the last listener added to an `UpdateTask` using - `addOnProgressListener()` would receive updates. +- [fixed] Fixed a bug where only the last listener added to an `UpdateTask` + using `addOnProgressListener()` would receive updates. # 16.0.0-beta05 -- [unchanged] Updated to accommodate the release of the updated [appdistro] Kotlin extensions - library. +- [unchanged] Updated to accommodate the release of the updated [appdistro] + Kotlin extensions library. # 16.0.0-beta03 - [feature] The [appdistro] SDK has been split into two libraries: - - `firebase-appdistribution-api` - The API-only library
This new API-only library is - functional only when the full [appdistro] SDK implementation (`firebase-appdistribution`) is - present. `firebase-appdistribution-api` can be included in all + - `firebase-appdistribution-api` - The API-only library
This new API-only + library is functional only when the full [appdistro] SDK implementation + (`firebase-appdistribution`) is present. `firebase-appdistribution-api` can + be included in all [build variants](https://developer.android.com/studio/build/build-variants){: .external}. - - `firebase-appdistribution` - The full SDK implementation
This full SDK implementation is - optional and should only be included in pre-release builds. - - Visit the documentation to learn how to - [add these SDKs](/docs/app-distribution/set-up-alerts?platform=android#add-appdistro) to your - Android app. + - `firebase-appdistribution` - The full SDK implementation
This full SDK + implementation is optional and should only be included in pre-release + builds. Visit the documentation to learn how to + [add these SDKs](/docs/app-distribution/set-up-alerts?platform=android#add-appdistro) + to your Android app. ## Kotlin -- [removed] The Kotlin extensions library `firebase-appdistribution-ktx` has been removed. All its - functionality has been moved to the new API-only library: `firebase-appdistribution-api-ktx`. +- [removed] The Kotlin extensions library `firebase-appdistribution-ktx` has + been removed. All its functionality has been moved to the new API-only + library: `firebase-appdistribution-api-ktx`. # 16.0.0-beta02 -- [fixed] Fixed a bug that prevented testers from signing in when the app had an underscore in the - package name. -- [fixed] Fixed a UI bug where the APK download notification displayed the incorrect error message. +- [fixed] Fixed a bug that prevented testers from signing in when the app had an + underscore in the package name. +- [fixed] Fixed a UI bug where the APK download notification displayed the + incorrect error message. - [changed] Internal improvements to tests. ## Kotlin @@ -99,9 +105,10 @@ The Kotlin extensions library has no additional updates. # 16.0.0-beta01 -- [feature] The [appdistro] Android SDK is now available in beta. You can use this SDK to notify - testers in-app when a new test build is available. To learn more, visit the - [[appdistro] reference documentation](/docs/reference/android/com/google/firebase/appdistribution/package-summary). +- [feature] The [appdistro] Android SDK is now available in beta. You can use + this SDK to notify testers in-app when a new test build is available. To learn + more, visit the [[appdistro] reference + documentation](/docs/reference/android/com/google/firebase/appdistribution/package-summary). ## Kotlin @@ -109,4 +116,3 @@ The [appdistro] Android library with Kotlin extensions is now available in beta. extensions library transitively includes the base `firebase-app-distribution` library. To learn more, visit the [[appdistro] KTX reference documentation](/docs/reference/kotlin/com/google/firebase/appdistribution/ktx/package-summary). - diff --git a/firebase-common/CHANGELOG.md b/firebase-common/CHANGELOG.md index adef8ec4d7c..a079139719e 100644 --- a/firebase-common/CHANGELOG.md +++ b/firebase-common/CHANGELOG.md @@ -2,14 +2,15 @@ # 22.2.0 -- [changed] Remvode support for reading the `recaptcha_site_key` value from the `google-services.json` - file. (#8457) +- [changed] Remvode support for reading the `recaptcha_site_key` value from the + `google-services.json` file. (#8457) # 22.1.0 -- [feature] Added support for reading the `recaptcha_site_key` value from the `google-services.json` - file. (#8216) -- [fixed] Resolved a thread deadlock in HeartBeatInfoStorage when using Jetpack DataStore background executors.(#8182) +- [feature] Added support for reading the `recaptcha_site_key` value from the + `google-services.json` file. (#8216) +- [fixed] Resolved a thread deadlock in HeartBeatInfoStorage when using Jetpack + DataStore background executors.(#8182) # 22.0.1 @@ -17,10 +18,11 @@ # 22.0.0 -- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or higher. -- [removed] **Breaking Change**: Stopped releasing the deprecated Kotlin extensions (KTX) module and - removed it from the Firebase Android BoM. Instead, use the KTX APIs from the main module. For - details, see the +- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or + higher. +- [removed] **Breaking Change**: Stopped releasing the deprecated Kotlin + extensions (KTX) module and removed it from the Firebase Android BoM. Instead, + use the KTX APIs from the main module. For details, see the [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration). # 21.0.0 @@ -32,16 +34,20 @@ # 20.4.0 -- [changed] Added Kotlin extensions (KTX) APIs from `com.google.firebase:firebase-common-ktx` to - `com.google.firebase:firebase-common` under the `com.google.firebase` package. For details, see - the [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration) +- [changed] Added Kotlin extensions (KTX) APIs from + `com.google.firebase:firebase-common-ktx` to + `com.google.firebase:firebase-common` under the `com.google.firebase` package. + For details, see the + [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration) ## Kotlin -- [deprecated] All the APIs from `com.google.firebase:firebase-common-ktx` have been added to - `com.google.firebase:firebase-common` under the `com.google.firebase package`, and all the Kotlin - extensions (KTX) APIs in `com.google.firebase:firebase-common-ktx` are now deprecated. As early as - April 2024, we'll no longer release KTX modules. For details, see the FAQ about this initiative. +- [deprecated] All the APIs from `com.google.firebase:firebase-common-ktx` have + been added to `com.google.firebase:firebase-common` under the + `com.google.firebase package`, and all the Kotlin extensions (KTX) APIs in + `com.google.firebase:firebase-common-ktx` are now deprecated. As early as + April 2024, we'll no longer release KTX modules. For details, see the FAQ + about this initiative. [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration) # 20.3.3 @@ -52,4 +58,3 @@ The Kotlin extensions library transitively includes the updated `firebase-common` library. The Kotlin extensions library has no additional updates - diff --git a/firebase-components/CHANGELOG.md b/firebase-components/CHANGELOG.md index e935394241e..9d69866d17d 100644 --- a/firebase-components/CHANGELOG.md +++ b/firebase-components/CHANGELOG.md @@ -2,15 +2,18 @@ # 19.0.1 -- [fixed] fixed typo in message logged when a class is not found during component discovery. +- [fixed] fixed typo in message logged when a class is not found during + component discovery. # 19.0.0 -- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or higher. +- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or + higher. # 18.0.1 -- [fixed] updated proguard rules to keep component registrar working with newer proguard versions. +- [fixed] updated proguard rules to keep component registrar working with newer + proguard versions. ## Kotlin @@ -20,6 +23,5 @@ Kotlin extensions library has no additional updates. # 17.1.2 - [changed] Internal changes to ensure only one interface is provided for - kotlinx.coroutines.CoroutineDispatcher interfaces when both firebase-common and - firebase-common-ktx provide them. - + kotlinx.coroutines.CoroutineDispatcher interfaces when both firebase-common + and firebase-common-ktx provide them. diff --git a/firebase-components/firebase-dynamic-module-support/CHANGELOG.md b/firebase-components/firebase-dynamic-module-support/CHANGELOG.md index aa4e0d27a23..7f933fb2bf1 100644 --- a/firebase-components/firebase-dynamic-module-support/CHANGELOG.md +++ b/firebase-components/firebase-dynamic-module-support/CHANGELOG.md @@ -2,9 +2,10 @@ # 16.0.0-beta04 -- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or higher. +- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or + higher. # 16.0.0-beta03 -- [changed] Updated dependency of play-services-basement to its latest version (v18.1.0). - +- [changed] Updated dependency of play-services-basement to its latest version + (v18.1.0). diff --git a/firebase-config-interop/CHANGELOG.md b/firebase-config-interop/CHANGELOG.md index 85616227716..54976cbf39d 100644 --- a/firebase-config-interop/CHANGELOG.md +++ b/firebase-config-interop/CHANGELOG.md @@ -5,4 +5,3 @@ # 16.0.0 - [feature] Initial release. - diff --git a/firebase-config/CHANGELOG.md b/firebase-config/CHANGELOG.md index ef1e98f1ecf..3ded7658782 100644 --- a/firebase-config/CHANGELOG.md +++ b/firebase-config/CHANGELOG.md @@ -2,9 +2,9 @@ # 23.1.0 -- [fixed] Remote Config Realtime updates now trigger when a parameter's experiment - or variant assignment changes, ensuring more accurate A/B test analytics and - consistent user experiences. #8002 +- [fixed] Remote Config Realtime updates now trigger when a parameter's + experiment or variant assignment changes, ensuring more accurate A/B test + analytics and consistent user experiences. #8002 # 23.0.1 @@ -12,20 +12,23 @@ # 23.0.0 -- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or higher. -- [changed] This update introduces improvements to how the SDK handles real-time requests when a - Firebase project has exceeded its available quota for real-time services. Released in anticipation - of future quota enforcement, this change is designed to fetch the latest template even when the - quota is exhausted. -- [removed] **Breaking Change**: Stopped releasing the deprecated Kotlin extensions (KTX) module and - removed it from the Firebase Android BoM. Instead, use the KTX APIs from the main module. For - details, see the +- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or + higher. +- [changed] This update introduces improvements to how the SDK handles real-time + requests when a Firebase project has exceeded its available quota for + real-time services. Released in anticipation of future quota enforcement, this + change is designed to fetch the latest template even when the quota is + exhausted. +- [removed] **Breaking Change**: Stopped releasing the deprecated Kotlin + extensions (KTX) module and removed it from the Firebase Android BoM. Instead, + use the KTX APIs from the main module. For details, see the [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration). # 22.1.2 -- [fixed] Fixed `NetworkOnMainThreadException` on Android versions below 8 by disconnecting - `HttpURLConnection` only on API levels 26 and higher. GitHub Issue [#6934] +- [fixed] Fixed `NetworkOnMainThreadException` on Android versions below 8 by + disconnecting `HttpURLConnection` only on API levels 26 and higher. GitHub + Issue [#6934] ## Kotlin @@ -34,8 +37,8 @@ Kotlin extensions library has no additional updates. # 22.1.1 -- [fixed] Fixed an issue where the connection to the real-time Remote Config backend could remain - open in the background. +- [fixed] Fixed an issue where the connection to the real-time Remote Config + backend could remain open in the background. ## Kotlin @@ -44,8 +47,9 @@ Kotlin extensions library has no additional updates. # 22.1.0 -- [feature] Added support for custom signal targeting in Remote Config. Use `setCustomSignals` API - for setting custom signals and use them to build custom targeting conditions in Remote Config. +- [feature] Added support for custom signal targeting in Remote Config. Use + `setCustomSignals` API for setting custom signals and use them to build custom + targeting conditions in Remote Config. ## Kotlin @@ -73,15 +77,16 @@ Kotlin extensions library has no additional updates. # 21.6.3 -- [fixed] Fixed a bug that could cause a crash if the app was backgrounded while it was listening - for real-time Remote Config updates. For more information, see #5751 +- [fixed] Fixed a bug that could cause a crash if the app was backgrounded while + it was listening for real-time Remote Config updates. For more information, + see #5751 # 21.6.2 -- [fixed] Fixed an issue that could cause [remote_config] personalizations to be logged early in - specific cases. -- [fixed] Fixed an issue where the connection to the real-time Remote Config backend could remain - open in the background. +- [fixed] Fixed an issue that could cause [remote_config] personalizations to be + logged early in specific cases. +- [fixed] Fixed an issue where the connection to the real-time Remote Config + backend could remain open in the background. ## Kotlin @@ -99,18 +104,21 @@ Kotlin extensions library has no additional updates. # 21.6.0 -- [changed] Added support for other Firebase products to integrate with [remote_config]. +- [changed] Added support for other Firebase products to integrate with + [remote_config]. # 21.5.0 -- [changed] Added Kotlin extensions (KTX) APIs from `com.google.firebase:firebase-config-ktx` to - `com.google.firebase:firebase-config` under the `com.google.firebase.remoteconfig` package. For - details, see the +- [changed] Added Kotlin extensions (KTX) APIs from + `com.google.firebase:firebase-config-ktx` to + `com.google.firebase:firebase-config` under the + `com.google.firebase.remoteconfig` package. For details, see the [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration) -- [deprecated] All the APIs from `com.google.firebase:firebase-config-ktx` have been added to - `com.google.firebase:firebase-config` under the `com.google.firebase.remoteconfig` package, and - all the Kotlin extensions (KTX) APIs in `com.google.firebase:firebase-config-ktx` are now - deprecated. As early as April 2024, we'll no longer release KTX modules. For details, see the +- [deprecated] All the APIs from `com.google.firebase:firebase-config-ktx` have + been added to `com.google.firebase:firebase-config` under the + `com.google.firebase.remoteconfig` package, and all the Kotlin extensions + (KTX) APIs in `com.google.firebase:firebase-config-ktx` are now deprecated. As + early as April 2024, we'll no longer release KTX modules. For details, see the [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration) ## Kotlin @@ -129,8 +137,8 @@ Kotlin extensions library has no additional updates. # 21.4.0 -- [unchanged] Updated to accommodate the release of the updated [remote_config] Kotlin extensions - library. +- [unchanged] Updated to accommodate the release of the updated [remote_config] + Kotlin extensions library. ## Kotlin @@ -143,8 +151,9 @@ Kotlin extensions library has the following additional updates. # 21.3.0 -- [feature] Added support for real-time config updates. To learn more, see - [Get started with [firebase_remote_config]](/docs/remote-config/get-started?platform=android#add-real-time-listener). +- [feature] Added support for real-time config updates. To learn more, see [Get + started with + [firebase_remote_config]](/docs/remote-config/get-started?platform=android#add-real-time-listener). ## Kotlin @@ -162,8 +171,8 @@ Kotlin extensions library has no additional updates. # 21.2.0 -- [unchanged] Updated to accommodate the release of the updated [remote_config] Kotlin extensions - library. +- [unchanged] Updated to accommodate the release of the updated [remote_config] + Kotlin extensions library. ## Kotlin @@ -171,14 +180,16 @@ The Kotlin extensions library transitively includes the updated `firebase-config Kotlin extensions library has the following additional updates: - [feature] Firebase now supports Kotlin coroutines. With this release, we added - [`kotlinx-coroutines-play-services`](https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-play-services/){: - .external} to `firebase-config-ktx` as a transitive dependency, which exposes the + [`kotlinx-coroutines-play-services`](https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-play-services/){: .external} + to `firebase-config-ktx` as a transitive dependency, which exposes the `Task.await()` suspend function to convert a - [`Task`](https://developers.google.com/android/guides/tasks) into a Kotlin coroutine. + [`Task`](https://developers.google.com/android/guides/tasks) into a Kotlin + coroutine. # 21.1.2 -- [changed] Updated dependency of `play-services-basement` to its latest version (v18.1.0). +- [changed] Updated dependency of `play-services-basement` to its latest version + (v18.1.0). ## Kotlin @@ -187,8 +198,9 @@ Kotlin extensions library has no additional updates. # 21.1.1 -- [fixed] Fixed a bug that caused HTTP errors in some locales. For more information, see - GitHub Issue #3757 ## Kotlin @@ -215,10 +227,11 @@ Kotlin extensions library has no additional updates. # 21.0.2 -- [changed] Updated dependencies of `play-services-basement`, `play-services-base`, and - `play-services-tasks` to their latest versions (v18.0.0, v18.0.1, and v18.0.1, respectively). For - more information, see the [note](#basement18-0-0_base18-0-1_tasks18-0-1) at the top of this - release entry. +- [changed] Updated dependencies of `play-services-basement`, + `play-services-base`, and `play-services-tasks` to their latest versions + (v18.0.0, v18.0.1, and v18.0.1, respectively). For more information, see the + [note](#basement18-0-0_base18-0-1_tasks18-0-1) at the top of this release + entry. ## Kotlin @@ -227,7 +240,8 @@ Kotlin extensions library has no additional updates. # 21.0.1 -- [fixed] Fixed a bug in the initialization of [remote_config] with a non-primary Firebase app. +- [fixed] Fixed a bug in the initialization of [remote_config] with a + non-primary Firebase app. ## Kotlin @@ -255,7 +269,8 @@ Kotlin extensions library has no additional updates. # 20.0.3 -- [changed] Standardize support for other Firebase products that integrate with [remote_config]. +- [changed] Standardize support for other Firebase products that integrate with + [remote_config]. ## Kotlin @@ -264,8 +279,8 @@ Kotlin extensions library has no additional updates. # 20.0.2 -- [fixed] Fixed an issue that was causing [remote_config] to return the static default value even if - a remote value was defined. (#2186) +- [fixed] Fixed an issue that was causing [remote_config] to return the static + default value even if a remote value was defined. (#2186) ## Kotlin @@ -274,7 +289,8 @@ Kotlin extensions library has no additional updates. # 20.0.1 -- [changed] Added support for other Firebase products to integrate with [remote_config]. +- [changed] Added support for other Firebase products to integrate with + [remote_config]. ## Kotlin @@ -283,28 +299,32 @@ Kotlin extensions library has no additional updates. # 20.0.0 -- [removed] Removed the protocol buffer dependency. Also, removed support for configs saved on - device using the legacy protocol buffer format (the SDK stopped using this legacy format starting - with [remote_config] v16.3.0). -- [removed] Removed the deprecated synchronous method `FirebaseRemoteConfig.activateFetched()`. Use - the asynchronous +- [removed] Removed the protocol buffer dependency. Also, removed support for + configs saved on device using the legacy protocol buffer format (the SDK + stopped using this legacy format starting with [remote_config] v16.3.0). +- [removed] Removed the deprecated synchronous method + `FirebaseRemoteConfig.activateFetched()`. Use the asynchronous [`FirebaseRemoteConfig.activate()`]() instead. -- [removed] Removed the deprecated synchronous methods `FirebaseRemoteConfig.setDefaults(int)` and +- [removed] Removed the deprecated synchronous methods + `FirebaseRemoteConfig.setDefaults(int)` and `FirebaseRemoteConfig.setDefaults(Map)`. Use the asynchronous [`FirebaseRemoteConfig.setDefaultsAsync(int)`]() and [`FirebaseRemoteConfig.setDefaultsAsync(Map)`](>) instead. - [removed] Removed the deprecated synchronous method - `FirebaseRemoteConfig.setConfigSettings(FirebaseRemoteConfigSettings)`. Use the asynchronous + `FirebaseRemoteConfig.setConfigSettings(FirebaseRemoteConfigSettings)`. Use + the asynchronous [`FirebaseRemoteConfig.setConfigSettingsAsync(FirebaseRemoteConfigSettings)`]() instead. -- [removed] Removed the deprecated method `FirebaseRemoteConfig.getByteArray(String)`. Use +- [removed] Removed the deprecated method + `FirebaseRemoteConfig.getByteArray(String)`. Use [`FirebaseRemoteConfig.getString(String)`]() instead. -- [removed] Removed the deprecated methods `FirebaseRemoteConfigSettings.isDeveloperModeEnabled()` - and `FirebaseRemoteConfigSettings.Builder.setDeveloperModeEnabled(boolean)`. Use +- [removed] Removed the deprecated methods + `FirebaseRemoteConfigSettings.isDeveloperModeEnabled()` and + `FirebaseRemoteConfigSettings.Builder.setDeveloperModeEnabled(boolean)`. Use [`FirebaseRemoteConfigSettings#getMinimumFetchIntervalInSeconds()`]() and [`FirebaseRemoteConfigSettings.Builder#setMinimumFetchIntervalInSeconds(long)`]() @@ -317,14 +337,15 @@ Kotlin extensions library has no additional updates. # 19.2.0 -- [changed] Migrated to use the [firebase_installations] service _directly_ instead of using an - indirect dependency via the Firebase Instance ID SDK. - - {% include "docs/reference/android/client/_includes/_iid-indirect-dependency-solutions.html" %} - -- [changed] Updated the protocol buffer dependency to the newer `protobuf-javalite` artifact. The - new artifact is incompatible with the old one, so this library needed to be upgraded to avoid - conflicts. No developer action is necessary. +- [changed] Migrated to use the [firebase_installations] service _directly_ + instead of using an indirect dependency via the Firebase Instance ID SDK. {% + include + "docs/reference/android/client/_includes/_iid-indirect-dependency-solutions.html" + %} +- [changed] Updated the protocol buffer dependency to the newer + `protobuf-javalite` artifact. The new artifact is incompatible with the old + one, so this library needed to be upgraded to avoid conflicts. No developer + action is necessary. ## Kotlin @@ -333,8 +354,9 @@ Kotlin extensions library has no additional updates. # 19.1.4 -- [changed] Updated dependency on the Firebase Instance ID library to v20.1.5, which is a step - towards a direct dependency on the Firebase installations service in a future release. +- [changed] Updated dependency on the Firebase Instance ID library to v20.1.5, + which is a step towards a direct dependency on the Firebase installations + service in a future release. ## Kotlin @@ -390,7 +412,8 @@ Kotlin extensions library has no additional updates. # 19.0.4 -- [fixed] Resolved [known issue](//github.com/firebase/firebase-android-sdk/issues/973) where +- [fixed] Resolved + [known issue](//github.com/firebase/firebase-android-sdk/issues/973) where network calls may fail on devices using API 19 and earlier. ## Kotlin @@ -400,14 +423,17 @@ Kotlin extensions library has no additional updates. # 19.0.3 -- [fixed] Resolved [known issue](https://github.com/firebase/firebase-android-sdk/issues/787) where - the [firebase_remote_config] SDK threw an error when Android - [StrictMode](https://developer.android.com/reference/android/os/StrictMode) was turned on. +- [fixed] Resolved + [known issue](https://github.com/firebase/firebase-android-sdk/issues/787) + where the [firebase_remote_config] SDK threw an error when Android + [StrictMode](https://developer.android.com/reference/android/os/StrictMode) + was turned on. - [fixed] Resolved issue where setting Byte Arrays via [`FirebaseRemoteConfig.setDefaultsAsync(int)`](), [`FirebaseRemoteConfig.setDefaultsAsync(Map)`](>) - and their synchronous counterparts would cause `getByteArray` to return an object reference - instead of the Byte Array. Byte Arrays set via the Firebase console were unaffected by this bug. + and their synchronous counterparts would cause `getByteArray` to return an + object reference instead of the Byte Array. Byte Arrays set via the Firebase + console were unaffected by this bug. ## Kotlin @@ -416,24 +442,26 @@ Kotlin extensions library has no additional updates. # 19.0.2 -- [unchanged] Updated to accommodate the release of the [remote_config] Kotlin extensions library. +- [unchanged] Updated to accommodate the release of the [remote_config] Kotlin + extensions library. ## Kotlin -- [feature] The beta release of a [remote_config] Android library with Kotlin extensions is now - available. The Kotlin extensions library transitively includes the base `firebase-config` library. - To learn more, visit the - [[remote_config] KTX documentation](/docs/reference/kotlin/com/google/firebase/remoteconfig/ktx/package-summary). +- [feature] The beta release of a [remote_config] Android library with Kotlin + extensions is now available. The Kotlin extensions library transitively + includes the base `firebase-config` library. To learn more, visit the + [[remote_config] KTX + documentation](/docs/reference/kotlin/com/google/firebase/remoteconfig/ktx/package-summary). # 19.0.1 -- [fixed] Resolved known issue where certain unicode characters were not encoded correctly. The - issue was introduced in v19.0.0. +- [fixed] Resolved known issue where certain unicode characters were not encoded + correctly. The issue was introduced in v19.0.0. # 19.0.0 -- [changed] Versioned to add nullability annotations to improve the Kotlin developer experience. No - other changes. +- [changed] Versioned to add nullability annotations to improve the Kotlin + developer experience. No other changes. # 17.0.0 @@ -444,8 +472,8 @@ Kotlin extensions library has no additional updates. and [`FirebaseRemoteConfigClientException`](/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfigClientException) to provide more nuanced error reporting. -- [changed] Updated all "cache expiration" references to "minimum fetch interval" and "cache" - references to "local storage". +- [changed] Updated all "cache expiration" references to "minimum fetch + interval" and "cache" references to "local storage". - [deprecated] Deprecated developer mode. Use [`FirebaseRemoteConfigSettings.Builder.setMinimumFetchIntervalInSeconds(0L)`]() instead. @@ -471,22 +499,23 @@ Kotlin extensions library has no additional updates. [`FirebaseRemoteConfig.getInstance(FirebaseApp)`]() to retrieve a singleton instance of [`FirebaseRemoteConfig`](/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfig) - for the given [`FirebaseApp`](/docs/reference/android/com/google/firebase/FirebaseApp). + for the given + [`FirebaseApp`](/docs/reference/android/com/google/firebase/FirebaseApp). - [feature] Added a method that fetches configs and activates them: [`FirebaseRemoteConfig.fetchAndActivate()`](). -- [feature] Network connection timeout for fetch requests is now customizable. To set the network - timeout, use +- [feature] Network connection timeout for fetch requests is now customizable. + To set the network timeout, use [`FirebaseRemoteConfigSettings.Builder.setFetchTimeoutInSeconds(long)`](). -- [feature] The default minimum fetch interval is now customizable. To set the default minimum fetch - interval, use +- [feature] The default minimum fetch interval is now customizable. To set the + default minimum fetch interval, use [`FirebaseRemoteConfigSettings.Builder.setMinimumFetchIntervalInSeconds(long)`](). - [feature] Added a way to get all activated configs as a Java `Map`: [`FirebaseRemoteConfig.getAll()`](). - [feature] Added the ability to reset a Firebase Remote Config instance: [`FirebaseRemoteConfig.reset()`](). -- [feature] Added a way to determine if the Firebase Remote Config instance has finished - initializing. To get a task that will complete when the Firebase Remote Config instance is - finished initializing, use +- [feature] Added a way to determine if the Firebase Remote Config instance has + finished initializing. To get a task that will complete when the Firebase + Remote Config instance is finished initializing, use [`FirebaseRemoteConfig.ensureInitialized()`](). - [feature] Added an asynchronous way to activate configs: [`FirebaseRemoteConfig.activate()`](). @@ -515,30 +544,34 @@ Kotlin extensions library has no additional updates. # 16.4.1 - [changed] The SDK now enforces Android API Key restrictions. -- [fixed] Resolved known issue where the local cache was not honored even if it had not expired. The - issue was introduced in version 16.3.0. +- [fixed] Resolved known issue where the local cache was not honored even if it + had not expired. The issue was introduced in version 16.3.0. # 16.4.0 -- [changed] Internal changes to ensure functionality alignment with other SDK releases. +- [changed] Internal changes to ensure functionality alignment with other SDK + releases. # 16.3.0 -- [changed] The [firebase_remote_config] SDK requires the [firebase_remote_config] REST API. For - Firebase projects created before March 7, 2018, you must manually enable the REST API. For more - information, see our - [[remote_config] REST API user guide](https://firebase.google.com/docs/remote-config/use-config-rest#before_you_begin_enable_the_rest_api). -- [changed] Refactored the implementation of [remote_config] to improve SDK stability and speed, and - to remove the Google Play Services dependency. +- [changed] The [firebase_remote_config] SDK requires the + [firebase_remote_config] REST API. For Firebase projects created before March + 7, 2018, you must manually enable the REST API. For more information, see our + [[remote_config] REST API user + guide](https://firebase.google.com/docs/remote-config/use-config-rest#before_you_begin_enable_the_rest_api). +- [changed] Refactored the implementation of [remote_config] to improve SDK + stability and speed, and to remove the Google Play Services dependency. - [changed] Improved error logs and exception messages. -- [changed] Updated the Android documentation to reflect that [remote_config] uses `Locale` to - retrieve location information, similar to iOS's use of `countryCode`. +- [changed] Updated the Android documentation to reflect that [remote_config] + uses `Locale` to retrieve location information, similar to iOS's use of + `countryCode`. # 16.1.3 -- [fixed] Fixed an issue where [remote_config] experiments were not collecting results. +- [fixed] Fixed an issue where [remote_config] experiments were not collecting + results. # 16.1.0 -- [fixed] Bug fixes and internal improvements to support Firebase Performance Monitoring features. - +- [fixed] Bug fixes and internal improvements to support Firebase Performance + Monitoring features. diff --git a/firebase-crashlytics-ndk/CHANGELOG.md b/firebase-crashlytics-ndk/CHANGELOG.md index 3cfdbdd06a0..2e85eb18c84 100644 --- a/firebase-crashlytics-ndk/CHANGELOG.md +++ b/firebase-crashlytics-ndk/CHANGELOG.md @@ -10,8 +10,8 @@ # 20.0.5 -- [fixed] Fixed a runtime crash that could occur in minified native apps when using the Crashlytics - C++ header (#7906) +- [fixed] Fixed a runtime crash that could occur in minified native apps when + using the Crashlytics C++ header (#7906) # 20.0.4 @@ -31,7 +31,8 @@ # 20.0.0 -- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or higher. +- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or + higher. # 19.4.4 @@ -119,8 +120,8 @@ # 18.3.5 -- [fixed] Updated `firebase-common` to its latest version (v20.3.0) to fix an issue that was causing - a nondeterministic crash on startup. +- [fixed] Updated `firebase-common` to its latest version (v20.3.0) to fix an + issue that was causing a nondeterministic crash on startup. - [changed] Updated `firebase-crashlytics` dependency to v18.3.5. # 18.3.4 @@ -140,8 +141,9 @@ # 18.3.2 -- [fixed] Fixed an [issue](https://github.com/firebase/firebase-android-sdk/issues/4313){: - .external} preventing native crashes from being reported for Android API 29+. +- [fixed] Fixed an + [issue](https://github.com/firebase/firebase-android-sdk/issues/4313){: .external} + preventing native crashes from being reported for Android API 29+. # 18.3.1 @@ -161,7 +163,8 @@ version of the SDK (v18.3.1+ or [bom] v31.0.1+).** # 18.2.13 -- [changed] Updated dependency of `play-services-basement` to its latest version (v18.1.0). +- [changed] Updated dependency of `play-services-basement` to its latest version + (v18.1.0). # 18.2.12 @@ -189,36 +192,40 @@ version of the SDK (v18.3.1+ or [bom] v31.0.1+).** # 18.2.6 -- [changed] Updated internal Crashpad version to commit `281ba7`. With this change, disabling tagged - pointers is no longer required, so the following can be removed from your manifest's `application` - tag: `android:allowNativeHeapPointerTagging=false`. +- [changed] Updated internal Crashpad version to commit `281ba7`. With this + change, disabling tagged pointers is no longer required, so the following can + be removed from your manifest's `application` tag: + `android:allowNativeHeapPointerTagging=false`. - [changed] Updated `firebase-crashlytics` dependency to v18.2.6. # 18.2.5 -- [changed] Internal improvements to [crashlytics] file management, to ensure consistent creation - and removal of intermediate [crashlytics] files. +- [changed] Internal improvements to [crashlytics] file management, to ensure + consistent creation and removal of intermediate [crashlytics] files. - [changed] Updated `firebase-crashlytics` dependency to v18.2.5. # 18.2.4 - [changed] Added an obfuscation exclusion for - `com.google.firebase.crashlytics.ndk.FirebaseCrashlyticsNdk` to the Proguard configuration for - this AAR, to avoid potential reflection errors when obfuscating NDK-enabled apps. + `com.google.firebase.crashlytics.ndk.FirebaseCrashlyticsNdk` to the Proguard + configuration for this AAR, to avoid potential reflection errors when + obfuscating NDK-enabled apps. - [changed] Updated `firebase-crashlytics` dependency to v18.2.4. # 18.2.3 -- [changed] Internal changes to support upcoming Unity crash reporting improvements. +- [changed] Internal changes to support upcoming Unity crash reporting + improvements. - [changed] Updated `firebase-crashlytics` dependency to v18.2.3. # 18.2.1 - [fixed] Improved support for NDK crash reporting when using - [Play Feature Delivery](/docs/android/learn-more#dynamic-feature-modules). Previously, - `firebase-crashlytics-ndk` needed to be a dependency of the app module to consistently report - native crashes for all supported Android versions. [crashlytics] will now report native crashes - when used as a dependency of a feature module. + [Play Feature Delivery](/docs/android/learn-more#dynamic-feature-modules). + Previously, `firebase-crashlytics-ndk` needed to be a dependency of the app + module to consistently report native crashes for all supported Android + versions. [crashlytics] will now report native crashes when used as a + dependency of a feature module. - [changed] Updated `firebase-crashlytics` dependency to v18.2.1. # 18.2.0 @@ -231,8 +238,9 @@ version of the SDK (v18.3.1+ or [bom] v31.0.1+).** # 18.0.1 -- [changed] Updated `firebase-crashlytics` dependency to v18.0.1, which fixes a bug that could cause - excessive disk usage from NDK crash report files when crash reporting is disabled. +- [changed] Updated `firebase-crashlytics` dependency to v18.0.1, which fixes a + bug that could cause excessive disk usage from NDK crash report files when + crash reporting is disabled. # 18.0.0 @@ -258,8 +266,8 @@ Note: To ensure proper symbolication of NDK crashes, you must use the [crashlytics] NDK SDK and above. - [fixed] Upgraded underlying native crash reporting library to - [Crashpad](//crashpad.chromium.org){: .external}. This addresses emerging issues with capturing - certain types of native crashes on Android 10+ using + [Crashpad](//crashpad.chromium.org){: .external}. This addresses emerging + issues with capturing certain types of native crashes on Android 10+ using [Breakpad](//chromium.googlesource.com/breakpad){: .external}. ([Github Issue #1678](//github.com/firebase/firebase-android-sdk/issues/1678){: .external}) @@ -296,11 +304,12 @@ the [crashlytics] NDK SDK and above. # 17.0.0-beta03 -- [fixed] Updated package name in `AndroidManifest.xml` to reflect new [firebase_crashlytics] NDK - package name. +- [fixed] Updated package name in `AndroidManifest.xml` to reflect new + [firebase_crashlytics] NDK package name. - [changed] Improved debug logging. - [changed] Released new `crashlytics.h` with updated C++ APIs. -- [changed] Added ProGuard rules files to avoid obfuscating public APIs called from C++. +- [changed] Added ProGuard rules files to avoid obfuscating public APIs called + from C++. # 17.0.0-beta01 @@ -328,10 +337,8 @@ the new SDK. -- [changed] [crashlytics] NDK crash reporting will now start automatically when the [crashlytics] - NDK dependency is included in your app. -- [changed] The [crashlytics] Gradle plugin has new tasks to support uploading symbol files to - [crashlytics] servers. See the - [[crashlytics] Gradle plugin documentation](/docs/crashlytics/ndk-reports-new-sdk) for more - information. - +- [changed] [crashlytics] NDK crash reporting will now start automatically when + the [crashlytics] NDK dependency is included in your app. +- [changed] The [crashlytics] Gradle plugin has new tasks to support uploading + symbol files to [crashlytics] servers. See the [[crashlytics] Gradle plugin + documentation](/docs/crashlytics/ndk-reports-new-sdk) for more information. diff --git a/firebase-crashlytics/CHANGELOG.md b/firebase-crashlytics/CHANGELOG.md index 7d0cf923c5a..7aee59ea497 100644 --- a/firebase-crashlytics/CHANGELOG.md +++ b/firebase-crashlytics/CHANGELOG.md @@ -2,18 +2,19 @@ # 20.1.0 -- [feature] Added OOM and Anomaly trigger collection for the ProfilingManager API [#8343] +- [feature] Added OOM and Anomaly trigger collection for the ProfilingManager + API [#8343] # 20.0.6 -- [fixed] Fixed race condition that caused logs from background threads to not be attached to - reports in some cases [#8034] +- [fixed] Fixed race condition that caused logs from background threads to not + be attached to reports in some cases [#8034] - [changed] Updated `firebase-sessions` dependency to v3.0.6 # 20.0.5 -- [fixed] Fixed a runtime crash that could occur in minified native apps when using the Crashlytics - C++ header (#7906) +- [fixed] Fixed a runtime crash that could occur in minified native apps when + using the Crashlytics C++ header (#7906) # 20.0.4 @@ -35,10 +36,11 @@ - [changed] **Breaking Change**: Removed deprecated public constructor `KeyValueBuilder(crashlytics: FirebaseCrashlytics)` -- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or higher. -- [removed] **Breaking Change**: Stopped releasing the deprecated Kotlin extensions (KTX) module and - removed it from the Firebase Android BoM. Instead, use the KTX APIs from the main module. For - details, see the +- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or + higher. +- [removed] **Breaking Change**: Stopped releasing the deprecated Kotlin + extensions (KTX) module and removed it from the Firebase Android BoM. Instead, + use the KTX APIs from the main module. For details, see the [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration). # 19.4.4 @@ -61,11 +63,13 @@ Kotlin extensions library has no additional updates. # 19.4.2 -- [changed] Internal changes to read version control info more efficiently [#6754] -- [fixed] Fixed NoSuchMethodError when getting process info on Android 13 on some devices [#6720] +- [changed] Internal changes to read version control info more efficiently + [#6754] +- [fixed] Fixed NoSuchMethodError when getting process info on Android 13 on + some devices [#6720] - [changed] Updated `firebase-sessions` dependency to v2.1.0 - - [changed] Add warning for known issue [b/328687152](https://issuetracker.google.com/328687152) - [#6755] + - [changed] Add warning for known issue + [b/328687152](https://issuetracker.google.com/328687152) [#6755] - [changed] Updated datastore dependency to v1.1.3 to fix [CVE-2024-7254](https://github.com/advisories/GHSA-735f-pc8j-v9w8) [#6688] @@ -85,8 +89,8 @@ Kotlin extensions library has no additional updates. # 19.4.0 -- [feature] Added an overload for `recordException` that allows logging additional custom keys to - the non fatal event [#3551] +- [feature] Added an overload for `recordException` that allows logging + additional custom keys to the non fatal event [#3551] ## Kotlin @@ -95,7 +99,8 @@ Kotlin extensions library has no additional updates. # 19.3.0 -- [fixed] Fixed inefficiency in the Kotlin `FirebaseCrashlytics.setCustomKeys` extension. +- [fixed] Fixed inefficiency in the Kotlin `FirebaseCrashlytics.setCustomKeys` + extension. - [fixed] Execute failure listener outside the main thread [#6535] ## Kotlin @@ -116,18 +121,20 @@ Kotlin extensions library has no additional updates. # 19.2.0 - [fixed] Improved data consistency for rapid user actions. -- [fixed] Fixed exception propagation in the case of no default uncaught exception handler. +- [fixed] Fixed exception propagation in the case of no default uncaught + exception handler. - [changed] Internal changes to improve startup time. - [changed] Internal changes to the way background tasks are scheduled. - [changed] Migrated SDK to use standard Firebase executors. # 19.1.0 -- [feature] Added the `isCrashlyticsCollectionEnabled` API to check if Crashlytics collection is - enabled. (GitHub [#5919](https://github.com/firebase/firebase-android-sdk/issues/5919){: - .external}) -- [fixed] Ensure that on-demand fatal events are never processed on the main thread. (GitHub - [#4345](https://github.com/firebase/firebase-android-sdk/issues/4345){: .external}) +- [feature] Added the `isCrashlyticsCollectionEnabled` API to check if + Crashlytics collection is enabled. + (GitHub [#5919](https://github.com/firebase/firebase-android-sdk/issues/5919){: .external}) +- [fixed] Ensure that on-demand fatal events are never processed on the main + thread. + (GitHub [#4345](https://github.com/firebase/firebase-android-sdk/issues/4345){: .external}) - [changed] Internal changes to the way session IDs are generated. ## Kotlin @@ -166,7 +173,8 @@ Kotlin extensions library has no additional updates. # 19.0.0 - [fixed] Force validation or rotation of FIDs. -- [fixed] Added keep rule for shrinkage of Crashlytics build resources in strict mode. +- [fixed] Added keep rule for shrinkage of Crashlytics build resources in strict + mode. ## Kotlin @@ -203,13 +211,15 @@ Kotlin extensions library has no additional updates. # 18.6.0 - [changed] Include more details about app processes in reports. -- [feature] Updated `firebase-sessions` dependency for more accurate sessions on multi-process apps. -- [changed] Added support for [crashlytics] to report information from [remote_config]. +- [feature] Updated `firebase-sessions` dependency for more accurate sessions on + multi-process apps. +- [changed] Added support for [crashlytics] to report information from + [remote_config]. # 18.5.1 -- [fixed] Internal improvement to fix compatibility with Flutter and Unity SDKs. Github - [#10759](https://github.com/firebase/flutterfire/issues/10759) +- [fixed] Internal improvement to fix compatibility with Flutter and Unity SDKs. + Github [#10759](https://github.com/firebase/flutterfire/issues/10759) ## Kotlin @@ -218,14 +228,16 @@ Kotlin extensions library has no additional updates. # 18.5.0 -- [changed] Added Kotlin extensions (KTX) APIs from `com.google.firebase:firebase-crashlytics-ktx` - to `com.google.firebase:firebase-crashlytics` under the `com.google.firebase.crashlytics` package. - For details, see the +- [changed] Added Kotlin extensions (KTX) APIs from + `com.google.firebase:firebase-crashlytics-ktx` to + `com.google.firebase:firebase-crashlytics` under the + `com.google.firebase.crashlytics` package. For details, see the [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration) -- [deprecated] All the APIs from `com.google.firebase:firebase-crashlytics-ktx` have been added to - `com.google.firebase:firebase-crashlytics` under the `com.google.firebase.crashlytics` package, - and all the Kotlin extensions (KTX) APIs in `com.google.firebase:firebase-crashlytics-ktx` are now - deprecated. As early as April 2024, we'll no longer release KTX modules. For details, see the +- [deprecated] All the APIs from `com.google.firebase:firebase-crashlytics-ktx` + have been added to `com.google.firebase:firebase-crashlytics` under the + `com.google.firebase.crashlytics` package, and all the Kotlin extensions (KTX) + APIs in `com.google.firebase:firebase-crashlytics-ktx` are now deprecated. As + early as April 2024, we'll no longer release KTX modules. For details, see the [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration) ## Kotlin @@ -235,8 +247,8 @@ Kotlin extensions library has no additional updates. # 18.4.3 -- [fixed] Disabled `GradleMetadataPublishing` to fix breakage of the Kotlin extensions library. - [#5337] +- [fixed] Disabled `GradleMetadataPublishing` to fix breakage of the Kotlin + extensions library. [#5337] ## Kotlin @@ -245,7 +257,8 @@ Kotlin extensions library has no additional updates. # 18.4.2 -- [feature] Expanded `firebase-sessions` library integration to work with NDK crashes and ANRs. +- [feature] Expanded `firebase-sessions` library integration to work with NDK + crashes and ANRs. - [changed] Improved reliability when reporting memory usage. ## Kotlin @@ -259,8 +272,8 @@ Kotlin extensions library has no additional updates. # 18.4.0 -- [feature] Integrated with Firebase sessions library to enable upcoming features related to - session-based crash metrics. +- [feature] Integrated with Firebase sessions library to enable upcoming + features related to session-based crash metrics. ## Kotlin @@ -269,8 +282,8 @@ Kotlin extensions library has no additional updates. # 18.3.7 -- [feature] Added collection of version control information generated by the Android Gradle plugin - (AGP). +- [feature] Added collection of version control information generated by the + Android Gradle plugin (AGP). ## Kotlin @@ -279,12 +292,13 @@ Kotlin extensions library has no additional updates. # 18.3.6 -- [feature] Added support for upcoming [crashlytics] features to report GWP-ASan crashes on - supported API levels. (GitHub - [#4721](https://github.com/firebase/firebase-android-sdk/pull/4721){: .external}) -- [changed] Improved crash reporting reliability for crashes that occur early in the app's - lifecycle. (GitHub [#4608](https://github.com/firebase/firebase-android-sdk/pull/4608){: - .external}, [#4786](https://github.com/firebase/firebase-android-sdk/pull/4786){: .external}) +- [feature] Added support for upcoming [crashlytics] features to report GWP-ASan + crashes on supported API levels. + (GitHub [#4721](https://github.com/firebase/firebase-android-sdk/pull/4721){: .external}) +- [changed] Improved crash reporting reliability for crashes that occur early in + the app's lifecycle. (GitHub + [#4608](https://github.com/firebase/firebase-android-sdk/pull/4608){: .external}, + [#4786](https://github.com/firebase/firebase-android-sdk/pull/4786){: .external}) ## Kotlin @@ -293,8 +307,8 @@ Kotlin extensions library has no additional updates. # 18.3.5 -- [fixed] Updated `firebase-common` to its latest version (v20.3.0) to fix an issue that was causing - a nondeterministic crash on startup. +- [fixed] Updated `firebase-common` to its latest version (v20.3.0) to fix an + issue that was causing a nondeterministic crash on startup. ## Kotlin @@ -311,10 +325,10 @@ Kotlin extensions library has no additional updates. latest version (v18.3.5+) which contains a fix. -- [changed] Improved crash reporting reliability for crashes that occur early in the app's - lifecycle. -- [changed] Added improved support for capturing `BuildId`s for native ANRs on older Android - versions. +- [changed] Improved crash reporting reliability for crashes that occur early in + the app's lifecycle. +- [changed] Added improved support for capturing `BuildId`s for native ANRs on + older Android versions. ## Kotlin @@ -323,7 +337,8 @@ Kotlin extensions library has no additional updates. # 18.3.3 -- [unchanged] Updated to accommodate the release of the updated `firebase-crashlytics-ndk` v18.3.3. +- [unchanged] Updated to accommodate the release of the updated + `firebase-crashlytics-ndk` v18.3.3. ## Kotlin @@ -332,7 +347,8 @@ Kotlin extensions library has no additional updates. # 18.3.2 -- [unchanged] Updated to accommodate the release of the updated `firebase-crashlytics-ndk` v18.3.2. +- [unchanged] Updated to accommodate the release of the updated + `firebase-crashlytics-ndk` v18.3.2. ## Kotlin @@ -341,8 +357,9 @@ Kotlin extensions library has no additional updates. # 18.3.1 -- [fixed] Fixed an [issue](https://github.com/firebase/firebase-android-sdk/issues/4223){: - .external} in v18.3.0 that caused a `NoClassDefFoundError` in specific cases. +- [fixed] Fixed an + [issue](https://github.com/firebase/firebase-android-sdk/issues/4223){: .external} + in v18.3.0 that caused a `NoClassDefFoundError` in specific cases. ## Kotlin @@ -355,9 +372,9 @@ Warning: We're aware of an [issue](https://github.com/firebase/firebase-android- .external} in this version of the [crashlytics] Android SDK.
**We strongly recommend using the latest version of the SDK (v18.3.1+ or [bom] v31.0.1+).** -- [changed] Improved reporting for crashes that occur early in the app's lifecycle. After updating - to this version, you might notice a sudden _increase_ in the number of crashes that are reported - for your app. +- [changed] Improved reporting for crashes that occur early in the app's + lifecycle. After updating to this version, you might notice a sudden + _increase_ in the number of crashes that are reported for your app. ## Kotlin @@ -365,14 +382,16 @@ The Kotlin extensions library transitively includes the updated `firebase-crashl Kotlin extensions library has the following additional updates: - [feature] Firebase now supports Kotlin coroutines. With this release, we added - [`kotlinx-coroutines-play-services`](https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-play-services/){: - .external} to `firebase-crashlytics-ktx` as a transitive dependency, which exposes the + [`kotlinx-coroutines-play-services`](https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-play-services/){: .external} + to `firebase-crashlytics-ktx` as a transitive dependency, which exposes the `Task.await()` suspend function to convert a - [`Task`](https://developers.google.com/android/guides/tasks) into a Kotlin coroutine. + [`Task`](https://developers.google.com/android/guides/tasks) into a Kotlin + coroutine. # 18.2.13 -- [changed] Updated dependency of `play-services-basement` to its latest version (v18.1.0). +- [changed] Updated dependency of `play-services-basement` to its latest version + (v18.1.0). ## Kotlin @@ -390,7 +409,8 @@ Kotlin extensions library has no additional updates. # 18.2.11 -- [changed] Improved crash reporting reliability for multi-process apps on Android 28 and above. +- [changed] Improved crash reporting reliability for multi-process apps on + Android 28 and above. ## Kotlin @@ -399,11 +419,12 @@ Kotlin extensions library has no additional updates. # 18.2.10 -- [fixed] Fixed a bug that could prevent unhandled exceptions from being propagated to the default - handler when the network is unavailable. -- [changed] Internal changes to support on-demand fatal crash reporting for Flutter apps. -- [fixed] Fixed a bug that prevented [crashlytics] from initializing on some devices in some cases. - (#3269) +- [fixed] Fixed a bug that could prevent unhandled exceptions from being + propagated to the default handler when the network is unavailable. +- [changed] Internal changes to support on-demand fatal crash reporting for + Flutter apps. +- [fixed] Fixed a bug that prevented [crashlytics] from initializing on some + devices in some cases. (#3269) ## Kotlin @@ -412,10 +433,11 @@ Kotlin extensions library has no additional updates. # 18.2.9 -- [changed] Updated dependencies of `play-services-basement`, `play-services-base`, and - `play-services-tasks` to their latest versions (v18.0.0, v18.0.1, and v18.0.1, respectively). For - more information, see the [note](#basement18-0-0_base18-0-1_tasks18-0-1) at the top of this - release entry. +- [changed] Updated dependencies of `play-services-basement`, + `play-services-base`, and `play-services-tasks` to their latest versions + (v18.0.0, v18.0.1, and v18.0.1, respectively). For more information, see the + [note](#basement18-0-0_base18-0-1_tasks18-0-1) at the top of this release + entry. ## Kotlin @@ -424,7 +446,8 @@ Kotlin extensions library has no additional updates. # 18.2.8 -- [changed] Updated to the latest version of the `firebase-datatransport` library. +- [changed] Updated to the latest version of the `firebase-datatransport` + library. ## Kotlin @@ -435,8 +458,8 @@ Kotlin extensions library has no additional updates. - [changed] Improved runtime efficiency of the [`setCustomKey` functions](/docs/crashlytics/customize-crash-reports?platform=android#add-keys), - significantly reducing the number of `Task` objects and disk writes when keys are updated - frequently. (#3254) + significantly reducing the number of `Task` objects and disk writes when keys + are updated frequently. (#3254) - [fixed] Fixed a StrictMode `DiskReadViolation`. (#3265) ## Kotlin @@ -446,7 +469,8 @@ Kotlin extensions library has no additional updates. # 18.2.6 -- [changed] Internal changes to support future improvements to Flutter crash reporting. +- [changed] Internal changes to support future improvements to Flutter crash + reporting. ## Kotlin @@ -455,10 +479,11 @@ Kotlin extensions library has no additional updates. # 18.2.5 -- [fixed] Fixed a bug that prevented some [crashlytics] session files from being removed after the - session ended. All session-specific files are now properly cleaned up. -- [changed] Internal improvements to [crashlytics] file management, to ensure consistent creation - and removal of intermediate [crashlytics] files. +- [fixed] Fixed a bug that prevented some [crashlytics] session files from being + removed after the session ended. All session-specific files are now properly + cleaned up. +- [changed] Internal improvements to [crashlytics] file management, to ensure + consistent creation and removal of intermediate [crashlytics] files. ## Kotlin @@ -467,7 +492,8 @@ Kotlin extensions library has no additional updates. # 18.2.4 -- [changed] Internal changes to support ANR collection and their upcoming display in the console. +- [changed] Internal changes to support ANR collection and their upcoming + display in the console. ## Kotlin @@ -476,9 +502,10 @@ Kotlin extensions library has no additional updates. # 18.2.3 -- [fixed] Fixed a race condition that prevented some launch-time crashes from being reported to - Crashlytics. -- [changed] Internal changes to support upcoming Unity crash reporting improvements. +- [fixed] Fixed a race condition that prevented some launch-time crashes from + being reported to Crashlytics. +- [changed] Internal changes to support upcoming Unity crash reporting + improvements. ## Kotlin @@ -487,8 +514,8 @@ Kotlin extensions library has no additional updates. # 18.2.1 -- [fixed] Fixed a `ConcurrentModificationException` that could be logged to logcat when setting - multiple custom key/values in rapid succession. +- [fixed] Fixed a `ConcurrentModificationException` that could be logged to + logcat when setting multiple custom key/values in rapid succession. ## Kotlin @@ -515,8 +542,9 @@ Kotlin extensions library has no additional updates. # 18.0.1 -- [fixed] Fixed a bug that could prevent proper removal of [crashlytics] NDK crash report files when - crash reporting is disabled, resulting in excessive disk use. +- [fixed] Fixed a bug that could prevent proper removal of [crashlytics] NDK + crash report files when crash reporting is disabled, resulting in excessive + disk use. ## Kotlin @@ -529,8 +557,8 @@ Kotlin extensions library has no additional updates. [`FirebaseInstallations#getId()`]() when [automatic data collection](/docs/crashlytics/customize-crash-reports?platform=android#enable-reporting) - is disabled for [crashlytics]. [crashlytics] no longer makes any network calls when reporting is - disabled. + is disabled for [crashlytics]. [crashlytics] no longer makes any network calls + when reporting is disabled. - [changed] Internal changes to support dynamic feature modules. ## Kotlin @@ -541,10 +569,11 @@ Kotlin extensions library has no additional updates. # 17.4.1 - [changed] Improved rooted device detection. (#2515) -- [fixed] Fix an uncaught IllegalStateExeception that could be thrown if [crashlytics] is unable to - register a receiver that collects battery state information. If registration fails due to the app - already having registered too many receivers, [crashlytics] will report default values for the - battery state rather than crashing. (#2504) +- [fixed] Fix an uncaught IllegalStateExeception that could be thrown if + [crashlytics] is unable to register a receiver that collects battery state + information. If registration fails due to the app already having registered + too many receivers, [crashlytics] will report default values for the battery + state rather than crashing. (#2504) ## Kotlin @@ -554,8 +583,8 @@ Kotlin extensions library has no additional updates. # 17.4.0 - [feature] Added the - [`setCustomKeys`](/docs/reference/android/com/google/firebase/crashlytics/CustomKeysAndValues) API - to allow bulk logging of custom keys and values. + [`setCustomKeys`](/docs/reference/android/com/google/firebase/crashlytics/CustomKeysAndValues) + API to allow bulk logging of custom keys and values. ([Github PR #2443](//github.com/firebase/firebase-android-sdk/pull/2443){: .external}) ## Kotlin @@ -565,8 +594,8 @@ Kotlin extensions library has no additional updates. # 17.3.1 -- [changed] Removed OkHttp dependency to eliminate conflicts with apps and SDKs using incompatible - versions. +- [changed] Removed OkHttp dependency to eliminate conflicts with apps and SDKs + using incompatible versions. ## Kotlin @@ -577,7 +606,8 @@ Kotlin extensions library has no additional updates. - [changed] Clarified debug logs for crash reports enqueued to be sent via the `firebase-datatransport` library. -- [fixed] Addressed an issue which could cause a `RejectedExecutionException` in rare cases. +- [fixed] Addressed an issue which could cause a `RejectedExecutionException` in + rare cases. ([Github Issue #2013](//github.com/firebase/firebase-android-sdk/issues/2013){: .external}) ## Kotlin @@ -587,10 +617,11 @@ Kotlin extensions library has no additional updates. # 17.2.2 -- [fixed] Fixed crash that can occur when using a built-in resource as the app launcher icon. +- [fixed] Fixed crash that can occur when using a built-in resource as the app + launcher icon. ([Github Issue #1935](//github.com/firebase/firebase-android-sdk/issues/1935){: .external}) -- [fixed] Fixed a bug preventing crash reports from being sent in some cases when an app is using - [crashlytics] on multiple processes. +- [fixed] Fixed a bug preventing crash reports from being sent in some cases + when an app is using [crashlytics] on multiple processes. ## Kotlin @@ -599,16 +630,18 @@ Kotlin extensions library has no additional updates. # 17.2.1 -- [fixed] Improved handling of asynchronous tasks that need to wait for completion on the main - thread. ([Github PR #1739](//github.com/firebase/firebase-android-sdk/pull/1739){: .external}) -- [changed] Added an overload to the `setCrashlyticsCollectionEnabled` API to allow for passing - `null` to clear any previously set value. +- [fixed] Improved handling of asynchronous tasks that need to wait for + completion on the main thread. + ([Github PR #1739](//github.com/firebase/firebase-android-sdk/pull/1739){: .external}) +- [changed] Added an overload to the `setCrashlyticsCollectionEnabled` API to + allow for passing `null` to clear any previously set value. ([Github PR #1434](//github.com/firebase/firebase-android-sdk/pull/1434){: .external}) -- [changed] Migrated to use the [firebase_installations] service _directly_ instead of using an - indirect dependency via the Firebase Instance ID SDK. +- [changed] Migrated to use the [firebase_installations] service _directly_ + instead of using an indirect dependency via the Firebase Instance ID SDK. ([Github PR #1760](//github.com/firebase/firebase-android-sdk/pull/1760){: .external}) - - {% include "docs/reference/android/client/_includes/_iid-indirect-dependency-solutions.html" %} + {% include + "docs/reference/android/client/_includes/_iid-indirect-dependency-solutions.html" + %} ## Kotlin @@ -617,10 +650,10 @@ Kotlin extensions library has no additional updates. # 17.1.1 -- [changed] To improve the reliability of submitting crash uploads on poor networks, changed the - Transport SDK to retry connection errors - ([Github Issue #1705](//github.com/firebase/firebase-android-sdk/issues/1705){: .external}) and - increased the number of retries before deleting events +- [changed] To improve the reliability of submitting crash uploads on poor + networks, changed the Transport SDK to retry connection errors + ([Github Issue #1705](//github.com/firebase/firebase-android-sdk/issues/1705){: .external}) + and increased the number of retries before deleting events ([Github Issue #1708](//github.com/firebase/firebase-android-sdk/issues/1708){: .external}). ## Kotlin @@ -630,33 +663,35 @@ Kotlin extensions library has no additional updates. # 17.1.0 -- [fixed] Updated [crashlytics] integration with [firebase_analytics] to include native crashes in - crash-free users counts. -- [fixed] Removed a harmless, yet unexpected `FileNotFoundException` log output that printed when an - optional file is unavailable. - ([Github Issue #1559](//github.com/firebase/firebase-android-sdk/issues/1559#issuecomment-638387614){: - .external}) +- [fixed] Updated [crashlytics] integration with [firebase_analytics] to include + native crashes in crash-free users counts. +- [fixed] Removed a harmless, yet unexpected `FileNotFoundException` log output + that printed when an optional file is unavailable. + ([Github Issue #1559](//github.com/firebase/firebase-android-sdk/issues/1559#issuecomment-638387614){: .external}) ## Kotlin -- [feature] The [firebase_crashlytics] Android library with Kotlin extensions is now available. The - Kotlin extensions library transitively includes the base `firebase-crashlytics` library. To learn - more, visit the - [[crashlytics] KTX documentation](/docs/reference/kotlin/com/google/firebase/crashlytics/ktx/package-summary). +- [feature] The [firebase_crashlytics] Android library with Kotlin extensions is + now available. The Kotlin extensions library transitively includes the base + `firebase-crashlytics` library. To learn more, visit the [[crashlytics] KTX + documentation](/docs/reference/kotlin/com/google/firebase/crashlytics/ktx/package-summary). # 17.0.1 -- [fixed] Fixed an issue causing a `SQLiteException` when changing versions of [crashlytics]. +- [fixed] Fixed an issue causing a `SQLiteException` when changing versions of + [crashlytics]. ([Github Issue #1531](https://github.com/firebase/firebase-android-sdk/issues/1531){: .external}) -- [fixed] Improved reliability of sending reports at crash time on Android API level 28+. +- [fixed] Improved reliability of sending reports at crash time on Android API + level 28+. # 17.0.0 - [changed] The [firebase_crashlytics] SDK is now generally available. -- [fixed] Fixed an issue that could cause apps to crash if a crash report payload is too large - (rare). -- [changed] Updated dependency on the Firebase Instance ID library to v20.1.5, which is a step - towards a direct dependency on the [firebase_installations] service in a future release. +- [fixed] Fixed an issue that could cause apps to crash if a crash report + payload is too large (rare). +- [changed] Updated dependency on the Firebase Instance ID library to v20.1.5, + which is a step towards a direct dependency on the [firebase_installations] + service in a future release. # 17.0.0-beta04 @@ -666,19 +701,22 @@ Kotlin extensions library has no additional updates. # 17.0.0-beta03 - [fixed] Fixed internal bugs to improve crash analysis and grouping. -- [changed] Improved compatibility with Google Analytics. For best performance, make sure you're - using the latest versions of the [firebase_crashlytics] SDK and the Firebase SDK for Google - Analytics. -- [changed] Updated remaining [crashlytics] backend API calls to prepare for Fabric sunset. +- [changed] Improved compatibility with Google Analytics. For best performance, + make sure you're using the latest versions of the [firebase_crashlytics] SDK + and the Firebase SDK for Google Analytics. +- [changed] Updated remaining [crashlytics] backend API calls to prepare for + Fabric sunset. # 17.0.0-beta02 - [changed] Removed superfluous `D/FirebaseCrashlytics` prefix from logs. ([#1202](https://github.com/firebase/firebase-android-sdk/issues/1202)) -- [changed] Updated [crashlytics] backend API calls in preparation for Fabric sunset. -- [changed] Upgraded [firebase_analytics] integration to improve crash-free users accuracy. For - improved performance, we recommend that you upgrade to the latest version of the Firebase SDK for - [firebase_analytics] with this version of [firebase_crashlytics]. +- [changed] Updated [crashlytics] backend API calls in preparation for Fabric + sunset. +- [changed] Upgraded [firebase_analytics] integration to improve crash-free + users accuracy. For improved performance, we recommend that you upgrade to the + latest version of the Firebase SDK for [firebase_analytics] with this version + of [firebase_crashlytics]. # 17.0.0-beta01 @@ -705,12 +743,12 @@ name change. The following release notes describe changes in the new SDK. -- [changed] Replaced static methods with new instance methods that are more consistent with other - Firebase SDKs and more intuitive to use. The new APIs give your users more control over how you - collect their data. -- [removed] Removed the Fabric [crashlytics] API key. Now, [crashlytics] will always use the - `google-services.json` file to associate your app with your Firebase project. If you linked your - app from Fabric, remove the Fabric API key from your `AndroidManifest.xml` file. -- [removed] The `fabric.properties` and `crashlytics.properties` files are no longer supported. - Remove them from your app. - +- [changed] Replaced static methods with new instance methods that are more + consistent with other Firebase SDKs and more intuitive to use. The new APIs + give your users more control over how you collect their data. +- [removed] Removed the Fabric [crashlytics] API key. Now, [crashlytics] will + always use the `google-services.json` file to associate your app with your + Firebase project. If you linked your app from Fabric, remove the Fabric API + key from your `AndroidManifest.xml` file. +- [removed] The `fabric.properties` and `crashlytics.properties` files are no + longer supported. Remove them from your app. diff --git a/firebase-database-collection/CHANGELOG.md b/firebase-database-collection/CHANGELOG.md index a1ecf841edb..79e701b844d 100644 --- a/firebase-database-collection/CHANGELOG.md +++ b/firebase-database-collection/CHANGELOG.md @@ -1,2 +1 @@ # Unreleased - diff --git a/firebase-database/CHANGELOG.md b/firebase-database/CHANGELOG.md index 616f9074e3b..0b3bcc0acf6 100644 --- a/firebase-database/CHANGELOG.md +++ b/firebase-database/CHANGELOG.md @@ -6,10 +6,11 @@ # 22.0.0 -- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or higher. -- [removed] **Breaking Change**: Stopped releasing the deprecated Kotlin extensions (KTX) module and - removed it from the Firebase Android BoM. Instead, use the KTX APIs from the main module. For - details, see the +- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or + higher. +- [removed] **Breaking Change**: Stopped releasing the deprecated Kotlin + extensions (KTX) module and removed it from the Firebase Android BoM. Instead, + use the KTX APIs from the main module. For details, see the [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration). # 21.0.0 @@ -23,8 +24,9 @@ Kotlin extensions library has no additional updates. # 20.3.1 -- [fixed] Fixed the `@Exclude` annotation doesn't been propagated to Kotlin's corresponding bridge - methods. [#5626](//github.com/firebase/firebase-android-sdk/pull/5706) +- [fixed] Fixed the `@Exclude` annotation doesn't been propagated to Kotlin's + corresponding bridge methods. + [#5626](//github.com/firebase/firebase-android-sdk/pull/5706) ## Kotlin @@ -33,14 +35,16 @@ Kotlin extensions library has no additional updates. # 20.3.0 -- [changed] Added Kotlin extensions (KTX) APIs from `com.google.firebase:firebase-database-ktx` to - `com.google.firebase:firebase-database` under the `com.google.firebase.database` package. For - details, see the +- [changed] Added Kotlin extensions (KTX) APIs from + `com.google.firebase:firebase-database-ktx` to + `com.google.firebase:firebase-database` under the + `com.google.firebase.database` package. For details, see the [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration) -- [deprecated] All the APIs from `com.google.firebase:firebase-database-ktx` have been added to - `com.google.firebase:firebase-database` under the `com.google.firebase.database` package, and all - the Kotlin extensions (KTX) APIs in `com.google.firebase:firebase-database-ktx` are now - deprecated. As early as April 2024, we'll no longer release KTX modules. For details, see the +- [deprecated] All the APIs from `com.google.firebase:firebase-database-ktx` + have been added to `com.google.firebase:firebase-database` under the + `com.google.firebase.database` package, and all the Kotlin extensions (KTX) + APIs in `com.google.firebase:firebase-database-ktx` are now deprecated. As + early as April 2024, we'll no longer release KTX modules. For details, see the [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration) ## Kotlin @@ -68,19 +72,20 @@ Kotlin extensions library has no additional updates. # 20.2.0 -- [unchanged] Updated to accommodate the release of the updated [database] Kotlin extensions - library. +- [unchanged] Updated to accommodate the release of the updated [database] + Kotlin extensions library. ## Kotlin - [feature] Added [`Query.values()`](/docs/reference/kotlin/com/google/firebase/database/ktx/package-summary#values) - Kotlin Flows to listen for realtime updates and convert its values to a specific type. + Kotlin Flows to listen for realtime updates and convert its values to a + specific type. # 20.1.0 -- [unchanged] Updated to accommodate the release of the updated [database] Kotlin extensions - library. +- [unchanged] Updated to accommodate the release of the updated [database] + Kotlin extensions library. ## Kotlin @@ -88,10 +93,11 @@ The Kotlin extensions library transitively includes the updated `firebase-databa Kotlin extensions library has the following additional updates: - [feature] Firebase now supports Kotlin coroutines. With this release, we added - [`kotlinx-coroutines-play-services`](https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-play-services/){: - .external} to `firebase-database-ktx` as a transitive dependency, which exposes the + [`kotlinx-coroutines-play-services`](https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-play-services/){: .external} + to `firebase-database-ktx` as a transitive dependency, which exposes the `Task.await()` suspend function to convert a - [`Task`](https://developers.google.com/android/guides/tasks) into a Kotlin coroutine. + [`Task`](https://developers.google.com/android/guides/tasks) into a Kotlin + coroutine. - [feature] Added [`Query.snapshots`](/docs/reference/kotlin/com/google/firebase/database/ktx/package-summary#snapshots) and @@ -100,8 +106,10 @@ Kotlin extensions library has the following additional updates: # 20.0.6 -- [changed] Updated dependency of `play-services-basement` to its latest version (v18.1.0). -- [fixed] Fixed issue where `Query.get()` was propagating events to listeners on unrelated queries. +- [changed] Updated dependency of `play-services-basement` to its latest version + (v18.1.0). +- [fixed] Fixed issue where `Query.get()` was propagating events to listeners on + unrelated queries. ## Kotlin @@ -110,8 +118,8 @@ Kotlin extensions library has no additional updates. # 20.0.5 -- [fixed] `Query.get` no longer throws "Client is offline" exception when local value is not - available. Instead, it waits for a backend connection. +- [fixed] `Query.get` no longer throws "Client is offline" exception when local + value is not available. Instead, it waits for a backend connection. ## Kotlin @@ -120,10 +128,11 @@ Kotlin extensions library has no additional updates. # 20.0.4 -- [changed] Updated dependencies of `play-services-basement`, `play-services-base`, and - `play-services-tasks` to their latest versions (v18.0.0, v18.0.1, and v18.0.1, respectively). For - more information, see the [note](#basement18-0-0_base18-0-1_tasks18-0-1) at the top of this - release entry. +- [changed] Updated dependencies of `play-services-basement`, + `play-services-base`, and `play-services-tasks` to their latest versions + (v18.0.0, v18.0.1, and v18.0.1, respectively). For more information, see the + [note](#basement18-0-0_base18-0-1_tasks18-0-1) at the top of this release + entry. ## Kotlin @@ -132,8 +141,8 @@ Kotlin extensions library has no additional updates. # 20.0.3 -- [fixed] Fixed a crash that prevented the SDK from connecting to the backend if a credential - refresh was unsuccesful. +- [fixed] Fixed a crash that prevented the SDK from connecting to the backend if + a credential refresh was unsuccesful. ## Kotlin @@ -142,8 +151,8 @@ Kotlin extensions library has no additional updates. # 20.0.2 -- [fixed] The SDK can now continue to issue writes for apps that send invalid [app_check] tokens if - [app_check] enforcement is not enabled. +- [fixed] The SDK can now continue to issue writes for apps that send invalid + [app_check] tokens if [app_check] enforcement is not enabled. ## Kotlin @@ -152,8 +161,8 @@ Kotlin extensions library has no additional updates. # 20.0.1 -- [fixed] Fixed an issue that prevented clients from connecting to the backend when the app used - [app_check] without [auth]. +- [fixed] Fixed an issue that prevented clients from connecting to the backend + when the app used [app_check] without [auth]. ## Kotlin @@ -188,9 +197,12 @@ Kotlin extensions library has no additional updates. - [feature] Added [`DatabaseReference#get()`]() - and [`Query#get()`](), which - return data from the server even when older data is available in the local cache. -- [fixed] Fixed a crash that occured on some Pixel devices when closing the network connection. + and + [`Query#get()`](), + which return data from the server even when older data is available in the + local cache. +- [fixed] Fixed a crash that occured on some Pixel devices when closing the + network connection. ## Kotlin @@ -199,8 +211,8 @@ Kotlin extensions library has no additional updates. # 19.5.1 -- [fixed] Fixed a regression introduced in v19.3.0 that may cause assertion failures, especially - when persistence is enabled. +- [fixed] Fixed a regression introduced in v19.3.0 that may cause assertion + failures, especially when persistence is enabled. ## Kotlin @@ -209,8 +221,8 @@ Kotlin extensions library has no additional updates. # 19.5.0 -- [feature] The SDK can now infer a default database URL even if it is omitted in the project's - configuration. +- [feature] The SDK can now infer a default database URL even if it is omitted + in the project's configuration. ## Kotlin @@ -219,7 +231,8 @@ Kotlin extensions library has no additional updates. # 19.4.0 -- [feature] Added support for connecting to the Firebase Emulator Suite via a new method, +- [feature] Added support for connecting to the Firebase Emulator Suite via a + new method, [`FirebaseDatabase#useEmulator()`](). ## Kotlin @@ -249,7 +262,8 @@ Kotlin extensions library has no additional updates. # 19.2.1 -- [changed] Internal changes to ensure functionality alignment with other SDK releases. +- [changed] Internal changes to ensure functionality alignment with other SDK + releases. ## Kotlin @@ -260,50 +274,55 @@ Kotlin extensions library has no additional updates. - [feature] Added support for type wildcards in [`GenericTypeIndicator`](/docs/reference/android/com/google/firebase/database/GenericTypeIndicator), - expanding our custom class serialization to include classes with wildcard generics. + expanding our custom class serialization to include classes with wildcard + generics. ## Kotlin -- [feature] The beta release of a [database] Android library with Kotlin extensions is now - available. The Kotlin extensions library transitively includes the base `firebase-database` - library. To learn more, visit the - [[database] KTX documentation](/docs/reference/kotlin/com/google/firebase/database/ktx/package-summary). +- [feature] The beta release of a [database] Android library with Kotlin + extensions is now available. The Kotlin extensions library transitively + includes the base `firebase-database` library. To learn more, visit the + [[database] KTX + documentation](/docs/reference/kotlin/com/google/firebase/database/ktx/package-summary). # 19.1.0 -- [feature] Added support for the [firebase_database] Emulator. To connect to the emulator, specify - "http://:/?ns=" as your Database URL (via +- [feature] Added support for the [firebase_database] Emulator. To connect to + the emulator, specify "http://:/?ns=" as your + Database URL (via [`FirebaseDatabase.getInstance(String)`]()). - Note that if you are running the [database] Emulator on "localhost" and connecting from an app - that is running inside an Android Emulator, the [database] Emulator host will be "10.0.2.2" - followed by its port. + Note that if you are running the [database] Emulator on "localhost" and + connecting from an app that is running inside an Android Emulator, the + [database] Emulator host will be "10.0.2.2" followed by its port. # 19.0.0 -- [changed] Versioned to add nullability annotations to improve the Kotlin developer experience. No - other changes. +- [changed] Versioned to add nullability annotations to improve the Kotlin + developer experience. No other changes. # 18.0.1 -- [changed] Internal changes to ensure functionality alignment with other SDK releases. +- [changed] Internal changes to ensure functionality alignment with other SDK + releases. - [fixed] The SDK now reports the correct version number (via [`FirebaseDatabase.getSdkVersion()`](). # 17.0.0 -- [changed] Internal changes that rely on an updated API to obtain authentication credentials. If - you use [firebase_auth], update to `firebase-auth` v17.0.0 or later to ensure functionality - alignment. +- [changed] Internal changes that rely on an updated API to obtain + authentication credentials. If you use [firebase_auth], update to + `firebase-auth` v17.0.0 or later to ensure functionality alignment. # 16.0.6 -- [fixed] Fixed a potential `NullPointerException` calling method `java.lang.String.toLowerCase`. +- [fixed] Fixed a potential `NullPointerException` calling method + `java.lang.String.toLowerCase`. (https://github.com/firebase/firebase-android-sdk/issues/179) # 16.0.3 -- [fixed] Fixed an initialization issue that prevented the Realtime Database client from being - initialized outside of Android's main thread. +- [fixed] Fixed an initialization issue that prevented the Realtime Database + client from being initialized outside of Android's main thread. # 16.0.2 @@ -312,4 +331,3 @@ Kotlin extensions library has no additional updates. # 16.0.1 - [changed] Added `Nullability` annotations to all public API classes/methods. - diff --git a/firebase-dataconnect/CHANGELOG.md b/firebase-dataconnect/CHANGELOG.md index 650003677d1..1d016dec091 100644 --- a/firebase-dataconnect/CHANGELOG.md +++ b/firebase-dataconnect/CHANGELOG.md @@ -1,7 +1,7 @@ # Unreleased -- [changed] Add grpc request header for platform name and sdk version - to enable metrics collection in cloud monitoring. +- [changed] Add grpc request header for platform name and sdk version to enable + metrics collection in cloud monitoring. ([#8486](https://github.com/firebase/firebase-android-sdk/pull/8486), [#8495](https://github.com/firebase/firebase-android-sdk/pull/8495)) - [changed] Add grpc request header for SQL Connect server affinity, to improve @@ -24,11 +24,11 @@ # 17.3.2 -- [fixed] Realtime query subscriptions now correctly throw an exception when - the Firebase Auth user changes, instead of silently stopping emitting. +- [fixed] Realtime query subscriptions now correctly throw an exception when the + Firebase Auth user changes, instead of silently stopping emitting. ([#8283](https://github.com/firebase/firebase-android-sdk/pull/8283)) -- [fixed] Realtime query subscriptions could fail abruptly if the auth - token changed while connected. +- [fixed] Realtime query subscriptions could fail abruptly if the auth token + changed while connected. ([#8312](https://github.com/firebase/firebase-android-sdk/pull/8312)) - [fixed] An infinite loop could occur when Auth and/or App Check tokens were refreshed. @@ -36,18 +36,18 @@ - [fixed] Expired Auth and/or App Check tokens were not automatically refreshed when rejected by the server upon connection. ([#8346](https://github.com/firebase/firebase-android-sdk/pull/8346)) -- [changed] Realtime query subscriptions now include SDK type metadata - (core vs. generated SDK) in request headers, matching the behavior of - standard query executions. +- [changed] Realtime query subscriptions now include SDK type metadata (core vs. + generated SDK) in request headers, matching the behavior of standard query + executions. ([#8356](https://github.com/firebase/firebase-android-sdk/pull/8356)) # 17.3.1 -- [fixed] Queries executed with FetchPolicy.CACHE_ONLY now fail, as expected, - if local caching is not enabled, instead of behaving like SERVER_ONLY. +- [fixed] Queries executed with FetchPolicy.CACHE_ONLY now fail, as expected, if + local caching is not enabled, instead of behaving like SERVER_ONLY. ([#8214](https://github.com/firebase/firebase-android-sdk/pull/8214)) -- [changed] Realtime query results now update the local cache as query - results are received. +- [changed] Realtime query results now update the local cache as query results + are received. ([#8220](https://github.com/firebase/firebase-android-sdk/pull/8220)) - [fixed] Realtime query subscriptions now update the Firebase Auth token if it refreshed during the lifetime of the connection, avoiding an UNAUTHENTICATED @@ -62,9 +62,9 @@ ([#8186](https://github.com/firebase/firebase-android-sdk/pull/8186)) - [changed] Internal fix of wasteful computation only meant for debug logging. ([#8126](https://github.com/firebase/firebase-android-sdk/pull/8126)) -- [changed] Internal change to replace `SecureRandom` with just `Random` - as the random numbers were not used in a security-sensitive context, - thus the performance costs of secure random number generation were unnecessary. +- [changed] Internal change to replace `SecureRandom` with just `Random` as the + random numbers were not used in a security-sensitive context, thus the + performance costs of secure random number generation were unnecessary. ([#8154](https://github.com/firebase/firebase-android-sdk/pull/8154)) # 17.2.2 @@ -95,8 +95,9 @@ [#7875](https://github.com/firebase/firebase-android-sdk/pull/7875), [#7885](https://github.com/firebase/firebase-android-sdk/pull/7885), [#7887](https://github.com/firebase/firebase-android-sdk/pull/7887)) -- [fixed] Fix UnsupportedOperationException when serializing lists of *nullable* AnyValue. - ([#7864](https://github.com/firebase/firebase-android-sdk/pull/7864)) +- [fixed] Fix UnsupportedOperationException when serializing lists of + *nullable* AnyValue. + ([#7864](https://github.com/firebase/firebase-android-sdk/pull/7864)) # 17.1.4 @@ -125,32 +126,36 @@ # 17.1.0 - [fixed] Addressed minor reference documentation issues (#7399) -- [changed] Added classes `EnumValue` and `EnumValueSerializer`. These classes are identical to - those produced by the Data Connect code generator; however, a future version of the code generator - will start using these classes from the SDK rather than generating them. +- [changed] Added classes `EnumValue` and `EnumValueSerializer`. These classes + are identical to those produced by the Data Connect code generator; however, a + future version of the code generator will start using these classes from the + SDK rather than generating them. ([#7153](https://github.com/firebase/firebase-android-sdk/pull/7153)) # 17.0.1 - [changed] Bumped internal dependencies. - [changed] Ignore unknown fields in response data instead of throwing a - `DataConnectOperationException` with message "decoding data from the server's response failed: An - unknown field for index -3" ([#7314](https://github.com/firebase/firebase-android-sdk/pull/7314)) + `DataConnectOperationException` with message "decoding data from the server's + response failed: An unknown field for index -3" + ([#7314](https://github.com/firebase/firebase-android-sdk/pull/7314)) # 17.0.0 -- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or higher. +- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or + higher. - [changed] Removed superfluous and noisy debug logging of operation variables. # 16.0.3 -- [fixed] Fixed occasional `NullPointerException` when registering with FirebaseAuth, leading to - erroneous UNAUTHENTICATED exceptions. +- [fixed] Fixed occasional `NullPointerException` when registering with + FirebaseAuth, leading to erroneous UNAUTHENTICATED exceptions. ([#7001](https://github.com/firebase/firebase-android-sdk/pull/7001)) # 16.0.2 -- [changed] Improved code robustness related to state management in `FirebaseDataConnect` objects. +- [changed] Improved code robustness related to state management in + `FirebaseDataConnect` objects. ([#6861](https://github.com/firebase/firebase-android-sdk/pull/6861)) # 16.0.1 @@ -159,9 +164,10 @@ # 16.0.0 -- [changed] DataConnectOperationException added, enabling support for partial errors; that is, any - data that was received and/or was able to be decoded is now available via the "response" property - of the exception thrown when a query or mutation is executed. +- [changed] DataConnectOperationException added, enabling support for partial + errors; that is, any data that was received and/or was able to be decoded is + now available via the "response" property of the exception thrown when a query + or mutation is executed. ([#6794](https://github.com/firebase/firebase-android-sdk/pull/6794)) # 16.0.0-beta05 @@ -172,38 +178,49 @@ # 16.0.0-beta04 - [changed] `FirebaseDataConnect.logLevel` type changed from `LogLevel` to - `MutableStateFlow`. This enables apps to "collect" the flow to, for example, update a UI - component when the log level changes. + `MutableStateFlow`. This enables apps to "collect" the flow to, for + example, update a UI component when the log level changes. ([#6586](https://github.com/firebase/firebase-android-sdk/pull/6586)) # 16.0.0-beta03 -- [changed] Requires Data Connect emulator version 1.6.1 or later for code generation. -- [feature] QueryRef and MutationRef gain methods copy(), withDataDeserializer(), and - withVariablesSerializer(). ([#6424](https://github.com/firebase/firebase-android-sdk/pull/6424)) -- [feature] GeneratedConnector gains methods copy(), operations(), queries(), and mutations(). +- [changed] Requires Data Connect emulator version 1.6.1 or later for code + generation. +- [feature] QueryRef and MutationRef gain methods copy(), + withDataDeserializer(), and withVariablesSerializer(). ([#6424](https://github.com/firebase/firebase-android-sdk/pull/6424)) -- [feature] GeneratedQuery and GeneratedMutation gain methods copy(), withVariablesSerializer(), and - withDataDeserializer(). ([#6424](https://github.com/firebase/firebase-android-sdk/pull/6424)) -- [feature] GeneratedConnector, GeneratedQuery, and GeneratedMutation now must implement equals() to - be a _logical_ comparsion, rather than just checking for _referencial_ equality using the `===` - operator. ([#6424](https://github.com/firebase/firebase-android-sdk/pull/6424)) -- [feature] ExperimentalFirebaseDataConnect annotation added, and some APIs have been annotated with - it, requiring applications that make use of these experimental APIs to opt-in using - `@OptIn(ExperimentalFirebaseDataConnect::class)` to suppress warnings or errors related to using - these experimental APIs. ([#6424](https://github.com/firebase/firebase-android-sdk/pull/6424)) and +- [feature] GeneratedConnector gains methods copy(), operations(), queries(), + and mutations(). + ([#6424](https://github.com/firebase/firebase-android-sdk/pull/6424)) +- [feature] GeneratedQuery and GeneratedMutation gain methods copy(), + withVariablesSerializer(), and withDataDeserializer(). + ([#6424](https://github.com/firebase/firebase-android-sdk/pull/6424)) +- [feature] GeneratedConnector, GeneratedQuery, and GeneratedMutation now must + implement equals() to be a _logical_ comparsion, rather than just checking for + _referencial_ equality using the `===` operator. + ([#6424](https://github.com/firebase/firebase-android-sdk/pull/6424)) +- [feature] ExperimentalFirebaseDataConnect annotation added, and some APIs have + been annotated with it, requiring applications that make use of these + experimental APIs to opt-in using + `@OptIn(ExperimentalFirebaseDataConnect::class)` to suppress warnings or + errors related to using these experimental APIs. + ([#6424](https://github.com/firebase/firebase-android-sdk/pull/6424)) and ([#6433](https://github.com/firebase/firebase-android-sdk/pull/6433)) -- [changed] Replaced java.util.Date with com.google.firebase.dataconnect.LocalDate. +- [changed] Replaced java.util.Date with + com.google.firebase.dataconnect.LocalDate. ([#6434](https://github.com/firebase/firebase-android-sdk/pull/6434)) -- [changed] `DateSerializer` removed, as it is superceded by `LocalDateSerializer`. As of Data - Connect emulator version 1.7.0, the generated Kotlin code uses - `com.google.firebase.dataconnect.LocalDate` instead of `java.util.Date`. Therefore, this version - of the SDK must be paired with code generated by version 1.7.0 (or later) of the Data Connect - emulator. ([#6513](https://github.com/firebase/firebase-android-sdk/pull/6513)) -- [feature] JavaTimeLocalDateSerializer and KotlinxDatetimeLocalDateSerializer added, to enable - using the standard "local date" classes `java.time.LocalDate` and/or `kotlinx.datetime.LocalDate` - instead of the bespoke `com.google.firebase.dataconnect.LocalDate` class for `Date` GraphQL fields - and variables. ([#6519](https://github.com/firebase/firebase-android-sdk/pull/6519)) +- [changed] `DateSerializer` removed, as it is superceded by + `LocalDateSerializer`. As of Data Connect emulator version 1.7.0, the + generated Kotlin code uses `com.google.firebase.dataconnect.LocalDate` instead + of `java.util.Date`. Therefore, this version of the SDK must be paired with + code generated by version 1.7.0 (or later) of the Data Connect emulator. + ([#6513](https://github.com/firebase/firebase-android-sdk/pull/6513)) +- [feature] JavaTimeLocalDateSerializer and KotlinxDatetimeLocalDateSerializer + added, to enable using the standard "local date" classes `java.time.LocalDate` + and/or `kotlinx.datetime.LocalDate` instead of the bespoke + `com.google.firebase.dataconnect.LocalDate` class for `Date` GraphQL fields + and variables. + ([#6519](https://github.com/firebase/firebase-android-sdk/pull/6519)) # 16.0.0-beta02 @@ -212,8 +229,9 @@ # 16.0.0-beta01 -- [feature] Initial release of the Data Connect SDK (public preview). Learn how to - [get started](https://firebase.google.com/docs/data-connect/android-sdk) with the SDK in your app. +- [feature] Initial release of the Data Connect SDK (public preview). Learn how + to [get started](https://firebase.google.com/docs/data-connect/android-sdk) + with the SDK in your app. - [feature] Added App Check support. ([#6176](https://github.com/firebase/firebase-android-sdk/pull/6176)) - [feature] Added `AnyValue` to support the `Any` custom GraphQL scalar type. @@ -222,11 +240,10 @@ ([#6307](https://github.com/firebase/firebase-android-sdk/pull/6307)) - [feature] Added ability to specify `SerializersModule` when serializing. ([#6297](https://github.com/firebase/firebase-android-sdk/pull/6297)) -- [feature] Added `CallerSdkType`, which enables tracking of the generated SDK usage. - ([#6298](https://github.com/firebase/firebase-android-sdk/pull/6298) and - [#6179](https://github.com/firebase/firebase-android-sdk/pull/6179)) +- [feature] Added `CallerSdkType`, which enables tracking of the generated SDK + usage. ([#6298](https://github.com/firebase/firebase-android-sdk/pull/6298) + and [#6179](https://github.com/firebase/firebase-android-sdk/pull/6179)) - [changed] Changed gRPC proto package to v1beta (was v1alpha). ([#6299](https://github.com/firebase/firebase-android-sdk/pull/6299)) - [changed] Added `equals` and `hashCode` methods to `GeneratedConnector`. ([#6177](https://github.com/firebase/firebase-android-sdk/pull/6177)) - diff --git a/firebase-datatransport/CHANGELOG.md b/firebase-datatransport/CHANGELOG.md index 1b407ee1e15..a4323c5c609 100644 --- a/firebase-datatransport/CHANGELOG.md +++ b/firebase-datatransport/CHANGELOG.md @@ -6,7 +6,8 @@ # 20.0.0 -- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or higher. +- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or + higher. # 19.0.0 @@ -14,5 +15,5 @@ # 18.2.0 -- [feature] Expose the transport factory as a qualified dependency based on the endpoint connected. - +- [feature] Expose the transport factory as a qualified dependency based on the + endpoint connected. diff --git a/firebase-dynamic-links/CHANGELOG.md b/firebase-dynamic-links/CHANGELOG.md index bcd189d6f4e..86f447ef017 100644 --- a/firebase-dynamic-links/CHANGELOG.md +++ b/firebase-dynamic-links/CHANGELOG.md @@ -5,8 +5,9 @@ # 22.1.0 -- [deprecated] `firebase-dynamic-links` is deprecated. For information about timelines and - alternatives, see the [irebase-dynamic-links deprecation FAQ](/support/dynamic-links-faq). +- [deprecated] `firebase-dynamic-links` is deprecated. For information about + timelines and alternatives, see the + [irebase-dynamic-links deprecation FAQ](/support/dynamic-links-faq). ## Kotlin @@ -24,14 +25,18 @@ The Kotlin extensions library has no additional updates. # 21.2.0 -- [changed] Added Kotlin extensions (KTX) APIs from `com.google.firebase:firebase-dynamic-links-ktx` - to `com.google.firebase:firebase-dynamic-links` under the `com.google.firebase.dynamiclinks` - package. For details, see the +- [changed] Added Kotlin extensions (KTX) APIs from + `com.google.firebase:firebase-dynamic-links-ktx` to + `com.google.firebase:firebase-dynamic-links` under the + `com.google.firebase.dynamiclinks` package. For details, see the [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration) -- [deprecated] All the APIs from `com.google.firebase:firebase-dynamic-links-ktx` have been added to - `com.google.firebase:firebase-dynamic-links` under the `com.google.firebase.dynamiclinks` package, - and all the Kotlin extensions (KTX) APIs in `com.google.firebase:firebase-dynamic-links-ktx` are - now deprecated. As early as April 2024, we'll no longer release KTX modules. For details, see the +- [deprecated] All the APIs from + `com.google.firebase:firebase-dynamic-links-ktx` have been added to + `com.google.firebase:firebase-dynamic-links` under the + `com.google.firebase.dynamiclinks` package, and all the Kotlin extensions + (KTX) APIs in `com.google.firebase:firebase-dynamic-links-ktx` are now + deprecated. As early as April 2024, we'll no longer release KTX modules. For + details, see the [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration) ## Kotlin @@ -41,7 +46,8 @@ The Kotlin extensions library has no additional updates. # 21.1.0 -- [unchanged] Updated to accommodate the release of the updated [ddls] Kotlin extensions library. +- [unchanged] Updated to accommodate the release of the updated [ddls] Kotlin + extensions library. ## Kotlin @@ -49,14 +55,16 @@ The Kotlin extensions library transitively includes the updated `firebase-dynami The Kotlin extensions library has the following additional updates: - [feature] Firebase now supports Kotlin coroutines. With this release, we added - [`kotlinx-coroutines-play-services`](https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-play-services/){: - .external} to `firebase-dynamic-links-ktx` as a transitive dependency, which exposes the + [`kotlinx-coroutines-play-services`](https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-play-services/){: .external} + to `firebase-dynamic-links-ktx` as a transitive dependency, which exposes the `Task.await()` suspend function to convert a - [`Task`](https://developers.google.com/android/guides/tasks) into a Kotlin coroutine. + [`Task`](https://developers.google.com/android/guides/tasks) into a Kotlin + coroutine. # 21.0.2 -- [changed] Updated dependency of `play-services-basement` to its latest version (v18.1.0). +- [changed] Updated dependency of `play-services-basement` to its latest version + (v18.1.0). ## Kotlin @@ -65,10 +73,11 @@ The Kotlin extensions library has no additional updates. # 21.0.1 -- [changed] Updated dependencies of `play-services-basement`, `play-services-base`, and - `play-services-tasks` to their latest versions (v18.0.0, v18.0.1, and v18.0.1, respectively). For - more information, see the [note](#basement18-0-0_base18-0-1_tasks18-0-1) at the top of this - release entry. +- [changed] Updated dependencies of `play-services-basement`, + `play-services-base`, and `play-services-tasks` to their latest versions + (v18.0.0, v18.0.1, and v18.0.1, respectively). For more information, see the + [note](#basement18-0-0_base18-0-1_tasks18-0-1) at the top of this release + entry. ## Kotlin @@ -77,9 +86,11 @@ The Kotlin extensions library has no additional updates. # 21.0.0 -- [changed] Due to its [dependency on Google Play services](/docs/android/android-play-services), - this SDK now requires devices and emulators to target API level 19 (KitKat) or higher and to use - Android 4.4 or higher. +- [changed] Due to its + [dependency on Google Play services](/docs/android/android-play-services), + this SDK now requires devices and emulators to target API level 19 (KitKat) or + higher and to use Android + 4.4 or higher. - [fixed] Fixed non-null annotation. #2336 ## Kotlin @@ -124,7 +135,8 @@ The Kotlin extensions library transitively includes the updated `firebase-storag the following additional updates: - [feature] Added API support for destructuring of - [`ShortDynamicLink`](/docs/reference/kotlin/com/google/firebase/dynamiclinks/ShortDynamicLink) and + [`ShortDynamicLink`](/docs/reference/kotlin/com/google/firebase/dynamiclinks/ShortDynamicLink) + and [`PendingDynamicLinkData`](/docs/reference/kotlin/com/google/firebase/dynamiclinks/PendingDynamicLinkData). # 19.1.0 @@ -135,19 +147,20 @@ the following additional updates: ## Kotlin -- [feature] The beta release of a [ddls] Android library with Kotlin extensions is now available. - The Kotlin extensions library transitively includes the base `firebase-dynamic-links` library. To - learn more, visit the - [[ddls] KTX documentation](/docs/reference/kotlin/com/google/firebase/dynamiclinks/ktx/package-summary). +- [feature] The beta release of a [ddls] Android library with Kotlin extensions + is now available. The Kotlin extensions library transitively includes the base + `firebase-dynamic-links` library. To learn more, visit the [[ddls] KTX + documentation](/docs/reference/kotlin/com/google/firebase/dynamiclinks/ktx/package-summary). # 19.0.0 -- [changed] Versioned to add nullability annotations to improve the Kotlin developer experience. No - other changes. +- [changed] Versioned to add nullability annotations to improve the Kotlin + developer experience. No other changes. # 16.2.0 -- [changed] Refactored code to ensure functionality alignment with other updated Firebase libraries. +- [changed] Refactored code to ensure functionality alignment with other updated + Firebase libraries. - [changed] Updated minSdkVersion to API level 16. # 16.1.7 @@ -156,8 +169,10 @@ the following additional updates: # 16.1.3 -- [fixed] Fixed an issue that caused short link creation to fail when creating links through - `FirebaseDynamicLinks.getInstance().createDynamicLink().buildShortDynamicLink()` using Google Play - Services 13.2.80 and FDL SDK 16.1.0. The issue only occurred when creating shortening links from - parameters, links created using preconstructed long links from `setLongLink()` were unaffected. - This fix also addresses issues in newer versions of Google Play Services. +- [fixed] Fixed an issue that caused short link creation to fail when creating + links through + `FirebaseDynamicLinks.getInstance().createDynamicLink().buildShortDynamicLink()` + using Google Play Services 13.2.80 and FDL SDK 16.1.0. The issue only occurred + when creating shortening links from parameters, links created using + preconstructed long links from `setLongLink()` were unaffected. This fix also + addresses issues in newer versions of Google Play Services. diff --git a/firebase-firestore/CHANGELOG.md b/firebase-firestore/CHANGELOG.md index 3074bf64c92..c00b71bc075 100644 --- a/firebase-firestore/CHANGELOG.md +++ b/firebase-firestore/CHANGELOG.md @@ -2,13 +2,19 @@ # 26.5.0 -- [changed] Increased the default gRPC flow control window size from 64KB to 256KB to speed up large document reads, and added support for configuring this window size via `FirebaseFirestoreSettings.Builder.setGrpcFlowControlWindow()`. -- [changed] Increased the gRPC maximum inbound message size limit to 17MB to support downloading Cloud Firestore documents of up to 16MB. +- [changed] Increased the default gRPC flow control window size from 64KB to + 256KB to speed up large document reads, and added support for configuring this + window size via + `FirebaseFirestoreSettings.Builder.setGrpcFlowControlWindow()`. +- [changed] Increased the gRPC maximum inbound message size limit to 17MB to + support downloading Cloud Firestore documents of up to 16MB. # 26.4.1 -- [changed] Added support for caching documents larger than 1MB by reading them in chunks from the local SQLite database. -- [changed] Prevent OutOfMemory errors in debug logging by truncating large protobuf payloads and strings. +- [changed] Added support for caching documents larger than 1MB by reading them + in chunks from the local SQLite database. +- [changed] Prevent OutOfMemory errors in debug logging by truncating large + protobuf payloads and strings. # 26.4.0 @@ -16,8 +22,11 @@ # 26.3.0 -- [feature] Added search stage support for `languageCode`, `offset`, `limit`, and `retrievalDepth`. -- [feature] Added support for Pipeline expressions `arraySlice`, `arraySliceToEnd`, `arrayFilter`, `arrayTransform` and `arrayTransformWithIndex`. +- [feature] Added search stage support for `languageCode`, `offset`, `limit`, + and `retrievalDepth`. +- [feature] Added support for Pipeline expressions `arraySlice`, + `arraySliceToEnd`, `arrayFilter`, `arrayTransform` and + `arrayTransformWithIndex`. [#7989](https://github.com/firebase/firebase-android-sdk/pull/7989) # 26.2.0 @@ -26,14 +35,17 @@ [#7999](https://github.com/firebase/firebase-android-sdk/pull/7999) - [feature] Added support for Pipeline expressions `ifNull` and `coalesce`. [#7976](https://github.com/firebase/firebase-android-sdk/pull/7976) -- [feature] Added support for `timestampTruncate`, `timestampDiff`, and `timestampExtract` Pipeline expressions. +- [feature] Added support for `timestampTruncate`, `timestampDiff`, and + `timestampExtract` Pipeline expressions. [#7955](https://github.com/firebase/firebase-android-sdk/pull/7955) - [feature] Pipeline operations are GA now. -- [feature] Added support for Pipeline Subqueries, including `define` and `variable` expressions. +- [feature] Added support for Pipeline Subqueries, including `define` and + `variable` expressions. [#7736](https://github.com/firebase/firebase-android-sdk/pull/7736) - [feature] Added support for Pipeline expressions `nor` and `switchOn`. [#7903](https://github.com/firebase/firebase-android-sdk/pull/7903) -- [feature] Added support for `first`, `last`, `arrayAgg`, and `arrayAggDistinct` Pipeline expressions. +- [feature] Added support for `first`, `last`, `arrayAgg`, and + `arrayAggDistinct` Pipeline expressions. [#7893](https://github.com/firebase/firebase-android-sdk/pull/7893) - [feature] Added support for `rand` and `trunc` Pipeline expressions. [#7886](https://github.com/firebase/firebase-android-sdk/pull/7886) @@ -41,29 +53,32 @@ [#7985](https://github.com/firebase/firebase-android-sdk/pull/7985) - [feature] Add public preview support for full-text search and geo search. [#7949](https://github.com/firebase/firebase-android-sdk/pull/7949) -- [feature] Added support for `ltrim`, `rtrim`, `stringIndexOf`, `stringRepeat`, `stringReplaceOne`, and `stringReplaceAll` Pipeline expressions. +- [feature] Added support for `ltrim`, `rtrim`, `stringIndexOf`, `stringRepeat`, + `stringReplaceOne`, and `stringReplaceAll` Pipeline expressions. [#7978](https://github.com/firebase/firebase-android-sdk/pull/7978) -- [feature] Added support for `mapGet` `mapSet`, `mapEntries`, and `mapKeys` Pipeline expressions. +- [feature] Added support for `mapGet` `mapSet`, `mapEntries`, and `mapKeys` + Pipeline expressions. [#7987](https://github.com/firebase/firebase-android-sdk/pull/7987) # 26.1.2 -- [feature] Added support for Pipeline expressions `arrayFirst`, `arrayFirstN`, `arrayLast`, - `arrayLastN`, `arrayMinimum`, `arrayMinimumN`, `arrayMaximum`, `arrayMaximumN`, `arrayIndexOf`, - `arrayLastIndexOf` and `arrayIndexOfAll`. +- [feature] Added support for Pipeline expressions `arrayFirst`, `arrayFirstN`, + `arrayLast`, `arrayLastN`, `arrayMinimum`, `arrayMinimumN`, `arrayMaximum`, + `arrayMaximumN`, `arrayIndexOf`, `arrayLastIndexOf` and `arrayIndexOfAll`. [#7836](//github.com/firebase/firebase-android-sdk/pull/7836) -- [fixed] Fix a performance regression in `ObjectValue.equals()` that caused exponential execution - time for large or deeply nested documents. +- [fixed] Fix a performance regression in `ObjectValue.equals()` that caused + exponential execution time for large or deeply nested documents. [#7877](https://github.com/firebase/firebase-android-sdk/issues/7877) # 26.1.1 -- [feature] Added support for `regexFind` and `regexFindAll` Pipeline expressions. +- [feature] Added support for `regexFind` and `regexFindAll` Pipeline + expressions. [#7669](https://github.com/firebase/firebase-android-sdk/pull/7669) - [changed] Updated `Expression.alias()` to return `AliasedExpression`. -- [removed] Removed `isNan`, `isNotNan`, `isNull`, and `isNotNull` factory methods from `Expression`. - Use `equal(Double.NaN)`, `notEqual(Double.NaN)`, `equal(nullValue())`, and `notEqual(nullValue())` - respectively. +- [removed] Removed `isNan`, `isNotNan`, `isNull`, and `isNotNull` factory + methods from `Expression`. Use `equal(Double.NaN)`, `notEqual(Double.NaN)`, + `equal(nullValue())`, and `notEqual(nullValue())` respectively. # 26.1.0 @@ -72,15 +87,15 @@ # 26.0.2 -- [changed] Improve query performance in large result sets by replacing the deprecated AsyncTask - thread pool with a self-managed thread pool. +- [changed] Improve query performance in large result sets by replacing the + deprecated AsyncTask thread pool with a self-managed thread pool. [#7376](//github.com/firebase/firebase-android-sdk/issues/7376) -- [changed] Improve query performance via internal memoization of calculated document data. - [#7370](//github.com/firebase/firebase-android-sdk/issues/7370) -- [changed] Improve query performance by avoiding excessive Comparator instance creation. - [#7388](//github.com/firebase/firebase-android-sdk/pull/7388) -- [changed] Improve query performance by using an unsorted HashMap instead of a sorted TreeMap. - [#7389](//github.com/firebase/firebase-android-sdk/pull/7389) +- [changed] Improve query performance via internal memoization of calculated + document data. [#7370](//github.com/firebase/firebase-android-sdk/issues/7370) +- [changed] Improve query performance by avoiding excessive Comparator instance + creation. [#7388](//github.com/firebase/firebase-android-sdk/pull/7388) +- [changed] Improve query performance by using an unsorted HashMap instead of a + sorted TreeMap. [#7389](//github.com/firebase/firebase-android-sdk/pull/7389) - [changed] Add `java.time.Instant` support to `DocumentSnapshot.toObject()`, `DocumentReference.set()`, `DocumentReference.update()`, and similar. [#6235](//github.com/firebase/firebase-android-sdk/pull/6235) @@ -88,26 +103,29 @@ # 26.0.1 - [changed] Bumped internal dependencies. -- [changed] Improve the performance of queries in collections that contain many deleted documents. +- [changed] Improve the performance of queries in collections that contain many + deleted documents. [#7295](//github.com/firebase/firebase-android-sdk/issues/7295) # 26.0.0 -- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or higher. -- [removed] **Breaking Change**: Stopped releasing the deprecated Kotlin extensions (KTX) module and - removed it from the Firebase Android BoM. Instead, use the KTX APIs from the main module. For - details, see the +- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or + higher. +- [removed] **Breaking Change**: Stopped releasing the deprecated Kotlin + extensions (KTX) module and removed it from the Firebase Android BoM. Instead, + use the KTX APIs from the main module. For details, see the [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration). -- [fixed] Further improved performance of UTF-8 string ordering logic, which had degraded in v25.1.2 - and received some improvements in v25.1.3. +- [fixed] Further improved performance of UTF-8 string ordering logic, which had + degraded in v25.1.2 and received some improvements in v25.1.3. [#7053](//github.com/firebase/firebase-android-sdk/issues/7053) -- [changed] Use the `compare()` methods defined in standard `Integer`, `Long`, and `Character` - classes instead of Firestore's bespoke implementations. +- [changed] Use the `compare()` methods defined in standard `Integer`, `Long`, + and `Character` classes instead of Firestore's bespoke implementations. [#7109](//github.com/firebase/firebase-android-sdk/pull/7109) # 25.1.4 -- [fixed] Fixed the `null` value handling in `whereNotEqualTo` and `whereNotIn` filters. +- [fixed] Fixed the `null` value handling in `whereNotEqualTo` and `whereNotIn` + filters. - [fixed] Catch exception when stream is already cancelled during close. [#6894](//github.com/firebase/firebase-android-sdk/pull/6894) @@ -118,8 +136,9 @@ Kotlin extensions library has no additional updates. # 25.1.3 -- [fixed] Use lazy encoding in UTF-8 encoded byte comparison for strings to solve performance - issues. [#6706](//github.com/firebase/firebase-android-sdk/pull/6706) +- [fixed] Use lazy encoding in UTF-8 encoded byte comparison for strings to + solve performance issues. + [#6706](//github.com/firebase/firebase-android-sdk/pull/6706) - [changed] Updated `protolite-well-known-types` dependency to `18.0.1`. [#6716] ## Kotlin @@ -174,8 +193,8 @@ Kotlin extensions library has no additional updates. # 24.11.0 -- [feature] Enable snapshot listener option to retrieve data from local cache only. - [#5690](//github.com/firebase/firebase-android-sdk/pull/5690) +- [feature] Enable snapshot listener option to retrieve data from local cache + only. [#5690](//github.com/firebase/firebase-android-sdk/pull/5690) ## Kotlin @@ -196,8 +215,9 @@ Kotlin extensions library has no additional updates. # 24.10.2 - [changed] Internal test improvements. -- [fixed] Fixed the `@Exclude` annotation doesn't been propagated to Kotlin's corresponding bridge - methods. [#5626](//github.com/firebase/firebase-android-sdk/pull/5626) +- [fixed] Fixed the `@Exclude` annotation doesn't been propagated to Kotlin's + corresponding bridge methods. + [#5626](//github.com/firebase/firebase-android-sdk/pull/5626) ## Kotlin @@ -208,9 +228,10 @@ Kotlin extensions library has no additional updates. - [fixed] Fixed an issue caused by calling mutation on immutable map object. [#5573](//github.com/firebase/firebase-android-sdk/pull/5573) -- [fixed] Fixed an issue in the local cache synchronization logic where all locally-cached documents - that matched a resumed query would be unnecessarily re-downloaded; with the fix it now only - downloads the documents that are known to be out-of-sync. +- [fixed] Fixed an issue in the local cache synchronization logic where all + locally-cached documents that matched a resumed query would be unnecessarily + re-downloaded; with the fix it now only downloads the documents that are known + to be out-of-sync. [#5506](//github.com/firebase/firebase-android-sdk/pull/5506) - [fixed] Fixed an issue where GC runs into a infinite loop in a certain case. [#5417](https://github.com/firebase/firebase-android-sdk/issues/5417) @@ -222,8 +243,8 @@ Kotlin extensions library has no additional updates. # 24.10.0 -- [fixed] Fixed the `DocumentSnapshot` equals method to not consider internal state when comparing - snapshots. +- [fixed] Fixed the `DocumentSnapshot` equals method to not consider internal + state when comparing snapshots. # 24.9.1 @@ -237,14 +258,16 @@ Kotlin extensions library has no additional updates. # 24.9.0 -- [changed] Added Kotlin extensions (KTX) APIs from `com.google.firebase:firebase-firestore-ktx` to - `com.google.firebase:firebase-firestore` under the `com.google.firebase.firestore` package. For - details, see the +- [changed] Added Kotlin extensions (KTX) APIs from + `com.google.firebase:firebase-firestore-ktx` to + `com.google.firebase:firebase-firestore` under the + `com.google.firebase.firestore` package. For details, see the [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration) -- [deprecated] All the APIs from `com.google.firebase:firebase-firestore-ktx` have been added to - `com.google.firebase:firebase-firestore` under the `com.google.firebase.firestore` package, and - all the Kotlin extensions (KTX) APIs in `com.google.firebase:firebase-firestore-ktx` are now - deprecated. As early as April 2024, we'll no longer release KTX modules. For details, see the +- [deprecated] All the APIs from `com.google.firebase:firebase-firestore-ktx` + have been added to `com.google.firebase:firebase-firestore` under the + `com.google.firebase.firestore` package, and all the Kotlin extensions (KTX) + APIs in `com.google.firebase:firebase-firestore-ktx` are now deprecated. As + early as April 2024, we'll no longer release KTX modules. For details, see the [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration) ## Kotlin @@ -254,8 +277,8 @@ Kotlin extensions library has no additional updates. # 24.8.1 -- [fixed] Disabled `GradleMetadataPublishing` to fix breakage of the Kotlin extensions library. - [#5337] +- [fixed] Disabled `GradleMetadataPublishing` to fix breakage of the Kotlin + extensions library. [#5337] ## Kotlin @@ -264,8 +287,8 @@ Kotlin extensions library has no additional updates. # 24.8.0 -- [feature] Added the option to allow the SDK to create cache indexes automatically to improve query - execution locally. See +- [feature] Added the option to allow the SDK to create cache indexes + automatically to improve query execution locally. See [`db.getPersistentCacheIndexManager().enableIndexAutoCreation()`]() ([GitHub [#4987](//github.com/firebase/firebase-android-sdk/pull/4987){: .external}). @@ -283,7 +306,8 @@ Kotlin extensions library has no additional updates. - [feature] Expose MultiDb support in API. [#4015](//github.com/firebase/firebase-android-sdk/issues/4015) -- [fixed] Fixed a thread interference issue that may lead to a ConcurrentModificationException. +- [fixed] Fixed a thread interference issue that may lead to a + ConcurrentModificationException. (GitHub [#5091](//github.com/firebase/firebase-android-sdk/issues/5091){: .external}) ## Kotlin @@ -293,10 +317,11 @@ Kotlin extensions library has no additional updates. # 24.6.1 -- [feature] Implemented an optimization in the local cache synchronization logic that reduces the - number of billed document reads when documents were deleted on the server while the client was not - actively listening to the query (e.g. while the client was offline). (GitHub - [#4982](//github.com/firebase/firebase-android-sdk/pull/4982){: .external}) +- [feature] Implemented an optimization in the local cache synchronization logic + that reduces the number of billed document reads when documents were deleted + on the server while the client was not actively listening to the query (e.g. + while the client was offline). + (GitHub [#4982](//github.com/firebase/firebase-android-sdk/pull/4982){: .external}) ## Kotlin @@ -305,8 +330,8 @@ Kotlin extensions library has no additional updates. # 24.6.0 -- [fixed] Fixed stack overflow caused by deeply nested server timestamps. (GitHub - [#4702](//github.com/firebase/firebase-android-sdk/issues/4702){: .external}) +- [fixed] Fixed stack overflow caused by deeply nested server timestamps. + (GitHub [#4702](//github.com/firebase/firebase-android-sdk/issues/4702){: .external}) - [feature] Added new [cache config APIs]() to customize the SDK's cache setup. @@ -318,7 +343,8 @@ Kotlin extensions library has no additional updates. `isPersistenceEnabled` and `getCacheSizeBytes`. - [deprecated] Deprecated the following APIs from [`FirebaseFirestoreSettings.Builder`]():
- `isPersistenceEnabled`, `getCacheSizeBytes`, `setPersistenceEnabled`, and `setCacheSizeBytes`. + `isPersistenceEnabled`, `getCacheSizeBytes`, `setPersistenceEnabled`, and + `setCacheSizeBytes`. - [changed] Internal changes to ensure alignment with other SDK releases. ## Kotlin @@ -328,8 +354,8 @@ Kotlin extensions library has no additional updates. # 24.5.0 -- [fixed] Fixed stack overflow caused by deeply nested server timestamps. (GitHub - [#4702](//github.com/firebase/firebase-android-sdk/issues/4702){: .external}) +- [fixed] Fixed stack overflow caused by deeply nested server timestamps. + (GitHub [#4702](//github.com/firebase/firebase-android-sdk/issues/4702){: .external}) ## Kotlin @@ -337,7 +363,8 @@ Kotlin extensions library has no additional updates. [`Query.dataObjects()`](/docs/reference/kotlin/com/google/firebase/firestore/ktx/package-summary#dataObjects) and [`DocumentReference.dataObjects()`](/docs/reference/kotlin/com/google/firebase/firestore/ktx/package-summary#dataObjects_1) - Kotlin Flows to listen for realtime updates and convert its values to a specific type. + Kotlin Flows to listen for realtime updates and convert its values to a + specific type. # 24.4.5 @@ -352,7 +379,8 @@ Kotlin extensions library has no additional updates. - [changed] Relaxed certain query validations performed by the SDK ([GitHub Issue #4231](//github.com/firebase/firebase-android-sdk/issues/4231)). -- [changed] Updated gRPC to 1.52.1, and updated JavaLite, protoc, and protobuf-java-util to 3.21.11. +- [changed] Updated gRPC to 1.52.1, and updated JavaLite, protoc, and + protobuf-java-util to 3.21.11. ## Kotlin @@ -362,7 +390,8 @@ Kotlin extensions library has no additional updates. # 24.4.3 - [fixed] Fixed a potential high-memory usage issue. -- [fixed] Fixed an issue that stopped some performance optimization from being applied. +- [fixed] Fixed an issue that stopped some performance optimization from being + applied. ## Kotlin @@ -371,7 +400,8 @@ Kotlin extensions library has no additional updates. # 24.4.2 -- [fixed] Fixed an issue that stopped some performance optimization from being applied. +- [fixed] Fixed an issue that stopped some performance optimization from being + applied. ## Kotlin @@ -380,10 +410,12 @@ Kotlin extensions library has no additional updates. # 24.4.1 -- [fixed] Fix `FAILED_PRECONDITION` when writing to a deleted document in a transaction. (#5871) -- [fixed] Fixed [firestore] failing to raise initial snapshot from an empty local cache result. - (#4207) -- [fixed] Removed invalid suggestions to use `GenericTypeIndicator` from error messages. (#222) +- [fixed] Fix `FAILED_PRECONDITION` when writing to a deleted document in a + transaction. (#5871) +- [fixed] Fixed [firestore] failing to raise initial snapshot from an empty + local cache result. (#4207) +- [fixed] Removed invalid suggestions to use `GenericTypeIndicator` from error + messages. (#222) - [changed] Updated dependency of `io.grpc.*` to its latest version (v1.50.2). ## Kotlin @@ -394,8 +426,9 @@ Kotlin extensions library has no additional updates. # 24.4.0 - [feature] Added - [`Query.count()`](), which - fetches the number of documents in the result set without actually downloading the documents. + [`Query.count()`](), + which fetches the number of documents in the result set without actually + downloading the documents. ## Kotlin @@ -403,10 +436,11 @@ The Kotlin extensions library transitively includes the updated `firebase-firest Kotlin extensions library has the following additional updates: - [feature] Firebase now supports Kotlin coroutines. With this release, we added - [`kotlinx-coroutines-play-services`](https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-play-services/){: - .external} to `firebase-firestore-ktx` as a transitive dependency, which exposes the + [`kotlinx-coroutines-play-services`](https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-play-services/){: .external} + to `firebase-firestore-ktx` as a transitive dependency, which exposes the `Task.await()` suspend function to convert a - [`Task`](https://developers.google.com/android/guides/tasks) into a Kotlin coroutine. + [`Task`](https://developers.google.com/android/guides/tasks) into a Kotlin + coroutine. # 24.3.1 @@ -418,7 +452,8 @@ The Kotlin extensions library transitively includes the updated `firebase-firest # 24.3.0 -- [changed] Updated dependency of `play-services-basement` to its latest version (v18.1.0). +- [changed] Updated dependency of `play-services-basement` to its latest version + (v18.1.0). ## Kotlin @@ -433,7 +468,8 @@ Kotlin extensions library also has the following additional updates: # 24.2.2 -- [fixed] Fixed an issue in `waitForPendingWrites()` that could lead to a `NullPointerException`. +- [fixed] Fixed an issue in `waitForPendingWrites()` that could lead to a + `NullPointerException`. ## Kotlin @@ -461,7 +497,8 @@ Kotlin extensions library has no additional updates. # 24.1.2 -- [fixed] Fixed an issue where patching multiple fields shadows each other. (#3528). +- [fixed] Fixed an issue where patching multiple fields shadows each other. + (#3528). ## Kotlin @@ -470,8 +507,9 @@ Kotlin extensions library has no additional updates. # 24.1.1 -- [fixed] Fixed an issue in the beta version of the index engine that might cause [firestore] to - exclude document results for limit queries with local modifications. +- [fixed] Fixed an issue in the beta version of the index engine that might + cause [firestore] to exclude document results for limit queries with local + modifications. - [changed] [firestore] can now serialize objects with `android.net.Uri`s. ## Kotlin @@ -481,10 +519,10 @@ Kotlin extensions library has no additional updates. # 24.1.0 -- [feature] Added beta support for indexed query execution. You can enable indexes by invoking - `FirebaseFirestore.setIndexConfiguration()` with the JSON index definition exported by the - [firebase_cli]. Queries against the cache are executed using an index once the asynchronous index - generation completes. +- [feature] Added beta support for indexed query execution. You can enable + indexes by invoking `FirebaseFirestore.setIndexConfiguration()` with the JSON + index definition exported by the [firebase_cli]. Queries against the cache are + executed using an index once the asynchronous index generation completes. - [fixed] Fixed missing document fields issue with offline overlays. (#3528). ## Kotlin @@ -494,19 +532,21 @@ Kotlin extensions library has no additional updates. # 24.0.2 -- [fixed] Fixed a [firebase_app_check] issue that caused [firestore] listeners to stop working and - receive a `Permission Denied` error. This issue only occurred if the [app_check] expiration time - was set to under an hour. -- [fixed] Fixed a potential problem during the shutdown of [firestore] that prevented the shutdown - from proceeding if a network connection was opened right before. -- [fixed] Fixed an NPE issue where mutations with multiple documents were not handled correctly - during previous mutation acknowledgement. (#3490). -- [changed] Queries are now sent to the backend before the SDK starts local processing, which - reduces overall query latency. -- [changed] Updated dependencies of `play-services-basement`, `play-services-base`, and - `play-services-tasks` to their latest versions (v18.0.0, v18.0.1, and v18.0.1, respectively). For - more information, see the [note](#basement18-0-0_base18-0-1_tasks18-0-1) at the top of this - release entry. +- [fixed] Fixed a [firebase_app_check] issue that caused [firestore] listeners + to stop working and receive a `Permission Denied` error. This issue only + occurred if the [app_check] expiration time was set to under an hour. +- [fixed] Fixed a potential problem during the shutdown of [firestore] that + prevented the shutdown from proceeding if a network connection was opened + right before. +- [fixed] Fixed an NPE issue where mutations with multiple documents were not + handled correctly during previous mutation acknowledgement. (#3490). +- [changed] Queries are now sent to the backend before the SDK starts local + processing, which reduces overall query latency. +- [changed] Updated dependencies of `play-services-basement`, + `play-services-base`, and `play-services-tasks` to their latest versions + (v18.0.0, v18.0.1, and v18.0.1, respectively). For more information, see the + [note](#basement18-0-0_base18-0-1_tasks18-0-1) at the top of this release + entry. ## Kotlin @@ -516,7 +556,8 @@ Kotlin extensions library has no additional updates. # 24.0.1 - [changed] Optimized performance for offline usage. -- [changed] Optimized performance for queries with collections that contain subcollections. +- [changed] Optimized performance for queries with collections that contain + subcollections. ## Kotlin @@ -525,9 +566,10 @@ Kotlin extensions library has no additional updates. # 24.0.0 -- [changed] This SDK now requires devices and emulators to target API level 19 (KitKat) or higher - and to use Android 4.4 or higher. This is due to an update in its gRPC dependency version and to - align with requirements of other Firebase libraries. +- [changed] This SDK now requires devices and emulators to target API level 19 + (KitKat) or higher and to use Android 4.4 or higher. This is due to an update + in its gRPC dependency version and to align with requirements of other + Firebase libraries. - [feature] Added support for [firebase_app_check]. ## Kotlin @@ -547,8 +589,8 @@ Kotlin extensions library has no additional updates. # 23.0.3 -- [fixed] Fixed an issue that was causing failures when a data bundle with multi-byte Unicode - characters was loaded. +- [fixed] Fixed an issue that was causing failures when a data bundle with + multi-byte Unicode characters was loaded. ## Kotlin @@ -566,8 +608,8 @@ Kotlin extensions library has no additional updates. # 23.0.1 -- [changed] The SDK now tries to immediately establish a connection to the backend when the app - enters the foreground. +- [changed] The SDK now tries to immediately establish a connection to the + backend when the app enters the foreground. ## Kotlin @@ -586,7 +628,8 @@ Kotlin extensions library has no additional updates. # 22.1.2 -- [changed] Internal changes in preparation for future support of dynamic feature modules. +- [changed] Internal changes in preparation for future support of dynamic + feature modules. ## Kotlin @@ -595,10 +638,11 @@ Kotlin extensions library has no additional updates. # 22.1.1 -- [fixed] Fixed an issue that dropped the limit for queries loaded from [firestore] bundles that - were generated by the NodeJS SDK. -- [fixed] Fixed a bug where local cache inconsistencies were unnecessarily being resolved, causing - the `Task` objects returned from `get()` invocations to never complete. #2404 +- [fixed] Fixed an issue that dropped the limit for queries loaded from + [firestore] bundles that were generated by the NodeJS SDK. +- [fixed] Fixed a bug where local cache inconsistencies were unnecessarily being + resolved, causing the `Task` objects returned from `get()` invocations to + never complete. #2404 ## Kotlin @@ -611,8 +655,9 @@ Kotlin extensions library has no additional updates. [`FirebaseFirestore.loadBundle()`]() and [`FirebaseFirestore.getNamedQuery()`](). - Bundles contain pre-packaged data produced with the Firebase Admin Node.js SDK and can be used to - populate the cache for [firestore] without the need to read documents from the backend. + Bundles contain pre-packaged data produced with the Firebase Admin Node.js SDK + and can be used to populate the cache for [firestore] without the need to read + documents from the backend. ## Kotlin @@ -621,9 +666,10 @@ Kotlin extensions library has no additional updates. # 22.0.2 -- [changed] A write to a document that contains `FieldValue` transforms is no longer split into two - separate operations. This reduces the number of writes that the backend performs and allows each - `WriteBatch` to hold 500 writes regardless of how many `FieldValue` transformations are attached. +- [changed] A write to a document that contains `FieldValue` transforms is no + longer split into two separate operations. This reduces the number of writes + that the backend performs and allows each `WriteBatch` to hold 500 writes + regardless of how many `FieldValue` transformations are attached. ## Kotlin @@ -632,9 +678,9 @@ Kotlin extensions library has no additional updates. # 22.0.1 -- [changed] Removed excess validation of null and NaN values in query filters. This more closely - aligns the SDK with the [firestore] backend, which has always accepted null and NaN for all - operators. +- [changed] Removed excess validation of null and NaN values in query filters. + This more closely aligns the SDK with the [firestore] backend, which has + always accepted null and NaN for all operators. ## Kotlin @@ -643,9 +689,9 @@ Kotlin extensions library has no additional updates. # 22.0.0 -- [changed] Removed the deprecated `timestampsInSnapshotsEnabled` setting. Any timestamp in a - [firestore] document is now returned as a `Timestamp`. To convert `Timestamp` classes to - `java.util.Date`, use +- [changed] Removed the deprecated `timestampsInSnapshotsEnabled` setting. Any + timestamp in a [firestore] document is now returned as a `Timestamp`. To + convert `Timestamp` classes to `java.util.Date`, use [`Timestamp.toDate()`](). ## Kotlin @@ -670,15 +716,13 @@ Kotlin extensions library has no additional updates. [`Query.whereNotEqualTo()`]() query operators. - - `Query.whereNotIn()` finds documents where a specified field's value is not in a specified - array. - - `Query.whereNotEqualTo()` finds documents where a specified field's value does not equal the - specified value. - - Neither query operator finds documents where the specified field isn't present. - -- [fixed] Fixed an issue that caused poor performance for queries that filtered results using nested - array values. + - `Query.whereNotIn()` finds documents where a specified field's value is not + in a specified array. + - `Query.whereNotEqualTo()` finds documents where a specified field's value + does not equal the specified value. Neither query operator finds documents + where the specified field isn't present. +- [fixed] Fixed an issue that caused poor performance for queries that filtered + results using nested array values. ## Kotlin @@ -687,11 +731,13 @@ Kotlin extensions library has no additional updates. # 21.6.0 -- [fixed] Removed a delay that may have prevented [firestore] from immediately reestablishing a - network connection if a connectivity change occurred while the app was in the background. -- [fixed] Fixed an issue that may have prevented the client from connecting to the backend - immediately after a user signed in. -- [feature] Added support for connecting to the Firebase Emulator Suite via a new method, +- [fixed] Removed a delay that may have prevented [firestore] from immediately + reestablishing a network connection if a connectivity change occurred while + the app was in the background. +- [fixed] Fixed an issue that may have prevented the client from connecting to + the backend immediately after a user signed in. +- [feature] Added support for connecting to the Firebase Emulator Suite via a + new method, [`FirebaseFirestore#useEmulator()`](). ## Kotlin @@ -701,9 +747,10 @@ Kotlin extensions library has no additional updates. # 21.5.0 -- [changed] Updated the protocol buffer dependency to the newer `protobuf-javalite` artifact. The - new artifact is incompatible with the old one, so this library needed to be upgraded to avoid - conflicts. No developer action is necessary. +- [changed] Updated the protocol buffer dependency to the newer + `protobuf-javalite` artifact. The new artifact is incompatible with the old + one, so this library needed to be upgraded to avoid conflicts. No developer + action is necessary. ## Kotlin @@ -712,8 +759,8 @@ Kotlin extensions library has no additional updates. # 21.4.3 -- [changed] [firestore] now limits the number of concurrent document lookups it will perform when - resolving inconsistencies in the local cache. +- [changed] [firestore] now limits the number of concurrent document lookups it + will perform when resolving inconsistencies in the local cache. ## Kotlin @@ -722,9 +769,9 @@ Kotlin extensions library has no additional updates. # 21.4.2 -- [changed] Removed Guava dependency from the SDK. This change is the first step in eliminating - crashes caused by apps that depend on the wrong flavor of Guava. - ([Issue #1125](//github.com/firebase/firebase-android-sdk/issues/1125)) +- [changed] Removed Guava dependency from the SDK. This change is the first step + in eliminating crashes caused by apps that depend on the wrong flavor of + Guava. ([Issue #1125](//github.com/firebase/firebase-android-sdk/issues/1125)) ## Kotlin @@ -733,11 +780,12 @@ Kotlin extensions library has no additional updates. # 21.4.1 -- [fixed] Fixed a performance regression introduced by the addition of `Query.limitToLast(n: long)` - in [firestore] v21.3.1. -- [changed] Changed the in-memory representation of [firestore] documents to reduce memory - allocations and improve performance. Calls to `DocumentSnapshot.getData()` and - `DocumentSnapshot.toObject()` will see the biggest improvement. +- [fixed] Fixed a performance regression introduced by the addition of + `Query.limitToLast(n: long)` in [firestore] v21.3.1. +- [changed] Changed the in-memory representation of [firestore] documents to + reduce memory allocations and improve performance. Calls to + `DocumentSnapshot.getData()` and `DocumentSnapshot.toObject()` will see the + biggest improvement. ## Kotlin @@ -746,11 +794,11 @@ Kotlin extensions library has no additional updates. # 21.4.0 -- [feature] Cloud Firestore previously required that every document read in a transaction must also - be written. This requirement has been removed, and you can now read a document in a transaction - without writing to it. -- [changed] Cloud Firestore now recovers more quickly when connections suffering packet loss return - to normal. +- [feature] Cloud Firestore previously required that every document read in a + transaction must also be written. This requirement has been removed, and you + can now read a document in a transaction without writing to it. +- [changed] Cloud Firestore now recovers more quickly when connections suffering + packet loss return to normal. ## Kotlin @@ -759,7 +807,8 @@ Kotlin extensions library has no additional updates. # 21.3.1 -- [feature] Added `Query.limitToLast(n: long)`, which returns the last `n` documents as the result. +- [feature] Added `Query.limitToLast(n: long)`, which returns the last `n` + documents as the result. ## Kotlin @@ -768,14 +817,14 @@ Kotlin extensions library has no additional updates. # 21.3.0 -- [feature] Added `Query.whereIn()` and `Query.whereArrayContainsAny()` query operators. - `Query.whereIn()` finds documents where a specified field’s value is IN a specified array. - `Query.whereArrayContainsAny()` finds documents where a specified field is an array and contains - ANY element of a specified array. -- [changed] Improved the performance of repeatedly executed queries. Recently executed queries - should see dramatic improvements. This benefit is reduced if changes accumulate while the query is - inactive. Queries that use the `limit()` API may not always benefit, depending on the accumulated - changes. +- [feature] Added `Query.whereIn()` and `Query.whereArrayContainsAny()` query + operators. `Query.whereIn()` finds documents where a specified field’s value + is IN a specified array. `Query.whereArrayContainsAny()` finds documents where + a specified field is an array and contains ANY element of a specified array. +- [changed] Improved the performance of repeatedly executed queries. Recently + executed queries should see dramatic improvements. This benefit is reduced if + changes accumulate while the query is inactive. Queries that use the `limit()` + API may not always benefit, depending on the accumulated changes. ## Kotlin @@ -784,12 +833,13 @@ Kotlin extensions library has no additional updates. # 21.2.1 -- [fixed] Fixed an issue where devices targeting Android API level 19 or earlier would crash when - they were unable to connect to [firestore]. -- [fixed] Fixed a race condition in Documents where access to `getData` and `getField` on the same - document in different threads could cause a `NullPointerException`. -- [fixed] Fixed a race condition that could cause a `NullPointerException` during client - initialization. +- [fixed] Fixed an issue where devices targeting Android API level 19 or earlier + would crash when they were unable to connect to [firestore]. +- [fixed] Fixed a race condition in Documents where access to `getData` and + `getField` on the same document in different threads could cause a + `NullPointerException`. +- [fixed] Fixed a race condition that could cause a `NullPointerException` + during client initialization. ## Kotlin @@ -800,8 +850,8 @@ Kotlin extensions library has no additional updates. - [feature] Added an [`addSnapshotsInSyncListener()`]() - method to `FirebaseFirestore` that notifies you when all your snapshot listeners are in sync with - each other. + method to `FirebaseFirestore` that notifies you when all your snapshot + listeners are in sync with each other. ## Kotlin @@ -810,8 +860,8 @@ Kotlin extensions library has no additional updates. # 21.1.1 -- [fixed] Addressed a regression in v21.1.0 that caused the crash: "Cannot add document to the - RemoteDocumentCache with a read time of zero". +- [fixed] Addressed a regression in v21.1.0 that caused the crash: "Cannot add + document to the RemoteDocumentCache with a read time of zero". ## Kotlin @@ -826,14 +876,15 @@ Firestore SDK to get the fix. - [feature] Added a [`FirebaseFirestore.terminate()`]() - method which terminates the instance, releasing any held resources. Once it completes, you can - optionally call `clearPersistence()` to wipe persisted [firestore] data from disk. + method which terminates the instance, releasing any held resources. Once it + completes, you can optionally call `clearPersistence()` to wipe persisted + [firestore] data from disk. - [feature] Added a [`FirebaseFirestore.waitForPendingWrites()`]() - method which allows users to wait on a promise that resolves when all pending writes are - acknowledged by the [firestore] backend. -- [changed] Transactions now perform exponential backoff before retrying. This means transactions on - highly contended documents are more likely to succeed. + method which allows users to wait on a promise that resolves when all pending + writes are acknowledged by the [firestore] backend. +- [changed] Transactions now perform exponential backoff before retrying. This + means transactions on highly contended documents are more likely to succeed. ## Kotlin @@ -842,13 +893,17 @@ Kotlin extensions library has no additional updates. # 21.0.0 -- [changed] Transactions are now more flexible. Some sequences of operations that were previously - incorrectly disallowed are now allowed. For example, after reading a document that doesn't exist, - you can now set it multiple times successfully in a transaction. -- [fixed] Fixed an issue where query results were temporarily missing documents that previously had - not matched but had been updated to now match the query. Refer to this - [GitHub issue](https://github.com/firebase/firebase-android-sdk/issues/155) for more details. -- [changed] Added nullability annotations to improve the Kotlin developer experience. +- [changed] Transactions are now more flexible. Some sequences of operations + that were previously incorrectly disallowed are now allowed. For example, + after reading a document that doesn't exist, you can now set it multiple times + successfully in a transaction. +- [fixed] Fixed an issue where query results were temporarily missing documents + that previously had not matched but had been updated to now match the query. + Refer to this + [GitHub issue](https://github.com/firebase/firebase-android-sdk/issues/155) + for more details. +- [changed] Added nullability annotations to improve the Kotlin developer + experience. ## Kotlin @@ -857,19 +912,21 @@ Kotlin extensions library has no additional updates. # 20.2.0 -- [feature] Added a `@DocumentId` annotation which can be used on a `DocumentReference` or `String` - property in a POJO to indicate that the SDK should automatically populate it with the document's - ID. +- [feature] Added a `@DocumentId` annotation which can be used on a + `DocumentReference` or `String` property in a POJO to indicate that the SDK + should automatically populate it with the document's ID. - [fixed] Fixed an internal assertion that was triggered when an update with a - `FieldValue.serverTimestamp()` and an update with a `FieldValue.increment()` were pending for the - same document. Refer to this - [GitHub issue](https://github.com/firebase/firebase-android-sdk/issues/491) for more details. + `FieldValue.serverTimestamp()` and an update with a `FieldValue.increment()` + were pending for the same document. Refer to this + [GitHub issue](https://github.com/firebase/firebase-android-sdk/issues/491) + for more details. - [changed] Improved performance of queries with large result sets. -- [changed] Improved performance for queries with filters that only return a small subset of the - documents in a collection. -- [changed] Instead of failing silently, [firestore] now crashes the client app if it fails to load - SSL Ciphers. To avoid these crashes, you must bundle Conscrypt to support non-GMSCore devices on - Android API level 19 (KitKat) or earlier (for more information, refer to +- [changed] Improved performance for queries with filters that only return a + small subset of the documents in a collection. +- [changed] Instead of failing silently, [firestore] now crashes the client app + if it fails to load SSL Ciphers. To avoid these crashes, you must bundle + Conscrypt to support non-GMSCore devices on Android API level 19 (KitKat) or + earlier (for more information, refer to [TLS on Android](https://github.com/grpc/grpc-java/blob/master/SECURITY.md#tls-on-android)). ## Kotlin @@ -879,11 +936,13 @@ Kotlin extensions library has no additional updates. # 20.1.0 -- [changed] SSL and gRPC initialization now happens on a separate thread, which reduces the time - taken to produce the first query result. -- [feature] Added `clearPersistence()`, which clears the persistent storage including pending writes - and cached documents. This is intended to help write reliable tests. Refer to this - [GitHub issue](https://github.com/firebase/firebase-js-sdk/issues/449) for more details. +- [changed] SSL and gRPC initialization now happens on a separate thread, which + reduces the time taken to produce the first query result. +- [feature] Added `clearPersistence()`, which clears the persistent storage + including pending writes and cached documents. This is intended to help write + reliable tests. Refer to this + [GitHub issue](https://github.com/firebase/firebase-js-sdk/issues/449) for + more details. ## Kotlin @@ -892,9 +951,11 @@ Kotlin extensions library has no additional updates. # 19.0.2 -- [fixed] Updated gRPC to 1.21.0. A bug in the prior version would occasionally cause a crash if a - network state change occurred concurrently with an RPC. Refer to - [GitHub issue #428](https://github.com/firebase/firebase-android-sdk/issues/428) for more details. +- [fixed] Updated gRPC to 1.21.0. A bug in the prior version would occasionally + cause a crash if a network state change occurred concurrently with an RPC. + Refer to + [GitHub issue #428](https://github.com/firebase/firebase-android-sdk/issues/428) + for more details. ## Kotlin @@ -903,9 +964,10 @@ Kotlin extensions library has no additional updates. # 19.0.1 -- [fixed] Fixed an issue that prevented schema migrations for clients with large offline datasets. - Refer to this [GitHub issue](https://github.com/firebase/firebase-android-sdk/issues/370) for more - details. +- [fixed] Fixed an issue that prevented schema migrations for clients with large + offline datasets. Refer to this + [GitHub issue](https://github.com/firebase/firebase-android-sdk/issues/370) + for more details. ## Kotlin @@ -914,18 +976,19 @@ Kotlin extensions library has no additional updates. # 19.0.0 -- [feature] You can now query across all collections in your database with a given collection ID - using the +- [feature] You can now query across all collections in your database with a + given collection ID using the [`FirebaseFirestore.collectionGroup()`](/docs/reference/android/com/google/firebase/firestore/FirebaseFirestore#collectionGroup) method. -- [changed] The garbage collection process for on-disk persistence that removes older documents is - now enabled by default. The SDK will attempt to periodically clean up older, unused documents once - the on-disk cache passes a threshold size (default: 100 MB). See - [Configure cache size](/docs/firestore/manage-data/enable-offline#configure_cache_size) for - details on how to configure this. -- [changed] Internal changes that rely on an updated API to obtain authentication credentials. If - you use [firebase_auth], update to `firebase-auth` v17.0.0 or later to ensure functionality - alignment. +- [changed] The garbage collection process for on-disk persistence that removes + older documents is now enabled by default. The SDK will attempt to + periodically clean up older, unused documents once the on-disk cache passes a + threshold size (default: 100 MB). See + [Configure cache size](/docs/firestore/manage-data/enable-offline#configure_cache_size) + for details on how to configure this. +- [changed] Internal changes that rely on an updated API to obtain + authentication credentials. If you use [firebase_auth], update to + `firebase-auth` v17.0.0 or later to ensure functionality alignment. ## Kotlin @@ -938,105 +1001,116 @@ Kotlin extensions library has no additional updates. ## Kotlin -- [feature] The beta release of a [firestore] Android library with Kotlin extensions is now - available. The Kotlin extensions library transitively includes the base `firebase-firestore` - library. To learn more, visit the - [[firestore] KTX documentation](/docs/reference/kotlin/com/google/firebase/firestore/ktx/package-summary). +- [feature] The beta release of a [firestore] Android library with Kotlin + extensions is now available. The Kotlin extensions library transitively + includes the base `firebase-firestore` library. To learn more, visit the + [[firestore] KTX + documentation](/docs/reference/kotlin/com/google/firebase/firestore/ktx/package-summary). # 18.2.0 - [feature] Added [`FieldValue.increment()`](), - which can be used in `update()` and `set(..., SetOptions.merge())` to increment or decrement - numeric field values safely without transactions. + which can be used in `update()` and `set(..., SetOptions.merge())` to + increment or decrement numeric field values safely without transactions. - [feature] Added functional interface - [`FirebaseFirestore.runBatch()`](/docs/reference/android/com/google/firebase/firestore/FirebaseFirestore#runBatch( - com.google.firebase.firestore.WriteBatch.Function)), similar to + [`FirebaseFirestore.runBatch()`](/docs/reference/android/com/google/firebase/firestore/FirebaseFirestore#runBatch( com.google.firebase.firestore.WriteBatch.Function)), + similar to [`FirebaseFirestore.runTransaction()`](), - which allows a developer to focus on the mutations of the batch rather than on creating and - committing the batch. -- [changed] Prepared the persistence layer to support collection group queries. While this feature - is not yet available, all schema changes are included in this release. -- [changed] Added `@RestrictTo` annotations to discourage the use of APIs that are not public. This - affects internal APIs that were previously obfuscated and are not mentioned in our documentation. -- [changed] Improved error messages for certain Number types that are not supported by our - serialization layer. + which allows a developer to focus on the mutations of the batch rather than on + creating and committing the batch. +- [changed] Prepared the persistence layer to support collection group queries. + While this feature is not yet available, all schema changes are included in + this release. +- [changed] Added `@RestrictTo` annotations to discourage the use of APIs that + are not public. This affects internal APIs that were previously obfuscated and + are not mentioned in our documentation. +- [changed] Improved error messages for certain Number types that are not + supported by our serialization layer. # 18.1.0 -- [changed] Internal changes to ensure functionality alignment with other SDK releases. -- [fixed] Fixed calculation of SQLite database size on Android 9 Pie devices. On these devices, the - previous method sometimes incorrectly calculated the size by a few MBs, potentially delaying - garbage collection. +- [changed] Internal changes to ensure functionality alignment with other SDK + releases. +- [fixed] Fixed calculation of SQLite database size on Android 9 Pie devices. On + these devices, the previous method sometimes incorrectly calculated the size + by a few MBs, potentially delaying garbage collection. # 18.0.1 -- [fixed] Fixed an issue where [firestore] would crash if handling write batches larger than 2 MB in - size. -- [changed] [firestore] now recovers more quickly from long periods without network access. +- [fixed] Fixed an issue where [firestore] would crash if handling write batches + larger than 2 MB in size. +- [changed] [firestore] now recovers more quickly from long periods without + network access. # 18.0.0 -- [changed] The `timestampsInSnapshotsEnabled` setting is now enabled by default. Timestamp fields - that read from a `DocumentSnapshot` are now returned as `Timestamp` objects instead of `Date` - objects. This is a breaking change; developers must update any code that expects to receive a - `Date` object. See +- [changed] The `timestampsInSnapshotsEnabled` setting is now enabled by + default. Timestamp fields that read from a `DocumentSnapshot` are now returned + as `Timestamp` objects instead of `Date` objects. This is a breaking change; + developers must update any code that expects to receive a `Date` object. See [`FirebaseFirestoreSettings.Builder.setTimestampsInSnapshotsEnabled()`]() for more details. -- [feature] Custom objects (POJOs) can now be passed in several ways: as a field value in - `update()`, within `Map<>` objects passed to `set()`, in array transform operations, and in query - filters. -- [feature] `DocumentSnapshot.get()` now supports retrieving fields as custom objects (POJOs) by - passing a `Class` instance, e.g., `snapshot.get("field", CustomType.class)`. -- [fixed] Fixed an issue where if an app sent a write to the server, but the app was shut down - before a listener received the write, the app could crash. +- [feature] Custom objects (POJOs) can now be passed in several ways: as a field + value in `update()`, within `Map<>` objects passed to `set()`, in array + transform operations, and in query filters. +- [feature] `DocumentSnapshot.get()` now supports retrieving fields as custom + objects (POJOs) by passing a `Class` instance, e.g., + `snapshot.get("field", CustomType.class)`. +- [fixed] Fixed an issue where if an app sent a write to the server, but the app + was shut down before a listener received the write, the app could crash. # 17.1.5 - [changed] [firestore] now recovers more quickly from bad network states. - [changed] Improved performance for reading large collections. -- [fixed] Offline persistence now properly records schema downgrades. This is a forward-looking - change that allows you to safely downgrade from future SDK versions to this version (v17.1.5). You - can already safely downgrade versions now depending on the source version. For example, you can - safely downgrade from v17.1.4 to v17.1.2 because there are no schema changes between those +- [fixed] Offline persistence now properly records schema downgrades. This is a + forward-looking change that allows you to safely downgrade from future SDK + versions to this version (v17.1.5). You can already safely downgrade versions + now depending on the source version. For example, you can safely downgrade + from v17.1.4 to v17.1.2 because there are no schema changes between those versions. Related: https://github.com/firebase/firebase-android-sdk/issues/134 # 17.1.4 -- [fixed] Fixed a SQLite transaction-handling issue that occasionally masked exceptions when - Firestore closed a transaction that was never started. For more information, see the +- [fixed] Fixed a SQLite transaction-handling issue that occasionally masked + exceptions when Firestore closed a transaction that was never started. For + more information, see the [issue report in GitHub](https://github.com/firebase/firebase-android-sdk/issues/115). -- [fixed] Fixed a race condition that caused a `SQLiteDatabaseLockedException` when an app attempted - to access the SQLite database from multiple threads. +- [fixed] Fixed a race condition that caused a `SQLiteDatabaseLockedException` + when an app attempted to access the SQLite database from multiple threads. # 17.1.2 -- [changed] Changed how the SDK handles locally-updated documents while syncing those updates with - Cloud Firestore servers. This can lead to slight behavior changes and may affect the +- [changed] Changed how the SDK handles locally-updated documents while syncing + those updates with Cloud Firestore servers. This can lead to slight behavior + changes and may affect the [`SnapshotMetadata.hasPendingWrites()`]() metadata flag. -- [changed] Eliminated superfluous update events for locally cached documents that are known to lag - behind the server version. Instead, the SDK buffers these events until the client has caught up - with the server. +- [changed] Eliminated superfluous update events for locally cached documents + that are known to lag behind the server version. Instead, the SDK buffers + these events until the client has caught up with the server. # 17.1.1 -- [fixed] Fixed an issue where the first `get()` call made after being offline could incorrectly - return cached data without attempting to reach the backend. -- [changed] Changed `get()` to only make one attempt to reach the backend before returning cached - data, potentially reducing delays while offline. -- [fixed] Fixed an issue that caused Firebase to drop empty objects from calls to - `set(..., SetOptions.merge())`. -- [fixed] Updated printf-style templates to ensure that they're compile time constants. Previously, - some were influenced by error messages. When those error messages contained `%p` or other, related - tokens, `String.format()` would throw an exception. -- [changed] Some SDK errors that represent common mistakes, like permission errors or missing - indexes, are automatically logged as warnings in addition to being surfaced via the API. +- [fixed] Fixed an issue where the first `get()` call made after being offline + could incorrectly return cached data without attempting to reach the backend. +- [changed] Changed `get()` to only make one attempt to reach the backend before + returning cached data, potentially reducing delays while offline. +- [fixed] Fixed an issue that caused Firebase to drop empty objects from calls + to `set(..., SetOptions.merge())`. +- [fixed] Updated printf-style templates to ensure that they're compile time + constants. Previously, some were influenced by error messages. When those + error messages contained `%p` or other, related tokens, `String.format()` + would throw an exception. +- [changed] Some SDK errors that represent common mistakes, like permission + errors or missing indexes, are automatically logged as warnings in addition to + being surfaced via the API. # 17.1.0 -- [fixed] Corrected an issue with methods in the Cloud Firestore v17.0.5 release. To avoid potential - errors, don't use v17.0.5. +- [fixed] Corrected an issue with methods in the Cloud Firestore v17.0.5 + release. To avoid potential errors, don't use v17.0.5. # 17.0.5 @@ -1046,29 +1120,34 @@ Kotlin extensions library has no additional updates. [`FieldValue.arrayRemove()`]() to atomically add and remove elements from an array field in a document. - [feature] Added - [`Query.whereArrayContains()`](/docs/reference/android/com/google/firebase/firestore/Query.html#whereArrayContains(com.google.firebase.firestore.FieldPath, - java.lang.Object)) query operator to find documents where an array field contains a specific + [`Query.whereArrayContains()`](/docs/reference/android/com/google/firebase/firestore/Query.html#whereArrayContains(com.google.firebase.firestore.FieldPath, java.lang.Object)) + query operator to find documents where an array field contains a specific element. - [changed] Improved offline performance with many outstanding writes. -- [fixed] Firestore will now recover from auth token expiration when the system clock is wrong. +- [fixed] Firestore will now recover from auth token expiration when the system + clock is wrong. # 17.0.4 -- [fixed] Fixed an issue where queries returned fewer results than they should. The issue related to - [improper caching](https://github.com/firebase/firebase-ios-sdk/issues/1548), so clients may use - extra bandwidth the first time they launch with this version of the SDK, as they re-download - cleared cached data. +- [fixed] Fixed an issue where queries returned fewer results than they should. + The issue related to + [improper caching](https://github.com/firebase/firebase-ios-sdk/issues/1548), + so clients may use extra bandwidth the first time they launch with this + version of the SDK, as they re-download cleared cached data. # 17.0.3 -- [changed] The [`Timestamp`](/docs/reference/android/com/google/firebase/Timestamp) class now - implements [`Parcelable`](//developer.android.com/reference/android/os/Parcelable) in addition to +- [changed] The + [`Timestamp`](/docs/reference/android/com/google/firebase/Timestamp) class now + implements + [`Parcelable`](//developer.android.com/reference/android/os/Parcelable) in + addition to [`Comparable`](//developer.android.com/reference/java/lang/Comparable). # 17.0.2 -- [changed] gRPC requirement updated from 1.8.0 to 1.12.0. This allows quicker failover between - Wi-Fi and cellular networks. +- [changed] gRPC requirement updated from 1.8.0 to 1.12.0. This allows quicker + failover between Wi-Fi and cellular networks. # 17.0.1 @@ -1079,4 +1158,3 @@ Kotlin extensions library has no additional updates. or [`FieldValue.serverTimestamp()`]() values. - diff --git a/firebase-functions/CHANGELOG.md b/firebase-functions/CHANGELOG.md index 91382e8f180..4efe28a6bdb 100644 --- a/firebase-functions/CHANGELOG.md +++ b/firebase-functions/CHANGELOG.md @@ -6,9 +6,10 @@ # 22.1.0 -- [changed] Bumped dependency on OkHTTP to version 4.12.0 from version 3.12.13. If your app depends - on OkHTTP version 3.x the change is both binary- and Java source-compatible, with a few small - exceptions. See https://square.github.io/okhttp/changelogs/upgrading_to_okhttp_4/ for more +- [changed] Bumped dependency on OkHTTP to version 4.12.0 from version 3.12.13. + If your app depends on OkHTTP version 3.x the change is both binary- and Java + source-compatible, with a few small exceptions. See + https://square.github.io/okhttp/changelogs/upgrading_to_okhttp_4/ for more details. # 22.0.1 @@ -17,16 +18,17 @@ # 22.0.0 -- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or higher. -- [removed] **Breaking Change**: Stopped releasing the deprecated Kotlin extensions (KTX) module and - removed it from the Firebase Android BoM. Instead, use the KTX APIs from the main module. For - details, see the +- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or + higher. +- [removed] **Breaking Change**: Stopped releasing the deprecated Kotlin + extensions (KTX) module and removed it from the Firebase Android BoM. Instead, + use the KTX APIs from the main module. For details, see the [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration). # 21.2.1 -- [fixed] Fixed issue that caused the SDK to crash when trying to stream a function that does not - exist. +- [fixed] Fixed issue that caused the SDK to crash when trying to stream a + function that does not exist. ## Kotlin @@ -36,8 +38,8 @@ Kotlin extensions library has no additional updates. # 21.2.0 - [feature] Streaming callable functions are now supported. -- [fixed] Fixed an issue that prevented the App Check token from being handled correctly in case of - error. +- [fixed] Fixed an issue that prevented the App Check token from being handled + correctly in case of error. ## Kotlin @@ -74,14 +76,16 @@ Kotlin extensions library has no additional updates. # 20.4.0 -- [changed] Added Kotlin extensions (KTX) APIs from `com.google.firebase:firebase-functions-ktx` to - `com.google.firebase:firebase-functions` under the `com.google.firebase.functions` package. For - details, see the +- [changed] Added Kotlin extensions (KTX) APIs from + `com.google.firebase:firebase-functions-ktx` to + `com.google.firebase:firebase-functions` under the + `com.google.firebase.functions` package. For details, see the [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration) -- [deprecated] All the APIs from `com.google.firebase:firebase-functions-ktx` have been added to - `com.google.firebase:firebase-functions` under the `com.google.firebase.functions` package, and - all the Kotlin extensions (KTX) APIs in `com.google.firebase:firebase-functions-ktx` are now - deprecated. As early as April 2024, we'll no longer release KTX modules. For details, see the +- [deprecated] All the APIs from `com.google.firebase:firebase-functions-ktx` + have been added to `com.google.firebase:firebase-functions` under the + `com.google.firebase.functions` package, and all the Kotlin extensions (KTX) + APIs in `com.google.firebase:firebase-functions-ktx` are now deprecated. As + early as April 2024, we'll no longer release KTX modules. For details, see the [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration) ## Kotlin @@ -91,7 +95,8 @@ Kotlin extensions library has no additional updates. # 20.3.1 -- [changed] Added support for App Check limited-use tokens in HTTPS Callable Functions. +- [changed] Added support for App Check limited-use tokens in HTTPS Callable + Functions. ## Kotlin @@ -119,7 +124,8 @@ Kotlin extensions library has no additional updates. # 20.2.1 -- [changed] Updated dependency of `firebase-iid` to its latest version (v21.1.0). +- [changed] Updated dependency of `firebase-iid` to its latest version + (v21.1.0). ## Kotlin @@ -128,8 +134,8 @@ Kotlin extensions library has no additional updates. # 20.2.0 -- [unchanged] Updated to accommodate the release of the updated [functions_client] Kotlin extensions - library. +- [unchanged] Updated to accommodate the release of the updated + [functions_client] Kotlin extensions library. ## Kotlin @@ -137,14 +143,16 @@ The Kotlin extensions library transitively includes the updated `firebase-functi Kotlin extensions library has the following additional updates: - [feature] Firebase now supports Kotlin coroutines. With this release, we added - [`kotlinx-coroutines-play-services`](https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-play-services/){: - .external} to `firebase-functions-ktx` as a transitive dependency, which exposes the + [`kotlinx-coroutines-play-services`](https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-play-services/){: .external} + to `firebase-functions-ktx` as a transitive dependency, which exposes the `Task.await()` suspend function to convert a - [`Task`](https://developers.google.com/android/guides/tasks) into a Kotlin coroutine. + [`Task`](https://developers.google.com/android/guides/tasks) into a Kotlin + coroutine. # 20.1.1 -- [changed] Updated dependency of `play-services-basement` to its latest version (v18.1.0). +- [changed] Updated dependency of `play-services-basement` to its latest version + (v18.1.0). ## Kotlin @@ -164,10 +172,11 @@ Kotlin extensions library has no additional updates. # 20.0.2 -- [changed] Updated dependencies of `play-services-basement`, `play-services-base`, and - `play-services-tasks` to their latest versions (v18.0.0, v18.0.1, and v18.0.1, respectively). For - more information, see the [note](#basement18-0-0_base18-0-1_tasks18-0-1) at the top of this - release entry. +- [changed] Updated dependencies of `play-services-basement`, + `play-services-base`, and `play-services-tasks` to their latest versions + (v18.0.0, v18.0.1, and v18.0.1, respectively). For more information, see the + [note](#basement18-0-0_base18-0-1_tasks18-0-1) at the top of this release + entry. ## Kotlin @@ -176,7 +185,8 @@ Kotlin extensions library has no additional updates. # 20.0.1 -- [fixed] Fixed an issue that prevented functions from proceeding after [app_check] failures. +- [fixed] Fixed an issue that prevented functions from proceeding after + [app_check] failures. ## Kotlin @@ -205,7 +215,8 @@ Kotlin extensions library has no additional updates. # 19.1.0 -- [feature] Added support for connecting to the Firebase Emulator Suite via a new method, +- [feature] Added support for connecting to the Firebase Emulator Suite via a + new method, [`FirebaseFunctions#UseEmulator()`](). - [deprecated] Deprecated the `useFunctionsEmulator(String)` method. @@ -216,7 +227,8 @@ Kotlin extensions library has no additional updates. # 19.0.2 -- [changed] Internal changes to ensure functionality alignment with other SDK releases. +- [changed] Internal changes to ensure functionality alignment with other SDK + releases. ## Kotlin @@ -225,20 +237,21 @@ Kotlin extensions library has no additional updates. # 19.0.1 -- [unchanged] Updated to accommodate the release of the [functions_client] Kotlin extensions - library. +- [unchanged] Updated to accommodate the release of the [functions_client] + Kotlin extensions library. ## Kotlin -- [feature] The beta release of a [functions_client] Android library with Kotlin extensions is now - available. The Kotlin extensions library transitively includes the base `firebase-functions` - library. To learn more, visit the - [[cloud_functions] KTX documentation](/docs/reference/kotlin/com/google/firebase/functions/ktx/package-summary). +- [feature] The beta release of a [functions_client] Android library with Kotlin + extensions is now available. The Kotlin extensions library transitively + includes the base `firebase-functions` library. To learn more, visit the + [[cloud_functions] KTX + documentation](/docs/reference/kotlin/com/google/firebase/functions/ktx/package-summary). # 19.0.0 -- [changed] Versioned to add nullability annotations to improve the Kotlin developer experience. No - other changes. +- [changed] Versioned to add nullability annotations to improve the Kotlin + developer experience. No other changes. # 18.1.0 @@ -256,15 +269,16 @@ Kotlin extensions library has no additional updates. - [changed] Changed the default timeout for callable functions to 70 seconds ([#2329](//github.com/firebase/firebase-android-sdk/pull/224)). - [feature] Added - [`setTimeout`](/docs/reference/android/com/google/firebase/functions/HttpsCallableReference) and + [`setTimeout`](/docs/reference/android/com/google/firebase/functions/HttpsCallableReference) + and [`withTimeout`](/docs/reference/android/com/google/firebase/functions/HttpsCallableReference) methods to change the timeout for a callable ([#2329](//github.com/firebase/firebase-android-sdk/pull/224)). # 16.1.0 -- [feature] `FirebaseFunctions.getInstance()` now allows passing in an optional region to override - the default "us-central1". -- [feature] New `useFunctionsEmulator` method allows testing against a local instance of the +- [feature] `FirebaseFunctions.getInstance()` now allows passing in an optional + region to override the default "us-central1". +- [feature] New `useFunctionsEmulator` method allows testing against a local + instance of the [Cloud Functions Emulator](https://firebase.google.com/docs/functions/local-emulator). - diff --git a/firebase-inappmessaging-display/CHANGELOG.md b/firebase-inappmessaging-display/CHANGELOG.md index a292f6b992f..b794d7fd3ce 100644 --- a/firebase-inappmessaging-display/CHANGELOG.md +++ b/firebase-inappmessaging-display/CHANGELOG.md @@ -6,7 +6,8 @@ # 22.0.2 -- [changed] Updated `com.github.bumptech.glide:glide` dependency to `5.0.5`. [#7469] +- [changed] Updated `com.github.bumptech.glide:glide` dependency to `5.0.5`. + [#7469] # 22.0.1 @@ -14,10 +15,11 @@ # 22.0.0 -- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or higher. -- [removed] **Breaking Change**: Stopped releasing the deprecated Kotlin extensions (KTX) module and - removed it from the Firebase Android BoM. Instead, use the KTX APIs from the main module. For - details, see the +- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or + higher. +- [removed] **Breaking Change**: Stopped releasing the deprecated Kotlin + extensions (KTX) module and removed it from the Firebase Android BoM. Instead, + use the KTX APIs from the main module. For details, see the [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration). # 21.0.2 @@ -41,9 +43,9 @@ library. The Kotlin extensions library has no additional updates. # 21.0.0 -- [fixed] Fixed bad token exception while showing FIAM (GitHub - [#5567](//github.com/firebase/firebase-android-sdk/issues/5567)) (GitHub - [#5780](//github.com/firebase/firebase-android-sdk/issues/5780)) +- [fixed] Fixed bad token exception while showing FIAM + (GitHub [#5567](//github.com/firebase/firebase-android-sdk/issues/5567)) + (GitHub [#5780](//github.com/firebase/firebase-android-sdk/issues/5780)) ## Kotlin @@ -52,8 +54,8 @@ library. The Kotlin extensions library has no additional updates. # 20.4.1 -- [fixed] Fixed FirebaseInAppMessagingDisplayErrorListener not being called (GitHub - [#5644](//github.com/firebase/firebase-android-sdk/issues/5644)) +- [fixed] Fixed FirebaseInAppMessagingDisplayErrorListener not being called + (GitHub [#5644](//github.com/firebase/firebase-android-sdk/issues/5644)) ## Kotlin @@ -67,11 +69,14 @@ library. The Kotlin extensions library has no additional updates. `com.google.firebase:firebase-inappmessaging-display` under the `com.google.firebase.inappmessaging.display` package. For details, see the [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration) -- [deprecated] All the APIs from `com.google.firebase:firebase-inappmessaging-display-ktx` have been - added to `com.google.firebase:firebase-inappmessaging-display` under the - `com.google.firebase.inappmessaging.display` package, and all the Kotlin extensions (KTX) APIs in - `com.google.firebase:firebase-inappmessaging-display-ktx` are now deprecated. As early as April - 2024, we'll no longer release KTX modules. For details, see the +- [deprecated] All the APIs from + `com.google.firebase:firebase-inappmessaging-display-ktx` have been added to + `com.google.firebase:firebase-inappmessaging-display` under the + `com.google.firebase.inappmessaging.display` package, and all the Kotlin + extensions (KTX) APIs in + `com.google.firebase:firebase-inappmessaging-display-ktx` are now deprecated. + As early as April 2024, we'll no longer release KTX modules. For details, see + the [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration) ## Kotlin @@ -81,8 +86,8 @@ library. The Kotlin extensions library has no additional updates. # 20.3.5 -- [fixed] Disabled `GradleMetadataPublishing` to fix breakage of the Kotlin extensions library. - [#5337] +- [fixed] Disabled `GradleMetadataPublishing` to fix breakage of the Kotlin + extensions library. [#5337] ## Kotlin @@ -104,8 +109,8 @@ library. The Kotlin extensions library has no additional updates. # 20.3.2 -- [fixed] Fixed nullpointer crash when using experiments (GitHub - [#4716](//github.com/firebase/firebase-android-sdk/issues/4716){: .external}) +- [fixed] Fixed nullpointer crash when using experiments + (GitHub [#4716](//github.com/firebase/firebase-android-sdk/issues/4716){: .external}) ## Kotlin @@ -116,7 +121,8 @@ library. The Kotlin extensions library has no additional updates. - [fixed] Fixed nullpointer crash ([GitHub Issue #4214](//github.com/firebase/firebase-android-sdk/issues/4214)) -- [changed] Updated gRPC to 1.52.1, and updated JavaLite, protoc, protobuf-java-util to 3.21.11. +- [changed] Updated gRPC to 1.52.1, and updated JavaLite, protoc, + protobuf-java-util to 3.21.11. ## Kotlin @@ -125,7 +131,8 @@ library. The Kotlin extensions library has no additional updates. # 20.3.0 -- [changed] Migrated [inappmessaging] Display to use standard Firebase executors. +- [changed] Migrated [inappmessaging] Display to use standard Firebase + executors. - [changed] Moved Task continuations off the main thread. - [feature] Added a new API for [removing a dismiss listener](). @@ -146,14 +153,16 @@ The Kotlin extensions library transitively includes the updated `firebase-inappm library. The Kotlin extensions library has the following additional updates: - [feature] Firebase now supports Kotlin coroutines. With this release, we added - [`kotlinx-coroutines-play-services`](https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-play-services/){: - .external} to `firebase-inappmessaging-display-ktx` as a transitive dependency, which exposes the - `Task.await()` suspend function to convert a - [`Task`](https://developers.google.com/android/guides/tasks) into a Kotlin coroutine. + [`kotlinx-coroutines-play-services`](https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-play-services/){: .external} + to `firebase-inappmessaging-display-ktx` as a transitive dependency, which + exposes the `Task.await()` suspend function to convert a + [`Task`](https://developers.google.com/android/guides/tasks) into a Kotlin + coroutine. # 20.1.3 -- [changed] Updated dependency of `play-services-basement` to its latest version (v18.1.0). +- [changed] Updated dependency of `play-services-basement` to its latest version + (v18.1.0). ## Kotlin @@ -162,10 +171,11 @@ library. The Kotlin extensions library has no additional updates. # 20.1.2 -- [changed] Updated dependencies of `play-services-basement`, `play-services-base`, and - `play-services-tasks` to their latest versions (v18.0.0, v18.0.1, and v18.0.1, respectively). For - more information, see the [note](#basement18-0-0_base18-0-1_tasks18-0-1) at the top of this - release entry. +- [changed] Updated dependencies of `play-services-basement`, + `play-services-base`, and `play-services-tasks` to their latest versions + (v18.0.0, v18.0.1, and v18.0.1, respectively). For more information, see the + [note](#basement18-0-0_base18-0-1_tasks18-0-1) at the top of this release + entry. ## Kotlin @@ -201,7 +211,8 @@ library. The Kotlin extensions library has no additional updates. # 19.1.5 -- [fixed] Fixed `WindowManager$BadTokenException` when showing an in-app message. +- [fixed] Fixed `WindowManager$BadTokenException` when showing an in-app + message. ## Kotlin @@ -210,8 +221,8 @@ library. The Kotlin extensions library has no additional updates. # 19.1.4 -- [fixed] Fixed in-app message button click not working in Android 11 because of package visibility - changes. +- [fixed] Fixed in-app message button click not working in Android 11 because of + package visibility changes. ## Kotlin @@ -238,9 +249,10 @@ library. The Kotlin extensions library has no additional updates. # 19.1.1 -- [fixed] Improved link handling on devices without any browser installed or without Chrome - installed. -- [feature] Added the ability to register a dismiss listener that reacts to message dismissal. +- [fixed] Improved link handling on devices without any browser installed or + without Chrome installed. +- [feature] Added the ability to register a dismiss listener that reacts to + message dismissal. ## Kotlin @@ -249,9 +261,10 @@ library. The Kotlin extensions library has no additional updates. # 19.1.0 -- [changed] Updated the protocol buffer dependency to the newer `protobuf-javalite` artifact. The - new artifact is incompatible with the old one, so this library needed to be upgraded to avoid - conflicts. No developer action is necessary. +- [changed] Updated the protocol buffer dependency to the newer + `protobuf-javalite` artifact. The new artifact is incompatible with the old + one, so this library needed to be upgraded to avoid conflicts. No developer + action is necessary. ## Kotlin @@ -263,10 +276,11 @@ library. The Kotlin extensions library has no additional updates. - [fixed] Improved handling of activity transitions. (GitHub [Issue #1410](//github.com/firebase/firebase-android-sdk/issues/1410) and [Issue #1092](//github.com/firebase/firebase-android-sdk/issues/1092)) -- [changed] Migrated to use the [firebase_installations] service _directly_ instead of using an - indirect dependency via the Firebase Instance ID SDK. - - {% include "docs/reference/android/client/_includes/_iid-indirect-dependency-solutions.html" %} +- [changed] Migrated to use the [firebase_installations] service _directly_ + instead of using an indirect dependency via the Firebase Instance ID SDK. {% + include + "docs/reference/android/client/_includes/_iid-indirect-dependency-solutions.html" + %} ## Kotlin @@ -275,7 +289,8 @@ library. The Kotlin extensions library has no additional updates. # 19.0.6 -- [fixed] Fixed issue causing apps to become unresponsive in limited network conditions. +- [fixed] Fixed issue causing apps to become unresponsive in limited network + conditions. [GitHub Issue #1430](//github.com/firebase/firebase-android-sdk/issues/1430) ## Kotlin @@ -285,8 +300,8 @@ library. The Kotlin extensions library has no additional updates. # 19.0.5 -- [fixed] Fixed issue where campaigns with frequency limits were not properly displaying multiple - times. +- [fixed] Fixed issue where campaigns with frequency limits were not properly + displaying multiple times. ## Kotlin @@ -320,20 +335,21 @@ library. The Kotlin extensions library has no additional updates. ## Kotlin -- [feature] The beta release of a [inappmessaging] Display Android library with Kotlin extensions is - now available. The Kotlin extensions library transitively includes the base - `firebase-inappmessaging-display` library. To learn more, visit the - [[inappmessaging] Display KTX documentation](/docs/reference/kotlin/com/google/firebase/inappmessaging/display/ktx/package-summary). +- [feature] The beta release of a [inappmessaging] Display Android library with + Kotlin extensions is now available. The Kotlin extensions library transitively + includes the base `firebase-inappmessaging-display` library. To learn more, + visit the [[inappmessaging] Display KTX + documentation](/docs/reference/kotlin/com/google/firebase/inappmessaging/display/ktx/package-summary). # 19.0.1 -- [changed] Internal changes to accommodate open-sourcing of the library and to ensure functionality - alignment with other SDK releases. +- [changed] Internal changes to accommodate open-sourcing of the library and to + ensure functionality alignment with other SDK releases. # 19.0.0 -- [changed] Versioned to add nullability annotations to improve the Kotlin developer experience. No - other changes. +- [changed] Versioned to add nullability annotations to improve the Kotlin + developer experience. No other changes. # 18.0.2 @@ -344,20 +360,23 @@ library. The Kotlin extensions library has no additional updates. # 17.2.0 - [feature] Adds support for card in-app messages. -- [feature] Adds direct triggering (via [inappmessaging] SDK) of in-app messages. +- [feature] Adds direct triggering (via [inappmessaging] SDK) of in-app + messages. # 17.1.1 -- [fixed] Fixed [firestore] and [inappmessaging] compatibility on Android API level 19 (KitKat). The - underlying issue was that [firestore] and [cloud_functions] couldn't agree on which ciphers to - use; this update fixes this issue by overriding the set of ciphers that they use. Refer to - [GitHub issue 244](https://github.com/firebase/firebase-android-sdk/issues/244) for more - information. +- [fixed] Fixed [firestore] and [inappmessaging] compatibility on Android API + level 19 (KitKat). The underlying issue was that [firestore] and + [cloud_functions] couldn't agree on which ciphers to use; this update fixes + this issue by overriding the set of ciphers that they use. Refer to + [GitHub issue 244](https://github.com/firebase/firebase-android-sdk/issues/244) + for more information. # 17.1.0 -- [feature] Adds functionality to programmatically register listeners for updates on in-app - engagement (for example, impression, click, display errors). See +- [feature] Adds functionality to programmatically register listeners for + updates on in-app engagement (for example, impression, click, display errors). + See [`FirebaseInAppMessaging.addClickListener()`]() for more details. @@ -367,17 +386,16 @@ library. The Kotlin extensions library has no additional updates. # 17.0.3 -- [fixed] Improved caching logic, added safeguards for cache expiration, and cleaned up API surface - to prepare for open sourcing. +- [fixed] Improved caching logic, added safeguards for cache expiration, and + cleaned up API surface to prepare for open sourcing. # 17.0.1 -- [fixed] Fixed an issue where [fiam] and Firestore could not be included/built into the same app, - because of an obfuscation collision. +- [fixed] Fixed an issue where [fiam] and Firestore could not be included/built + into the same app, because of an obfuscation collision. # 17.0.0 -- [feature] The initial public beta release of the Firebase In-App Messaging Display SDK for Android - is now available. To learn more, see the +- [feature] The initial public beta release of the Firebase In-App Messaging + Display SDK for Android is now available. To learn more, see the [Firebase In-App Messaging documentation](/docs/in-app-messaging). - diff --git a/firebase-inappmessaging/CHANGELOG.md b/firebase-inappmessaging/CHANGELOG.md index 860b375f496..ddd25e620ae 100644 --- a/firebase-inappmessaging/CHANGELOG.md +++ b/firebase-inappmessaging/CHANGELOG.md @@ -14,10 +14,11 @@ # 22.0.0 -- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or higher. -- [removed] **Breaking Change**: Stopped releasing the deprecated Kotlin extensions (KTX) module and - removed it from the Firebase Android BoM. Instead, use the KTX APIs from the main module. For - details, see the +- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or + higher. +- [removed] **Breaking Change**: Stopped releasing the deprecated Kotlin + extensions (KTX) module and removed it from the Firebase Android BoM. Instead, + use the KTX APIs from the main module. For details, see the [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration). # 21.0.2 @@ -41,9 +42,9 @@ The Kotlin extensions library has no additional updates. # 21.0.0 -- [fixed] Fixed bad token exception while showing FIAM (GitHub - [#5567](//github.com/firebase/firebase-android-sdk/issues/5567)) (GitHub - [#5780](//github.com/firebase/firebase-android-sdk/issues/5780)) +- [fixed] Fixed bad token exception while showing FIAM + (GitHub [#5567](//github.com/firebase/firebase-android-sdk/issues/5567)) + (GitHub [#5780](//github.com/firebase/firebase-android-sdk/issues/5780)) ## Kotlin @@ -52,8 +53,8 @@ The Kotlin extensions library has no additional updates. # 20.4.1 -- [fixed] Fixed FirebaseInAppMessagingDisplayErrorListener not being called (GitHub - [#5644](//github.com/firebase/firebase-android-sdk/issues/5644)) +- [fixed] Fixed FirebaseInAppMessagingDisplayErrorListener not being called + (GitHub [#5644](//github.com/firebase/firebase-android-sdk/issues/5644)) ## Kotlin @@ -63,14 +64,17 @@ The Kotlin extensions library has no additional updates. # 20.4.0 - [changed] Added Kotlin extensions (KTX) APIs from - `com.google.firebase:firebase-inappmessaging-ktx` to `com.google.firebase:firebase-inappmessaging` - under the `com.google.firebase.inappmessaging` package. For details, see the + `com.google.firebase:firebase-inappmessaging-ktx` to + `com.google.firebase:firebase-inappmessaging` under the + `com.google.firebase.inappmessaging` package. For details, see the [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration) -- [deprecated] All the APIs from `com.google.firebase:firebase-inappmessaging-ktx` have been added - to `com.google.firebase:firebase-inappmessaging` under the `com.google.firebase.inappmessaging` - package, and all the Kotlin extensions (KTX) APIs in - `com.google.firebase:firebase-inappmessaging-ktx` are now deprecated. As early as April 2024, - we'll no longer release KTX modules. For details, see the +- [deprecated] All the APIs from + `com.google.firebase:firebase-inappmessaging-ktx` have been added to + `com.google.firebase:firebase-inappmessaging` under the + `com.google.firebase.inappmessaging` package, and all the Kotlin extensions + (KTX) APIs in `com.google.firebase:firebase-inappmessaging-ktx` are now + deprecated. As early as April 2024, we'll no longer release KTX modules. For + details, see the [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration) ## Kotlin @@ -80,8 +84,8 @@ The Kotlin extensions library has no additional updates. # 20.3.5 -- [fixed] Disabled `GradleMetadataPublishing` to fix breakage of the Kotlin extensions library. - [#5337] +- [fixed] Disabled `GradleMetadataPublishing` to fix breakage of the Kotlin + extensions library. [#5337] ## Kotlin @@ -103,8 +107,8 @@ The Kotlin extensions library has no additional updates. # 20.3.2 -- [fixed] Fixed nullpointer crash when using experiments (GitHub - [#4716](//github.com/firebase/firebase-android-sdk/issues/4716){: .external}) +- [fixed] Fixed nullpointer crash when using experiments + (GitHub [#4716](//github.com/firebase/firebase-android-sdk/issues/4716){: .external}) ## Kotlin @@ -115,7 +119,8 @@ The Kotlin extensions library has no additional updates. - [fixed] Fixed nullpointer crash ([GitHub Issue #4214](//github.com/firebase/firebase-android-sdk/issues/4214)) -- [changed] Updated gRPC to 1.52.1, and updated JavaLite, protoc, protobuf-java-util to 3.21.11. +- [changed] Updated gRPC to 1.52.1, and updated JavaLite, protoc, + protobuf-java-util to 3.21.11. ## Kotlin @@ -145,14 +150,16 @@ The Kotlin extensions library transitively includes the updated `firebase-inappm The Kotlin extensions library has the following additional updates: - [feature] Firebase now supports Kotlin coroutines. With this release, we added - [`kotlinx-coroutines-play-services`](https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-play-services/){: - .external} to `firebase-inappmessaging-ktx` as a transitive dependency, which exposes the + [`kotlinx-coroutines-play-services`](https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-play-services/){: .external} + to `firebase-inappmessaging-ktx` as a transitive dependency, which exposes the `Task.await()` suspend function to convert a - [`Task`](https://developers.google.com/android/guides/tasks) into a Kotlin coroutine. + [`Task`](https://developers.google.com/android/guides/tasks) into a Kotlin + coroutine. # 20.1.3 -- [changed] Updated dependency of `play-services-basement` to its latest version (v18.1.0). +- [changed] Updated dependency of `play-services-basement` to its latest version + (v18.1.0). ## Kotlin @@ -161,10 +168,11 @@ The Kotlin extensions library has no additional updates. # 20.1.2 -- [changed] Updated dependencies of `play-services-basement`, `play-services-base`, and - `play-services-tasks` to their latest versions (v18.0.0, v18.0.1, and v18.0.1, respectively). For - more information, see the [note](#basement18-0-0_base18-0-1_tasks18-0-1) at the top of this - release entry. +- [changed] Updated dependencies of `play-services-basement`, + `play-services-base`, and `play-services-tasks` to their latest versions + (v18.0.0, v18.0.1, and v18.0.1, respectively). For more information, see the + [note](#basement18-0-0_base18-0-1_tasks18-0-1) at the top of this release + entry. ## Kotlin @@ -200,7 +208,8 @@ The Kotlin extensions library has no additional updates. # 19.1.5 -- [fixed] Fixed `WindowManager$BadTokenException` when showing an in-app message. +- [fixed] Fixed `WindowManager$BadTokenException` when showing an in-app + message. ## Kotlin @@ -209,8 +218,8 @@ The Kotlin extensions library has no additional updates. # 19.1.4 -- [fixed] Fixed in-app message button click not working in Android 11 because of package visibility - changes. +- [fixed] Fixed in-app message button click not working in Android 11 because of + package visibility changes. ## Kotlin @@ -237,9 +246,10 @@ The Kotlin extensions library has no additional updates. # 19.1.1 -- [fixed] Improved link handling on devices without any browser installed or without Chrome - installed. -- [feature] Added the ability to register a dismiss listener that reacts to message dismissal. +- [fixed] Improved link handling on devices without any browser installed or + without Chrome installed. +- [feature] Added the ability to register a dismiss listener that reacts to + message dismissal. ## Kotlin @@ -248,9 +258,10 @@ The Kotlin extensions library has no additional updates. # 19.1.0 -- [changed] Updated the protocol buffer dependency to the newer `protobuf-javalite` artifact. The - new artifact is incompatible with the old one, so this library needed to be upgraded to avoid - conflicts. No developer action is necessary. +- [changed] Updated the protocol buffer dependency to the newer + `protobuf-javalite` artifact. The new artifact is incompatible with the old + one, so this library needed to be upgraded to avoid conflicts. No developer + action is necessary. ## Kotlin @@ -262,10 +273,11 @@ The Kotlin extensions library has no additional updates. - [fixed] Improved handling of activity transitions. (GitHub [Issue #1410](//github.com/firebase/firebase-android-sdk/issues/1410) and [Issue #1092](//github.com/firebase/firebase-android-sdk/issues/1092)) -- [changed] Migrated to use the [firebase_installations] service _directly_ instead of using an - indirect dependency via the Firebase Instance ID SDK. - - {% include "docs/reference/android/client/_includes/_iid-indirect-dependency-solutions.html" %} +- [changed] Migrated to use the [firebase_installations] service _directly_ + instead of using an indirect dependency via the Firebase Instance ID SDK. {% + include + "docs/reference/android/client/_includes/_iid-indirect-dependency-solutions.html" + %} ## Kotlin @@ -274,7 +286,8 @@ The Kotlin extensions library has no additional updates. # 19.0.6 -- [fixed] Fixed issue causing apps to become unresponsive in limited network conditions. +- [fixed] Fixed issue causing apps to become unresponsive in limited network + conditions. [GitHub Issue #1430](//github.com/firebase/firebase-android-sdk/issues/1430) ## Kotlin @@ -284,8 +297,8 @@ The Kotlin extensions library has no additional updates. # 19.0.5 -- [fixed] Fixed issue where campaigns with frequency limits were not properly displaying multiple - times. +- [fixed] Fixed issue where campaigns with frequency limits were not properly + displaying multiple times. ## Kotlin @@ -319,20 +332,21 @@ The Kotlin extensions library has no additional updates. ## Kotlin -- [feature] The beta release of a [inappmessaging] Android library with Kotlin extensions is now - available. The Kotlin extensions library transitively includes the base `firebase-inappmessaging` - library. To learn more, visit the - [[inappmessaging] KTX documentation](/docs/reference/kotlin/com/google/firebase/inappmessaging/ktx/package-summary). +- [feature] The beta release of a [inappmessaging] Android library with Kotlin + extensions is now available. The Kotlin extensions library transitively + includes the base `firebase-inappmessaging` library. To learn more, visit the + [[inappmessaging] KTX + documentation](/docs/reference/kotlin/com/google/firebase/inappmessaging/ktx/package-summary). # 19.0.1 -- [changed] Internal changes to accommodate open-sourcing of the library and to ensure functionality - alignment with other SDK releases. +- [changed] Internal changes to accommodate open-sourcing of the library and to + ensure functionality alignment with other SDK releases. # 19.0.0 -- [changed] Versioned to add nullability annotations to improve the Kotlin developer experience. No - other changes. +- [changed] Versioned to add nullability annotations to improve the Kotlin + developer experience. No other changes. # 18.0.2 @@ -342,20 +356,23 @@ The Kotlin extensions library has no additional updates. # 17.2.0 - [feature] Adds support for card in-app messages. -- [feature] Adds direct triggering (via [inappmessaging] SDK) of in-app messages. +- [feature] Adds direct triggering (via [inappmessaging] SDK) of in-app + messages. # 17.1.1 -- [fixed] Fixed [firestore] and [inappmessaging] compatibility on Android API level 19 (KitKat). The - underlying issue was that [firestore] and [cloud_functions] couldn't agree on which ciphers to - use; this update fixes this issue by overriding the set of ciphers that they use. Refer to - [GitHub issue 244](https://github.com/firebase/firebase-android-sdk/issues/244) for more - information. +- [fixed] Fixed [firestore] and [inappmessaging] compatibility on Android API + level 19 (KitKat). The underlying issue was that [firestore] and + [cloud_functions] couldn't agree on which ciphers to use; this update fixes + this issue by overriding the set of ciphers that they use. Refer to + [GitHub issue 244](https://github.com/firebase/firebase-android-sdk/issues/244) + for more information. # 17.1.0 -- [feature] Adds functionality to programmatically register listeners for updates on in-app - engagement (for example, impression, click, display errors). See +- [feature] Adds functionality to programmatically register listeners for + updates on in-app engagement (for example, impression, click, display errors). + See [`FirebaseInAppMessaging.addClickListener()`]() for more details. @@ -365,17 +382,17 @@ The Kotlin extensions library has no additional updates. # 17.0.3 -- [fixed] Improved caching logic, added safeguards for cache expiration, and cleaned up API surface - to prepare for open sourcing the [inappmessaging]-display SDK. +- [fixed] Improved caching logic, added safeguards for cache expiration, and + cleaned up API surface to prepare for open sourcing the + [inappmessaging]-display SDK. # 17.0.1 -- [fixed] Fixed an issue where [fiam] and Firestore could not be included/built into the same app, - because of an obfuscation collision. +- [fixed] Fixed an issue where [fiam] and Firestore could not be included/built + into the same app, because of an obfuscation collision. # 17.0.0 -- [feature] The initial public beta release of the Firebase In-App Messaging SDK for Android is now - available. To learn more, see the +- [feature] The initial public beta release of the Firebase In-App Messaging SDK + for Android is now available. To learn more, see the [Firebase In-App Messaging documentation](/docs/in-app-messaging). - diff --git a/firebase-installations-interop/CHANGELOG.md b/firebase-installations-interop/CHANGELOG.md index 29be6ec122c..a997684d910 100644 --- a/firebase-installations-interop/CHANGELOG.md +++ b/firebase-installations-interop/CHANGELOG.md @@ -4,4 +4,3 @@ - [changed] Release to align with installations release - [changed] Release to align with ktx changes - diff --git a/firebase-installations/CHANGELOG.md b/firebase-installations/CHANGELOG.md index 4ac6a598a53..3a67b880e5d 100644 --- a/firebase-installations/CHANGELOG.md +++ b/firebase-installations/CHANGELOG.md @@ -18,10 +18,11 @@ # 19.0.0 -- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or higher. -- [removed] **Breaking Change**: Stopped releasing the deprecated Kotlin extensions (KTX) module and - removed it from the Firebase Android BoM. Instead, use the KTX APIs from the main module. For - details, see the +- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or + higher. +- [removed] **Breaking Change**: Stopped releasing the deprecated Kotlin + extensions (KTX) module and removed it from the Firebase Android BoM. Instead, + use the KTX APIs from the main module. For details, see the [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration). # 18.0.0 @@ -35,15 +36,18 @@ The Kotlin extensions library has no additional updates. # 17.2.0 -- [changed] Added Kotlin extensions (KTX) APIs from `com.google.firebase:firebase-installations-ktx` - to `com.google.firebase:firebase-installations` under the `com.google.firebase.installations` - package. For details, see the +- [changed] Added Kotlin extensions (KTX) APIs from + `com.google.firebase:firebase-installations-ktx` to + `com.google.firebase:firebase-installations` under the + `com.google.firebase.installations` package. For details, see the [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration) -- [deprecated] All the APIs from `com.google.firebase:firebase-installations-ktx` have been added to - `com.google.firebase:firebase-installations` under the `com.google.firebase.installations` - package, and all the Kotlin extensions (KTX) APIs in - `com.google.firebase:firebase-installations-ktx` are now deprecated. As early as April 2024, we'll - no longer release KTX modules. For details, see the +- [deprecated] All the APIs from + `com.google.firebase:firebase-installations-ktx` have been added to + `com.google.firebase:firebase-installations` under the + `com.google.firebase.installations` package, and all the Kotlin extensions + (KTX) APIs in `com.google.firebase:firebase-installations-ktx` are now + deprecated. As early as April 2024, we'll no longer release KTX modules. For + details, see the [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration) ## Kotlin @@ -57,12 +61,11 @@ The Kotlin extensions library has no additional updates. # 17.1.2 -- [fixed] Updated `firebase-common` to its latest version (v20.3.0) to fix an issue that was causing - a nondeterministic crash on startup. +- [fixed] Updated `firebase-common` to its latest version (v20.3.0) to fix an + issue that was causing a nondeterministic crash on startup. # 17.1.0 -- [changed] Internal changes to ensure functionality alignment with other SDK releases. For more - details, refer to the +- [changed] Internal changes to ensure functionality alignment with other SDK + releases. For more details, refer to the [Firebase Instance ID v21.1.0 release notes](/support/release-notes/android#iid_v21-1-0). - diff --git a/firebase-messaging-directboot/CHANGELOG.md b/firebase-messaging-directboot/CHANGELOG.md index ded33f3222c..8c5d1a3aed8 100644 --- a/firebase-messaging-directboot/CHANGELOG.md +++ b/firebase-messaging-directboot/CHANGELOG.md @@ -18,7 +18,8 @@ # 25.0.0 -- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or higher. +- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or + higher. # 24.1.2 @@ -67,97 +68,102 @@ # 23.1.0 -- [changed] Internal changes to ensure functionality alignment with other SDK releases. +- [changed] Internal changes to ensure functionality alignment with other SDK + releases. # 23.0.8 -- [changed] Updated dependency of `play-services-basement` to its latest version (v18.1.0). +- [changed] Updated dependency of `play-services-basement` to its latest version + (v18.1.0). # 23.0.7 -- [changed] Updated `minSdkVersion` to 19 to match [messaging_longer] `minSdkVersion`. -- [changed] Updated `FirebaseMessagingDirectBootReceiver` to match [messaging_longer] - `FirebaseInstanceIdReceiver`. +- [changed] Updated `minSdkVersion` to 19 to match [messaging_longer] + `minSdkVersion`. +- [changed] Updated `FirebaseMessagingDirectBootReceiver` to match + [messaging_longer] `FirebaseInstanceIdReceiver`. - [changed] Removed unused dependencies. # 23.0.6 -- [changed] Internal changes to ensure functionality alignment with other SDK releases. For more - details, refer to the - [[messaging_longer] v23.0.6 release notes](/support/release-notes/android#messaging_v23-0-6). +- [changed] Internal changes to ensure functionality alignment with other SDK + releases. For more details, refer to the [[messaging_longer] v23.0.6 release + notes](/support/release-notes/android#messaging_v23-0-6). # 23.0.5 -- [changed] Internal changes to ensure functionality alignment with other SDK releases. For more - details, refer to the - [[messaging_longer] v23.0.5 release notes](/support/release-notes/android#messaging_v23-0-5). +- [changed] Internal changes to ensure functionality alignment with other SDK + releases. For more details, refer to the [[messaging_longer] v23.0.5 release + notes](/support/release-notes/android#messaging_v23-0-5). # 23.0.3 -- [changed] Internal changes to ensure functionality alignment with other SDK releases. For more - details, refer to the - [[messaging_longer] v23.0.3 release notes](/support/release-notes/android#messaging_v23-0-3). +- [changed] Internal changes to ensure functionality alignment with other SDK + releases. For more details, refer to the [[messaging_longer] v23.0.3 release + notes](/support/release-notes/android#messaging_v23-0-3). # 23.0.2 -- [fixed] Fixed an issue where the messaging component in the [firebase_bom_long] leaked the - `httpcomponents` transitive dependencies. +- [fixed] Fixed an issue where the messaging component in the + [firebase_bom_long] leaked the `httpcomponents` transitive dependencies. # 23.0.1 -- [changed] Updated dependencies of `play-services-basement`, `play-services-base`, and - `play-services-tasks` to their latest versions (v18.0.0, v18.0.1, and v18.0.1, respectively). For - more information, see the [note](#basement18-0-0_base18-0-1_tasks18-0-1) at the top of this - release entry. -- [changed] Internal changes to ensure functionality alignment with other SDK releases. For more - details, refer to the - [[messaging_longer] v23.0.1 release note](/support/release-notes/android#messaging_v23-0-1). +- [changed] Updated dependencies of `play-services-basement`, + `play-services-base`, and `play-services-tasks` to their latest versions + (v18.0.0, v18.0.1, and v18.0.1, respectively). For more information, see the + [note](#basement18-0-0_base18-0-1_tasks18-0-1) at the top of this release + entry. +- [changed] Internal changes to ensure functionality alignment with other SDK + releases. For more details, refer to the [[messaging_longer] v23.0.1 release + note](/support/release-notes/android#messaging_v23-0-1). # 23.0.0 -- [changed] Internal changes to ensure functionality alignment with other SDK releases. For more - details, refer to the - [[messaging_longer] v23.0.0 release notes](/support/release-notes/android#messaging_v23-0-0). +- [changed] Internal changes to ensure functionality alignment with other SDK + releases. For more details, refer to the [[messaging_longer] v23.0.0 release + notes](/support/release-notes/android#messaging_v23-0-0). # 22.0.0 -- [changed] Internal changes to ensure functionality alignment with other SDK releases. +- [changed] Internal changes to ensure functionality alignment with other SDK + releases. - [changed] Internal changes to support dynamic feature modules. - [changed] Internal infrastructure improvements. # 21.1.0 -- [changed] Internal changes to ensure functionality alignment with other SDK releases. For more - details, refer to the - [[messaging_longer] v21.1.0 release notes](/support/release-notes/android#messaging_v21-1-0). +- [changed] Internal changes to ensure functionality alignment with other SDK + releases. For more details, refer to the [[messaging_longer] v21.1.0 release + notes](/support/release-notes/android#messaging_v21-1-0). # 21.0.1 -- [changed] Internal changes to ensure functionality alignment with other SDK releases. For more - details, refer to the - [[messaging_longer] v21.0.1 release note](/support/release-notes/android#messaging_v21-0-1). +- [changed] Internal changes to ensure functionality alignment with other SDK + releases. For more details, refer to the [[messaging_longer] v21.0.1 release + note](/support/release-notes/android#messaging_v21-0-1). # 21.0.0 -- [changed] Internal changes to ensure functionality alignment with other SDK releases. For more - details, refer to the - [[messaging_longer] v21.0.0 release note](/support/release-notes/android#messaging_v21-0-0). +- [changed] Internal changes to ensure functionality alignment with other SDK + releases. For more details, refer to the [[messaging_longer] v21.0.0 release + note](/support/release-notes/android#messaging_v21-0-0). # 20.3.0 -- [changed] Internal changes to the Google Play services interface to improve future development - velocity. +- [changed] Internal changes to the Google Play services interface to improve + future development velocity. # 20.2.4 -- [changed] Internal changes to ensure functionality alignment with other SDK releases. For more - information, refer to the +- [changed] Internal changes to ensure functionality alignment with other SDK + releases. For more information, refer to the [Firebase Installations v16.3.3 release notes](/support/release-notes/android#installations_v16-3-3). # 20.2.3 -- [changed] Internal changes to ensure functionality alignment with other SDK releases. For more - details, see the +- [changed] Internal changes to ensure functionality alignment with other SDK + releases. For more details, see the [`firebase-messaging` v20.2.3 release note](/support/release-notes/android#messaging_v20-2-3). # 20.2.2 @@ -172,14 +178,13 @@ issue was released on July 08, 2020 (see # 20.2.1 -- [changed] Internal changes to ensure functionality alignment with other SDK releases. For more - information, refer to the +- [changed] Internal changes to ensure functionality alignment with other SDK + releases. For more information, refer to the [Firebase Instance ID v20.2.1 release notes](/support/release-notes/android#iid_v20-2-1). # 20.2.0 -- [feature] The Firebase Cloud Messaging Direct Boot SDK is now available and supports receiving FCM - messages in Direct Boot mode. See +- [feature] The Firebase Cloud Messaging Direct Boot SDK is now available and + supports receiving FCM messages in Direct Boot mode. See [Receive FCM messages in direct boot mode](/docs/cloud-messaging/android/receive#receive_fcm_messages_in_direct_boot_mode) for more information. - diff --git a/firebase-messaging/CHANGELOG.md b/firebase-messaging/CHANGELOG.md index 870d44e99ef..38745aa9aab 100644 --- a/firebase-messaging/CHANGELOG.md +++ b/firebase-messaging/CHANGELOG.md @@ -8,8 +8,10 @@ # 25.1.0 -- [feature] Added support for FCM registration using Firebase Installation ID (#8087) -- [deprecated] Existing getToken, deleteToken, onNewToken api(s) are deprecated (#8087) +- [feature] Added support for FCM registration using Firebase Installation ID + (#8087) +- [deprecated] Existing getToken, deleteToken, onNewToken api(s) are deprecated + (#8087) # 25.0.2 @@ -21,15 +23,17 @@ # 25.0.0 -- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or higher. -- [removed] **Breaking Change**: Stopped releasing the deprecated Kotlin extensions (KTX) module and - removed it from the Firebase Android BoM. Instead, use the KTX APIs from the main module. For - details, see the +- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or + higher. +- [removed] **Breaking Change**: Stopped releasing the deprecated Kotlin + extensions (KTX) module and removed it from the Firebase Android BoM. Instead, + use the KTX APIs from the main module. For details, see the [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration). # 24.1.2 -- [changed] Added a NamedThreadFactory to WithinAppServiceConnection's service connection Executor. +- [changed] Added a NamedThreadFactory to WithinAppServiceConnection's service + connection Executor. ## Kotlin @@ -38,8 +42,8 @@ Kotlin extensions library has no additional updates. # 24.1.1 -- [changed] Bug fix in SyncTask to always unregister the receiver on the same context on which it - was registered. +- [changed] Bug fix in SyncTask to always unregister the receiver on the same + context on which it was registered. ## Kotlin @@ -48,11 +52,13 @@ Kotlin extensions library has no additional updates. # 24.1.0 -- [deprecated] Deprecated additional FCM upstream messaging methods and updated all upstream methods - to indicate they are now decommissioned. See the - [FAQ](https://firebase.google.com/support/faq#fcm-23-deprecation) for more details. -- [changed] Changed WithinAppServiceConnection's ScheduledThreadPoolExecutor's configuration to - allow the thread to stop polling after the timeout task has been canceled. +- [deprecated] Deprecated additional FCM upstream messaging methods and updated + all upstream methods to indicate they are now decommissioned. See the + [FAQ](https://firebase.google.com/support/faq#fcm-23-deprecation) for more + details. +- [changed] Changed WithinAppServiceConnection's ScheduledThreadPoolExecutor's + configuration to allow the thread to stop polling after the timeout task has + been canceled. ## Kotlin @@ -75,10 +81,10 @@ Kotlin extensions library has no additional updates. # 24.0.1 -- [changed] Retry Topic Subscribe/Unsubscribe operations with exponential backoff if they hit a - quota error. -- [changed] Checked for notification_open duplicate logging based on message ID instead of the - Activity's Intent. +- [changed] Retry Topic Subscribe/Unsubscribe operations with exponential + backoff if they hit a quota error. +- [changed] Checked for notification_open duplicate logging based on message ID + instead of the Activity's Intent. ## Kotlin @@ -88,7 +94,8 @@ Kotlin extensions library has no additional updates. # 24.0.0 - [changed] Switched Firelog to use the new TransportBackend. -- [changed] Log analytics for notifications displayed by Google Play services on behalf of the app. +- [changed] Log analytics for notifications displayed by Google Play services on + behalf of the app. ## Kotlin @@ -112,9 +119,10 @@ Kotlin extensions library has no additional updates. # 23.3.1 -- [changed] Added metadata to FirebaseInstanceIdReceiver to signal that it finishes background - broadcasts after the message has been handled. -- [changed] Specified notification's dismiss intent target via action instead of component name. +- [changed] Added metadata to FirebaseInstanceIdReceiver to signal that it + finishes background broadcasts after the message has been handled. +- [changed] Specified notification's dismiss intent target via action instead of + component name. ## Kotlin @@ -123,14 +131,16 @@ Kotlin extensions library has no additional updates. # 23.3.0 -- [changed] Added Kotlin extensions (KTX) APIs from `com.google.firebase:firebase-messaging-ktx` to - `com.google.firebase:firebase-messaging` under the `com.google.firebase.messaging` package. For - details, see the +- [changed] Added Kotlin extensions (KTX) APIs from + `com.google.firebase:firebase-messaging-ktx` to + `com.google.firebase:firebase-messaging` under the + `com.google.firebase.messaging` package. For details, see the [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration) -- [deprecated] All the APIs from `com.google.firebase:firebase-messaging-ktx` have been added to - `com.google.firebase:firebase-messaging` under the `com.google.firebase.messaging` package, and - all the Kotlin extensions (KTX) APIs in `com.google.firebase:firebase-messaging-ktx` are now - deprecated. As early as April 2024, we'll no longer release KTX modules. For details, see the +- [deprecated] All the APIs from `com.google.firebase:firebase-messaging-ktx` + have been added to `com.google.firebase:firebase-messaging` under the + `com.google.firebase.messaging` package, and all the Kotlin extensions (KTX) + APIs in `com.google.firebase:firebase-messaging-ktx` are now deprecated. As + early as April 2024, we'll no longer release KTX modules. For details, see the [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration) ## Kotlin @@ -140,14 +150,16 @@ Kotlin extensions library has no additional updates. # 23.2.1 -- [changed] Changed to finish a background broadcast after the message has been handled, subject to - a timeout. This keeps the `FirebaseMessagingService`'s process in an active state while it is - handling an FCM message, up to the 20 seconds allowed. +- [changed] Changed to finish a background broadcast after the message has been + handled, subject to a timeout. This keeps the `FirebaseMessagingService`'s + process in an active state while it is handling an FCM message, up to the 20 + seconds allowed. # 23.2.0 - [deprecated] Deprecated FCM upstream messaging. See the - [FAQ](https://firebase.google.com/support/faq#fcm-23-deprecation) for more details. + [FAQ](https://firebase.google.com/support/faq#fcm-23-deprecation) for more + details. ## Kotlin @@ -176,8 +188,8 @@ Kotlin extensions library has no additional updates. # 23.1.0 -- [unchanged] Updated to accommodate the release of the updated [messaging_longer] Kotlin extensions - library. +- [unchanged] Updated to accommodate the release of the updated + [messaging_longer] Kotlin extensions library. ## Kotlin @@ -185,14 +197,16 @@ The Kotlin extensions library transitively includes the updated `firebase-messag Kotlin extensions library has the following additional updates: - [feature] Firebase now supports Kotlin coroutines. With this release, we added - [`kotlinx-coroutines-play-services`](https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-play-services/){: - .external} to `firebase-messaging-ktx` as a transitive dependency, which exposes the + [`kotlinx-coroutines-play-services`](https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-play-services/){: .external} + to `firebase-messaging-ktx` as a transitive dependency, which exposes the `Task.await()` suspend function to convert a - [`Task`](https://developers.google.com/android/guides/tasks) into a Kotlin coroutine. + [`Task`](https://developers.google.com/android/guides/tasks) into a Kotlin + coroutine. # 23.0.8 -- [changed] Updated dependency of `play-services-basement` to its latest version (v18.1.0). +- [changed] Updated dependency of `play-services-basement` to its latest version + (v18.1.0). ## Kotlin @@ -201,8 +215,8 @@ Kotlin extensions library has no additional updates. # 23.0.7 -- [changed] Message broadcasts now finish immediately after binding to the service. This change - should reduce the chance of ANRs. +- [changed] Message broadcasts now finish immediately after binding to the + service. This change should reduce the chance of ANRs. ## Kotlin @@ -211,10 +225,11 @@ Kotlin extensions library has no additional updates. # 23.0.6 -- [changed] Added the `POST_NOTIFICATIONS` permission to enable posting notifications when targeting - SDK level 33. See [messaging] guidance on how to +- [changed] Added the `POST_NOTIFICATIONS` permission to enable posting + notifications when targeting SDK level 33. See [messaging] guidance on how to [request runtime notification permission on Android 13+](/docs/cloud-messaging/android/client#request-permission13) -- [fixed] Added an annotation to an internal class to fix a missing class warning. +- [fixed] Added an annotation to an internal class to fix a missing class + warning. ## Kotlin @@ -225,7 +240,8 @@ Kotlin extensions library has no additional updates. - [fixed] Fixed a dependency on the `firebase-datatransport` layer. ([GitHub #3716](https://github.com/firebase/firebase-android-sdk/issues/3716){: .external}) -- [fixed] Upgraded logging priority for message delivery events to avoid dropped logs. +- [fixed] Upgraded logging priority for message delivery events to avoid dropped + logs. ## Kotlin @@ -235,8 +251,8 @@ Kotlin extensions library has no additional updates. # 23.0.3 - [fixed] Removed test resources from library. -- [fixed] Changed to catch `RuntimeException` when getting the `Bundle` from an `Activity Intent` - while checking for notification analytics data. +- [fixed] Changed to catch `RuntimeException` when getting the `Bundle` from an + `Activity Intent` while checking for notification analytics data. - [changed] Internal changes to notification building methods. ## Kotlin @@ -246,8 +262,8 @@ Kotlin extensions library has no additional updates. # 23.0.2 -- [fixed] Fixed an issue where the messaging component in the [firebase_bom_long] leaked the - `httpcomponents` transitive dependencies. +- [fixed] Fixed an issue where the messaging component in the + [firebase_bom_long] leaked the `httpcomponents` transitive dependencies. ## Kotlin @@ -256,16 +272,20 @@ Kotlin extensions library has no additional updates. # 23.0.1 -- [changed] Updated to the latest version of the `firebase-datatransport` library. -- [changed] Updated dependencies of `play-services-basement`, `play-services-base`, and - `play-services-tasks` to their latest versions (v18.0.0, v18.0.1, and v18.0.1, respectively). For - more information, see the [note](#basement18-0-0_base18-0-1_tasks18-0-1) at the top of this - release entry. -- [fixed] On Android 7.0 and earlier, the SDK now logs that a notification was opened after - `onActivityCreated` to avoid a race condition when unparceling the extras Bundle. -- [fixed] Switched to stopping an image download by canceling a `Future` to interrupt the download - thread. This change avoids errors that can occur in the image downloading library when trying to - close the stream on a different thread than the one that started the download. +- [changed] Updated to the latest version of the `firebase-datatransport` + library. +- [changed] Updated dependencies of `play-services-basement`, + `play-services-base`, and `play-services-tasks` to their latest versions + (v18.0.0, v18.0.1, and v18.0.1, respectively). For more information, see the + [note](#basement18-0-0_base18-0-1_tasks18-0-1) at the top of this release + entry. +- [fixed] On Android 7.0 and earlier, the SDK now logs that a notification was + opened after `onActivityCreated` to avoid a race condition when unparceling + the extras Bundle. +- [fixed] Switched to stopping an image download by canceling a `Future` to + interrupt the download thread. This change avoids errors that can occur in the + image downloading library when trying to close the stream on a different + thread than the one that started the download. - [fixed] Fixed reference documentation for [`RemoteMessage.getMessageId()`](/docs/reference/android/com/google/firebase/messaging/RemoteMessage#public-string-getmessageid) and updated obsolete references to Google Cloud Messaging (GCM). @@ -277,13 +297,16 @@ Kotlin extensions library has no additional updates. # 23.0.0 -- [changed] Due to its [dependency on Google Play services](/docs/android/android-play-services), - this SDK now requires devices and emulators to target API level 19 (KitKat) or higher and to use - Android 4.4 or higher. -- [feature] Added methods for determining and controlling whether Google Play services is set as the - app’s notification delegate. By default, FCM will now set Google Play services as the app’s - notification delegate so that it is allowed to display notifications for the app. This could be - used in the future to show an app’s notifications without needing to start the app, which may +- [changed] Due to its + [dependency on Google Play services](/docs/android/android-play-services), + this SDK now requires devices and emulators to target API level 19 (KitKat) or + higher and to use Android + 4.4 or higher. +- [feature] Added methods for determining and controlling whether Google Play + services is set as the app’s notification delegate. By default, FCM will now + set Google Play services as the app’s notification delegate so that it is + allowed to display notifications for the app. This could be used in the future + to show an app’s notifications without needing to start the app, which may improve message reliability and timeliness. ## Kotlin @@ -293,15 +316,16 @@ Kotlin extensions library has no additional updates. # 22.0.0 -- [changed] Removed dependency on the deprecated Firebase Instance ID SDK. Caution: **This is a - breaking change for apps that use [messaging] and the deprecated Firebase Instance ID API to - manage registration tokens.**
We strongly recommend - [migrating to [messaging]'s token APIs](/docs/projects/manage-installations#fid-iid). If you're - unable to migrate to the replacement APIs, add a direct dependency on the `firebase-iid` library - to your `build.gradle` file. -- [feature] Changed to open an `Activity` directly when a notification is tapped instead of passing - it through `FirebaseMessagingService`. This change is to comply with Android 12 notification - trampoline restrictions. +- [changed] Removed dependency on the deprecated Firebase Instance ID SDK. + Caution: **This is a breaking change for apps that use [messaging] and the + deprecated Firebase Instance ID API to manage registration tokens.**
We + strongly recommend [migrating to [messaging]'s token + APIs](/docs/projects/manage-installations#fid-iid). If you're unable to + migrate to the replacement APIs, add a direct dependency on the `firebase-iid` + library to your `build.gradle` file. +- [feature] Changed to open an `Activity` directly when a notification is tapped + instead of passing it through `FirebaseMessagingService`. This change is to + comply with Android 12 notification trampoline restrictions. - [feature] Internal changes to use proto instead of JSON for logging. - [changed] Internal changes to support dynamic feature modules. - [changed] Internal infrastructure improvements. @@ -313,11 +337,12 @@ Kotlin extensions library has no additional updates. # 21.1.0 -- [feature] Migrated internal handling of new token callbacks and notification actions from Firebase - Instance ID to [firebase_messaging]. -- [feature] Added functionality to generate [messaging] tokens from `FirebaseMessaging.getToken`, - while continuing to call through to Firebase Instance ID if it is present. This will allow - [firebase_messaging] to remove its dependency on Firebase Instance ID in the future. +- [feature] Migrated internal handling of new token callbacks and notification + actions from Firebase Instance ID to [firebase_messaging]. +- [feature] Added functionality to generate [messaging] tokens from + `FirebaseMessaging.getToken`, while continuing to call through to Firebase + Instance ID if it is present. This will allow [firebase_messaging] to remove + its dependency on Firebase Instance ID in the future. ## Kotlin @@ -336,10 +361,12 @@ Kotlin extensions library has no additional updates. # 21.0.0 -- [feature] Migrated auto-initialization from Firebase Instance ID to [firebase_messaging]. -- [feature] Added a check for incompatible versions of Firebase Instance ID. An exception is thrown - during instantiation if one is found. -- [fixed] Fixed an issue where events were erronously logged to [firebase_analytics] twice. +- [feature] Migrated auto-initialization from Firebase Instance ID to + [firebase_messaging]. +- [feature] Added a check for incompatible versions of Firebase Instance ID. An + exception is thrown during instantiation if one is found. +- [fixed] Fixed an issue where events were erronously logged to + [firebase_analytics] twice. ## Kotlin @@ -353,25 +380,26 @@ Kotlin extensions library has no additional updates. and [`deleteToken`]() methods directly to `FirebaseMessaging`. -- [changed] Internal changes to the Google Play services interface to improve future development - velocity. +- [changed] Internal changes to the Google Play services interface to improve + future development velocity. ## Kotlin -- [feature] The [messaging_longer] Android library with Kotlin extensions is now available. The - Kotlin extensions library transitively includes the base `firebase-messaging` library. To learn - more, visit the - [[messaging_longer] KTX documentation](/docs/reference/kotlin/com/google/firebase/messaging/ktx/package-summary). +- [feature] The [messaging_longer] Android library with Kotlin extensions is now + available. The Kotlin extensions library transitively includes the base + `firebase-messaging` library. To learn more, visit the [[messaging_longer] KTX + documentation](/docs/reference/kotlin/com/google/firebase/messaging/ktx/package-summary). # 20.2.4 -- [changed] Internal changes to ensure functionality alignment with other SDK releases. For more - information, refer to the +- [changed] Internal changes to ensure functionality alignment with other SDK + releases. For more information, refer to the [Firebase Installations v16.3.3 release notes](/support/release-notes/android#installations_v16-3-3). # 20.2.3 -- [fixed] Fixed an issue that caused an app to crash when a user tapped on a received notification. +- [fixed] Fixed an issue that caused an app to crash when a user tapped on a + received notification. # 20.2.2 @@ -383,26 +411,27 @@ released on July 08, 2020 (see [v20.2.3](/support/release-notes/android#messagin # 20.2.1 -- [changed] Internal changes to ensure functionality alignment with other SDK releases. For more - information, refer to the +- [changed] Internal changes to ensure functionality alignment with other SDK + releases. For more information, refer to the [Firebase Instance ID v20.2.1 release notes](/support/release-notes/android#iid_v20-2-1). # 20.2.0 -- [changed] Internal changes to ensure functionality alignment with other SDK releases (for more - information, refer to the - [[messaging_longer] Direct Boot v20.2.0 release notes](/support/release-notes/android#messaging-directboot_v20-2-0)). +- [changed] Internal changes to ensure functionality alignment with other SDK + releases (for more information, refer to the [[messaging_longer] Direct Boot + v20.2.0 release + notes](/support/release-notes/android#messaging-directboot_v20-2-0)). # 20.1.7 -- [changed] Internal changes to ensure functionality alignment with other SDK releases (for more - information, refer to the +- [changed] Internal changes to ensure functionality alignment with other SDK + releases (for more information, refer to the [Firebase Instance ID v20.1.7 release notes](/support/release-notes/android#iid_v20-1-7)). # 20.1.6 -- [fixed] Fixed a bug in topic syncing that was causing increased usage of shared system resources - when waiting for a working network connection. +- [fixed] Fixed a bug in topic syncing that was causing increased usage of + shared system resources when waiting for a working network connection. # 20.1.5 @@ -411,7 +440,8 @@ resources which can negatively impact the performance of a user's device. To avo **update your app's version of `firebase-messaging` to [v20.1.6](/support/release-notes/android#messaging_v20-1-6) or later**. -- [changed] Internal changes to ensure functionality alignment with other SDK releases. +- [changed] Internal changes to ensure functionality alignment with other SDK + releases. # 20.1.4 @@ -420,19 +450,21 @@ resources which can negatively impact the performance of a user's device. To avo **update your app's version of `firebase-messaging` to [v20.1.6](/support/release-notes/android#messaging_v20-1-6) or later**. -- [changed] Internal changes to ensure functionality alignment with other SDK releases. +- [changed] Internal changes to ensure functionality alignment with other SDK + releases. # 20.1.3 -- [changed] Internal changes to ensure functionality alignment with other SDK releases. +- [changed] Internal changes to ensure functionality alignment with other SDK + releases. # 20.1.2 **As of v20.1.1, the [messaging_longer] SDK depends on the [installations_sdk]. Learn about possible impacts in the [v20.1.1 release notes](/support/release-notes/android#messaging_v20-1-1).** -- [changed] Internal changes to ensure functionality alignment with other SDK releases (for more - information, refer to the bug fix in the +- [changed] Internal changes to ensure functionality alignment with other SDK + releases (for more information, refer to the bug fix in the [Firebase Instance ID v20.1.1 release notes](/support/release-notes/android#iid_v20-1-1)). # 20.1.1 @@ -441,23 +473,28 @@ Warning: This version of `firebase-messaging` (v20.1.1) has known issues involvi and should not be used. A fix for these issues was released on [March 03, 2020](/support/release-notes/android#2020-03-03). -- [changed] Changed the default for notification titles. Previously, an empty title was replaced - with the app's label, but now an empty title causes the notification title to be omitted. +- [changed] Changed the default for notification titles. Previously, an empty + title was replaced with the app's label, but now an empty title causes the + notification title to be omitted. - [fixed] Fixed an issue that could cause ANRs when receiving messages. -- [changed] [messaging_longer] now transitively depends on the [installations_sdk]. After updating - to the latest dependency versions, make sure that push notifications still work as expected. Also, - be aware of the following: - - The [messaging] registration tokens of installed instances of your apps might change once after - updating dependencies to their latest versions. To learn if your apps are affected, review the - [firebase_installations] documentation. Also, make sure to - monitor [messaging] - registration token generation using the #onNewToken implementation. - - - Apps that use the Firebase auto-initialization process and the Gradle plugin to convert - `google-services.json` into resources are unaffected. However, apps that create their own - `FirebaseOptions` instances must provide a valid API key, Firebase project ID, and application - ID. +- [changed] [messaging_longer] now transitively depends on the + [installations_sdk]. After updating to the latest dependency versions, make + sure that push notifications still work as expected. Also, be aware of the + following: + - The [messaging] registration tokens of installed instances of your apps + might change once after updating dependencies to their latest versions. To + learn if your apps are affected, review the [firebase_installations] documentation. Also, make sure + to monitor + [messaging] registration token generation using the + #onNewToken implementation. + + - Apps that use the Firebase auto-initialization process and the Gradle + plugin to convert `google-services.json` into resources are unaffected. + However, apps that create their own `FirebaseOptions` instances must provide + a valid API key, Firebase project ID, and application ID. # 20.1.0 @@ -466,29 +503,32 @@ and should not be used. A fix for these issues was released on and [`deliveryMetricsExportToBigQueryEnabled()`]() to control and query if messsage delivery metrics are exported to BigQuery. -- [changed] Changed to catch and log NullPointerException when trying to close the image download - stream. This NPE can happen if the image download takes too long and times out. +- [changed] Changed to catch and log NullPointerException when trying to close + the image download stream. This NPE can happen if the image download takes too + long and times out. # 20.0.1 -- [fixed] Fixed notifications on API level 24 and later to display the event time when `event_time` - is set. +- [fixed] Fixed notifications on API level 24 and later to display the event + time when `event_time` is set. # 20.0.0 -- [feature] Added support for more Android notification parameters, including: `ticker`, - `sticky`,`event_time`, `local_only`, `notification_priority`, `default_sound`, - `default_vibrate_timings`, `default_light_settings`, `visibility`, `notification_count`, - `vibrate_timings` and `light_settings`. +- [feature] Added support for more Android notification parameters, including: + `ticker`, `sticky`,`event_time`, `local_only`, `notification_priority`, + `default_sound`, `default_vibrate_timings`, `default_light_settings`, + `visibility`, `notification_count`, `vibrate_timings` and `light_settings`. - [feature] Added support for Android notifications that include an image. -- [changed] Added nullability annotations to improve the Kotlin developer experience. +- [changed] Added nullability annotations to improve the Kotlin developer + experience. # 19.0.1 -- [fixed] Fixed an issue where `FirebaseMessagingService.onNewToken` would be invoked for tokens - created for non-default FirebaseApp instances. -- [fixed] SDK now only retries topic subscriptions and token registration on the following errors: - "ERROR_SERVICE_NOT_AVAILABLE" and "ERROR_INTERNAL_SERVER_ERROR". +- [fixed] Fixed an issue where `FirebaseMessagingService.onNewToken` would be + invoked for tokens created for non-default FirebaseApp instances. +- [fixed] SDK now only retries topic subscriptions and token registration on the + following errors: "ERROR_SERVICE_NOT_AVAILABLE" and + "ERROR_INTERNAL_SERVER_ERROR". # 18.0.0 @@ -496,8 +536,9 @@ and should not be used. A fix for these issues was released on # 17.6.0 -- [feature] Added functionality to automatically download and show an image in a notification - message. Retrieve the image URL set in the message with the `getImageUrl` method in +- [feature] Added functionality to automatically download and show an image in a + notification message. Retrieve the image URL set in the message with the + `getImageUrl` method in [`RemoteMessage.Notification`](/docs/reference/android/com/google/firebase/messaging/RemoteMessage.Notification). # 17.5.0 @@ -517,26 +558,28 @@ and should not be used. A fix for these issues was released on # 17.3.2 -- [fixed] Fixed an issue that would occasionally cause apps to crash with Android Not Responding - (ANR) errors when receiving a message. +- [fixed] Fixed an issue that would occasionally cause apps to crash with + Android Not Responding (ANR) errors when receiving a message. # 17.3.0 -- [changed] Incremented the version number to 17.3.0 due to internal SDK changes. These changes do - not affect client functionality, and developers do not need to take any action. +- [changed] Incremented the version number to 17.3.0 due to internal SDK + changes. These changes do not affect client functionality, and developers do + not need to take any action. # 17.1.0 - [feature] Added `onNewToken` method to [`FirebaseMessagingService`](/docs/reference/android/com/google/firebase/messaging/FirebaseMessagingService) - which is invoked when the app gets a new Instance ID token or its existing token changes. + which is invoked when the app gets a new Instance ID token or its existing + token changes. # 17.0.0 - [feature] Added `getPriority()` and `getOriginalPriority()` methods to [`RemoteMessage`](/docs/reference/android/com/google/firebase/messaging/RemoteMessage). - [changed] The methods `subscribeToTopic()` and `unsubscribeFromTopic()` on - [`FirebaseMessaging`](/docs/reference/android/com/google/firebase/messaging/FirebaseMessaging) now - return a [`Task`](/docs/reference/android/com/google/android/gms/tasks/Task) that can be used to - see when the request has completed. - + [`FirebaseMessaging`](/docs/reference/android/com/google/firebase/messaging/FirebaseMessaging) + now return a + [`Task`](/docs/reference/android/com/google/android/gms/tasks/Task) that can + be used to see when the request has completed. diff --git a/firebase-ml-modeldownloader/CHANGELOG.md b/firebase-ml-modeldownloader/CHANGELOG.md index 2ce5f532b77..5f998cb6daa 100644 --- a/firebase-ml-modeldownloader/CHANGELOG.md +++ b/firebase-ml-modeldownloader/CHANGELOG.md @@ -1,13 +1,15 @@ # Unreleased -- [changed] Updated the Firebase ML deprecation message to link to the Firebase ML documentation for migration options. +- [changed] Updated the Firebase ML deprecation message to link to the Firebase + ML documentation for migration options. # 26.1.0 -- [deprecated] Firebase ML is deprecated and will be shut down on June 15, 2027. - To host custom models, you must migrate to another solution. You can use Cloud Storage for Firebase - as an alternative for hosting custom models. For more info, see - https://firebase.google.com/docs/ml/migrate-to-cloud-storage. +- [deprecated] Firebase ML is deprecated and will be shut down on June 15, + 2027. To host custom models, you must migrate to another solution. You can + use Cloud Storage for Firebase as an alternative for hosting custom models. + For more info, see + https://firebase.google.com/docs/ml/migrate-to-cloud-storage. # 26.0.2 @@ -19,10 +21,11 @@ # 26.0.0 -- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or higher. -- [removed] **Breaking Change**: Stopped releasing the deprecated Kotlin extensions (KTX) module and - removed it from the Firebase Android BoM. Instead, use the KTX APIs from the main module. For - details, see the +- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or + higher. +- [removed] **Breaking Change**: Stopped releasing the deprecated Kotlin + extensions (KTX) module and removed it from the Firebase Android BoM. Instead, + use the KTX APIs from the main module. For details, see the [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration). # 25.0.1 @@ -55,8 +58,9 @@ library. The Kotlin extensions library has no additional updates. # 24.2.2 -- [fixed] Fixed `SecurityException` where the `RECEIVER_EXPORTED` or `RECEIVER_NOT_EXPORTED` flag - should be specified when registerReceiver is being used. +- [fixed] Fixed `SecurityException` where the `RECEIVER_EXPORTED` or + `RECEIVER_NOT_EXPORTED` flag should be specified when registerReceiver is + being used. [#5597](https://github.com/firebase/firebase-android-sdk/pull/5597) ## Kotlin @@ -80,11 +84,13 @@ library. The Kotlin extensions library has no additional updates. `com.google.firebase:firebase-ml-modeldownloader` under the `com.google.firebase.ml.modeldownloader` package. For details, see the [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration) -- [deprecated] All the APIs from `com.google.firebase:firebase-ml-modeldownloader-ktx` have been - added to `com.google.firebase:firebase-ml-modeldownloader` under the - `com.google.firebase.ml.modeldownloader` package, and all the Kotlin extensions (KTX) APIs in - `com.google.firebase:firebase-ml-modeldownloader-ktx` are now deprecated. As early as April 2024, - we'll no longer release KTX modules. For details, see the +- [deprecated] All the APIs from + `com.google.firebase:firebase-ml-modeldownloader-ktx` have been added to + `com.google.firebase:firebase-ml-modeldownloader` under the + `com.google.firebase.ml.modeldownloader` package, and all the Kotlin + extensions (KTX) APIs in `com.google.firebase:firebase-ml-modeldownloader-ktx` + are now deprecated. As early as April 2024, we'll no longer release KTX + modules. For details, see the [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration) ## Kotlin @@ -110,8 +116,8 @@ library. The Kotlin extensions library has no additional updates. # 24.1.1 - [fixed] Fixed an issue where `FirebaseModelDownloader.getModel` was throwing - `FirebaseMlException.PERMISSION_DENIED` when the model name was empty. It now throws - `FirebaseMlException.INVALID_ARGUMENT` (#4157) + `FirebaseMlException.PERMISSION_DENIED` when the model name was empty. It now + throws `FirebaseMlException.INVALID_ARGUMENT` (#4157) ## Kotlin @@ -120,8 +126,8 @@ library. The Kotlin extensions library has no additional updates. # 24.1.0 -- [unchanged] Updated to accommodate the release of the updated [firebase_ml] Kotlin extensions - library. +- [unchanged] Updated to accommodate the release of the updated [firebase_ml] + Kotlin extensions library. ## Kotlin @@ -129,14 +135,16 @@ The Kotlin extensions library transitively includes the updated `firebase-ml-mod library. The Kotlin extensions library has the following additional updates: - [feature] Firebase now supports Kotlin coroutines. With this release, we added - [`kotlinx-coroutines-play-services`](https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-play-services/){: - .external} to `firebase-ml-modeldownloader-ktx` as a transitive dependency, which exposes the - `Task.await()` suspend function to convert a - [`Task`](https://developers.google.com/android/guides/tasks) into a Kotlin coroutine. + [`kotlinx-coroutines-play-services`](https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-play-services/){: .external} + to `firebase-ml-modeldownloader-ktx` as a transitive dependency, which exposes + the `Task.await()` suspend function to convert a + [`Task`](https://developers.google.com/android/guides/tasks) into a Kotlin + coroutine. # 24.0.5 -- [changed] Updated dependency of `play-services-basement` to its latest version (v18.1.0). +- [changed] Updated dependency of `play-services-basement` to its latest version + (v18.1.0). ## Kotlin @@ -145,8 +153,8 @@ library. The Kotlin extensions library has no additional updates. # 24.0.4 -- [fixed] Fixed a race condition that was caused when differently sized models were concurrently - downloaded using this SDK and the Model Downloader from the +- [fixed] Fixed a race condition that was caused when differently sized models + were concurrently downloaded using this SDK and the Model Downloader from the `com.google.firebase:firebase-ml-common` SDK. (#3321) ## Kotlin @@ -156,10 +164,11 @@ library. The Kotlin extensions library has no additional updates. # 24.0.3 -- [changed] Updated dependencies of `play-services-basement`, `play-services-base`, and - `play-services-tasks` to their latest versions (v18.0.0, v18.0.1, and v18.0.1, respectively). For - more information, see the [note](#basement18-0-0_base18-0-1_tasks18-0-1) at the top of this - release entry. +- [changed] Updated dependencies of `play-services-basement`, + `play-services-base`, and `play-services-tasks` to their latest versions + (v18.0.0, v18.0.1, and v18.0.1, respectively). For more information, see the + [note](#basement18-0-0_base18-0-1_tasks18-0-1) at the top of this release + entry. ## Kotlin @@ -168,9 +177,10 @@ library. The Kotlin extensions library has no additional updates. # 24.0.2 -- [fixed] Fixed an issue where `FirebaseModelDownloader.getInstance` would crash when using - non-default FirebaseApp instances. (#3321) -- [changed] Updated to the latest version of the `firebase-datatransport` library. +- [fixed] Fixed an issue where `FirebaseModelDownloader.getInstance` would crash + when using non-default FirebaseApp instances. (#3321) +- [changed] Updated to the latest version of the `firebase-datatransport` + library. ## Kotlin @@ -192,14 +202,16 @@ library. The Kotlin extensions library has no additional updates. # 23.0.1 -- [unchanged] Updated to accommodate the release of the [firebase_ml] Kotlin extensions library. +- [unchanged] Updated to accommodate the release of the [firebase_ml] Kotlin + extensions library. ## Kotlin -- [feature] The beta release of a [firebase_ml] Android library with Kotlin extensions is now - available. The Kotlin extensions library transitively includes the base - `firebase-ml-model-downloader` library. To learn more, visit the - [[firebase_ml] KTX documentation](/docs/reference/android/com/google/firebase/ml/modeldownloader/package-summary). +- [feature] The beta release of a [firebase_ml] Android library with Kotlin + extensions is now available. The Kotlin extensions library transitively + includes the base `firebase-ml-model-downloader` library. To learn more, visit + the [[firebase_ml] KTX + documentation](/docs/reference/android/com/google/firebase/ml/modeldownloader/package-summary). # 23.0.0 @@ -210,7 +222,7 @@ The [firebase_ml] Model Downloader SDK provides APIs for downloading models host of the ML Kit Custom Models library (`firebase-ml-model-interpreter`), allowing you to work with custom hosted models without the interpreter API, which is now provided directly by TFLite runtime. -- [feature] Added custom hosted model download and on-device management capabilities. -- [feature] Added ability to get the model download ID, which allows progress tracking of file - downloads. - +- [feature] Added custom hosted model download and on-device management + capabilities. +- [feature] Added ability to get the model download ID, which allows progress + tracking of file downloads. diff --git a/firebase-perf/CHANGELOG.md b/firebase-perf/CHANGELOG.md index a7fa37e9016..ceb8abea341 100644 --- a/firebase-perf/CHANGELOG.md +++ b/firebase-perf/CHANGELOG.md @@ -2,10 +2,11 @@ # 22.0.6 -- [fixed] Fixed `_app_start` traces being suppressed on API 34+ devices for typical - real-world apps. The previous timing-window heuristic has been replaced on API 34+ by - `RunningAppProcessInfo.importance` at first capture, which indicates whether the - process was forked to launch an activity. Pre-API-34 behavior is unchanged. [#8103] +- [fixed] Fixed `_app_start` traces being suppressed on API 34+ devices for + typical real-world apps. The previous timing-window heuristic has been + replaced on API 34+ by `RunningAppProcessInfo.importance` at first capture, + which indicates whether the process was forked to launch an activity. + Pre-API-34 behavior is unchanged. [#8103] # 22.0.5 @@ -13,13 +14,15 @@ # 22.0.4 -- [fixed] Fixed StrictMode DiskReadViolation prompted by AppStartTrace setup. [#7340] +- [fixed] Fixed StrictMode DiskReadViolation prompted by AppStartTrace setup. + [#7340] # 22.0.3 -- [changed] Bumped dependency on OkHTTP to version 4.12.0 from version 3.12.13. If your app depends - on OkHTTP version 3.x the change is both binary- and Java source-compatible, with a few small - exceptions. See https://square.github.io/okhttp/changelogs/upgrading_to_okhttp_4/ for more +- [changed] Bumped dependency on OkHTTP to version 4.12.0 from version 3.12.13. + If your app depends on OkHTTP version 3.x the change is both binary- and Java + source-compatible, with a few small exceptions. See + https://square.github.io/okhttp/changelogs/upgrading_to_okhttp_4/ for more details. # 22.0.2 @@ -33,16 +36,18 @@ # 22.0.0 -- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or higher. -- [removed] **Breaking Change**: Stopped releasing the deprecated Kotlin extensions (KTX) module and - removed it from the Firebase Android BoM. Instead, use the KTX APIs from the main module. For - details, see the +- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or + higher. +- [removed] **Breaking Change**: Stopped releasing the deprecated Kotlin + extensions (KTX) module and removed it from the Firebase Android BoM. Instead, + use the KTX APIs from the main module. For details, see the [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration). # 21.0.5 - [changed] Updated `protolite-well-known-types` dependency to v18.0.1 [#6716] -- [fixed] Fixed a bug that allowed invalid payload bytes value in network request metrics [#6721] +- [fixed] Fixed a bug that allowed invalid payload bytes value in network + request metrics [#6721] ## Kotlin @@ -51,8 +56,8 @@ Kotlin extensions library has no additional updates. # 21.0.4 -- [fixed] Fixed a performance issue with shared preferences calling `.apply()` every time a value is - read from remote config (#6407) +- [fixed] Fixed a performance issue with shared preferences calling `.apply()` + every time a value is read from remote config (#6407) ## Kotlin @@ -70,8 +75,8 @@ Kotlin extensions library has no additional updates. # 21.0.2 -- [fixed] Fixed `IllegalStateException` that happened when starting a trace before Firebase - initializes. +- [fixed] Fixed `IllegalStateException` that happened when starting a trace + before Firebase initializes. - [changed] Updated protobuf dependency to `3.25.5` to fix [CVE-2024-7254](https://nvd.nist.gov/vuln/detail/CVE-2024-7254). @@ -82,8 +87,8 @@ Kotlin extensions library has no additional updates. # 21.0.1 -- [fixed] Fixed an `ExceptionInInitializerError` where the `url.openStream()` causes a crash if - FirebasePerf is not yet initialized (Github #5584). +- [fixed] Fixed an `ExceptionInInitializerError` where the `url.openStream()` + causes a crash if FirebasePerf is not yet initialized (Github #5584). ## Kotlin @@ -114,24 +119,27 @@ Kotlin extensions library has no additional updates. # 20.5.0 -- [changed] Added Kotlin extensions (KTX) APIs from `com.google.firebase:firebase-perf-ktx` to - `com.google.firebase:firebase-perf` under the `com.google.firebase.perf` package. For details, see - the [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration) -- [deprecated] All the APIs from `com.google.firebase:firebase-perf-ktx` have been added to - `com.google.firebase:firebase-perf` under the `com.google.firebase.perf` package, and all the - Kotlin extensions (KTX) APIs in `com.google.firebase:firebase-perf-ktx` are now deprecated. As - early as April 2024, we'll no longer release KTX modules. For details, see the +- [changed] Added Kotlin extensions (KTX) APIs from + `com.google.firebase:firebase-perf-ktx` to `com.google.firebase:firebase-perf` + under the `com.google.firebase.perf` package. For details, see the + [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration) +- [deprecated] All the APIs from `com.google.firebase:firebase-perf-ktx` have + been added to `com.google.firebase:firebase-perf` under the + `com.google.firebase.perf` package, and all the Kotlin extensions (KTX) APIs + in `com.google.firebase:firebase-perf-ktx` are now deprecated. As early as + April 2024, we'll no longer release KTX modules. For details, see the [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration) # 20.4.1 - [changed] Updated `firebase-sessions` dependency to v1.0.2 -- [fixed] Make fireperf data collection state is reliable for Firebase Sessions library. +- [fixed] Make fireperf data collection state is reliable for Firebase Sessions + library. # 20.4.0 -- [feature] Integrated with Firebase sessions library to enable upcoming features related to - session-based performance metrics. +- [feature] Integrated with Firebase sessions library to enable upcoming + features related to session-based performance metrics. ## Kotlin @@ -140,7 +148,8 @@ Kotlin extensions library has no additional updates. # 20.3.3 -- [fixed] Fixed app start trace creation where some measured time could be NULL (#4730). +- [fixed] Fixed app start trace creation where some measured time could be NULL + (#4730). - [changed] Adjusted default behavior when remote config fetch fails. ## Kotlin @@ -169,8 +178,8 @@ Kotlin extensions library has no additional updates. # 20.3.0 -- [fixed] Fixed a `NullPointerException` crash when instrumenting screen traces on Android 7, 8, - and 9. (#4146) +- [fixed] Fixed a `NullPointerException` crash when instrumenting screen traces + on Android 7, 8, and 9. (#4146) ## Kotlin @@ -183,7 +192,8 @@ Kotlin extensions library has the following additional updates: # 20.2.0 -- [unchanged] Updated to accommodate the release of the updated [perfmon] Kotlin extensions library. +- [unchanged] Updated to accommodate the release of the updated [perfmon] Kotlin + extensions library. ## Kotlin @@ -191,14 +201,16 @@ The Kotlin extensions library transitively includes the updated `firebase-perfor Kotlin extensions library has the following additional updates: - [feature] Firebase now supports Kotlin coroutines. With this release, we added - [`kotlinx-coroutines-play-services`](https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-play-services/){: - .external} to `firebase-performance-ktx` as a transitive dependency, which exposes the + [`kotlinx-coroutines-play-services`](https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-play-services/){: .external} + to `firebase-performance-ktx` as a transitive dependency, which exposes the `Task.await()` suspend function to convert a - [`Task`](https://developers.google.com/android/guides/tasks) into a Kotlin coroutine. + [`Task`](https://developers.google.com/android/guides/tasks) into a Kotlin + coroutine. # 20.1.1 -- [changed] Updated dependency of `play-services-basement` to its latest version (v18.1.0). +- [changed] Updated dependency of `play-services-basement` to its latest version + (v18.1.0). ## Kotlin @@ -207,10 +219,12 @@ Kotlin extensions library has no additional updates. # 20.1.0 -- [feature] Added support for out-of-the-box measurement of screen performance metrics for - [Fragments](//developer.android.com/guide/fragments){: .external}. For more details, visit +- [feature] Added support for out-of-the-box measurement of screen performance + metrics for [Fragments](//developer.android.com/guide/fragments){: .external}. + For more details, visit [Learn about screen rendering performance data](/docs/perf-mon/screen-traces?platform=android). -- [fixed] Fixed a bug where screen traces were not capturing frame metrics for multi-Activity apps. +- [fixed] Fixed a bug where screen traces were not capturing frame metrics for + multi-Activity apps. - [fixed] Excluded custom attributes that have key/value lengths of 0. ## Kotlin @@ -220,13 +234,15 @@ Kotlin extensions library has no additional updates. # 20.0.6 -- [fixed] Fixed a null pointer exception (NPE) when instrumenting network requests. (#3406) -- [fixed] Fixed a bug where incorrect session IDs were associated with some foreground and - background traces. -- [changed] Updated dependencies of `play-services-basement`, `play-services-base`, and - `play-services-tasks` to their latest versions (v18.0.0, v18.0.1, and v18.0.1, respectively). For - more information, see the [note](#basement18-0-0_base18-0-1_tasks18-0-1) at the top of this - release entry. +- [fixed] Fixed a null pointer exception (NPE) when instrumenting network + requests. (#3406) +- [fixed] Fixed a bug where incorrect session IDs were associated with some + foreground and background traces. +- [changed] Updated dependencies of `play-services-basement`, + `play-services-base`, and `play-services-tasks` to their latest versions + (v18.0.0, v18.0.1, and v18.0.1, respectively). For more information, see the + [note](#basement18-0-0_base18-0-1_tasks18-0-1) at the top of this release + entry. ## Kotlin @@ -236,8 +252,8 @@ Kotlin extensions library has no additional updates. # 20.0.5 - [feature] Enabled global custom attributes for network request traces. -- [fixed] Updated log statement to differentiate an event being dropped due to rate limiting and - sampling. +- [fixed] Updated log statement to differentiate an event being dropped due to + rate limiting and sampling. ## Kotlin @@ -246,8 +262,8 @@ Kotlin extensions library has no additional updates. # 20.0.4 -- [changed] Improved [perfmon] start up time by 25%. This improvement was achieved by moving some - component initialization to background threads. +- [changed] Improved [perfmon] start up time by 25%. This improvement was + achieved by moving some component initialization to background threads. ## Kotlin @@ -256,10 +272,10 @@ Kotlin extensions library has no additional updates. # 20.0.3 -- [changed] [perfmon] now has a random delay of 5 to 30 seconds before fetching [remote_config] upon - app startup. -- [fixed] Added a validation to stop screen traces with 0 total frames from being sent to the - backend. +- [changed] [perfmon] now has a random delay of 5 to 30 seconds before fetching + [remote_config] upon app startup. +- [fixed] Added a validation to stop screen traces with 0 total frames from + being sent to the backend. ## Kotlin @@ -268,10 +284,11 @@ Kotlin extensions library has no additional updates. # 20.0.2 -- [fixed] Fixed inaccurate calculation of screen activity metrics for multi-activity apps. (#2672) - Note: You may see some changes in data for frozen frames and slow rendering metrics. -- [fixed] Fixed issue where screen traces were not being tracked for Android API levels 23 and - below. +- [fixed] Fixed inaccurate calculation of screen activity metrics for + multi-activity apps. (#2672) Note: You may see some changes in data for frozen + frames and slow rendering metrics. +- [fixed] Fixed issue where screen traces were not being tracked for Android API + levels 23 and below. ## Kotlin @@ -280,8 +297,8 @@ Kotlin extensions library has no additional updates. # 20.0.1 -- [feature] Logs for [firebase_perfmon] now contain URLs to view performance data in the - [name_appmanager]. +- [feature] Logs for [firebase_perfmon] now contain URLs to view performance + data in the [name_appmanager]. - [fixed] Fixed `RateLimiter` replenishment logic and unit alignment. ## Kotlin @@ -291,9 +308,10 @@ Kotlin extensions library has no additional updates. # 20.0.0 -- [feature] Introduce Dagger as a dependency injection framework for some parts of the code. -- [changed] Improved the code organization of the SDK (package restructure, code conventions, remove - unncessary annotations). +- [feature] Introduce Dagger as a dependency injection framework for some parts + of the code. +- [changed] Improved the code organization of the SDK (package restructure, code + conventions, remove unncessary annotations). - [changed] Improve the launch time of the SDK. ## Kotlin @@ -305,7 +323,8 @@ Kotlin extensions library has no additional updates. - [feature] The [firebase_perfmon] SDK is now [open sourced](//github.com/firebase/firebase-android-sdk/tree/master/firebase-perf){: .external}. -- [fixed] Fixed issue on the console logger to avoid throwing `UnknownFormatConversionException`. +- [fixed] Fixed issue on the console logger to avoid throwing + `UnknownFormatConversionException`. ## Kotlin @@ -314,9 +333,10 @@ Kotlin extensions library has no additional updates. # 19.1.0 -- [changed] Removed GMS dependency from [perfmon]. Google Play services installation is no longer - required to use [perfmon]. -- [changed] Improved performance event dispatch wait time from 2 hours to 30 seconds. +- [changed] Removed GMS dependency from [perfmon]. Google Play services + installation is no longer required to use [perfmon]. +- [changed] Improved performance event dispatch wait time from 2 hours to 30 + seconds. ## Kotlin @@ -337,10 +357,10 @@ Kotlin extensions library has no additional updates. Note: We recommend using [perfmon] Gradle plugin v1.3.4+ with this version of the [perfmon] SDK and above. -- [changed] Integrated with the `firebase-datatransport` library for performance log dispatch - mechanism. -- [fixed] Synchronized the access to fix a race condition that was causing a `NullPointerException` - when making network requests. (#2096) +- [changed] Integrated with the `firebase-datatransport` library for performance + log dispatch mechanism. +- [fixed] Synchronized the access to fix a race condition that was causing a + `NullPointerException` when making network requests. (#2096) ## Kotlin @@ -349,42 +369,46 @@ Kotlin extensions library has no additional updates. # 19.0.9 -- [fixed] Created lazy dependency on [firebase_remote_config] to avoid main thread contention issue. - (#1810) -- [changed] Updated the protocol buffer dependency to the `protobuf-javalite` artifact to allow for - backward compatibility. -- [changed] Removed Guava dependency from the SDK to avoid symbol collision with any other SDKs. -- [changed] Removed proguarding for SDK; logcat messages will show original class paths for - debugging. +- [fixed] Created lazy dependency on [firebase_remote_config] to avoid main + thread contention issue. (#1810) +- [changed] Updated the protocol buffer dependency to the `protobuf-javalite` + artifact to allow for backward compatibility. +- [changed] Removed Guava dependency from the SDK to avoid symbol collision with + any other SDKs. +- [changed] Removed proguarding for SDK; logcat messages will show original + class paths for debugging. - [changed] Improved build configurations and dependencies to reduce SDK size. ## Kotlin -- [feature] The [firebase_perfmon] Android library with Kotlin extensions is now available. The - Kotlin extensions library transitively includes the base `firebase-performance` library. To learn - more, visit the - [[perfmon] KTX documentation](/docs/reference/kotlin/com/google/firebase/perf/ktx/package-summary). +- [feature] The [firebase_perfmon] Android library with Kotlin extensions is now + available. The Kotlin extensions library transitively includes the base + `firebase-performance` library. To learn more, visit the [[perfmon] KTX + documentation](/docs/reference/kotlin/com/google/firebase/perf/ktx/package-summary). # 19.0.8 -- [changed] Updated the [logging message](/docs/perf-mon/get-started-android#view-log-messages) for +- [changed] Updated the + [logging message](/docs/perf-mon/get-started-android#view-log-messages) for performance events. -- [fixed] Silenced [firebase_remote_config] logging triggered by [firebase_perfmon]. (#403) -- [fixed] Removed unnecessary logging. [perfmon] now only logs debug information if the - `firebase_performance_logcat_enabled` setting is `true` in `AndroidManifest.xml`. Visit the - documentation for details about explicitly +- [fixed] Silenced [firebase_remote_config] logging triggered by + [firebase_perfmon]. (#403) +- [fixed] Removed unnecessary logging. [perfmon] now only logs debug information + if the `firebase_performance_logcat_enabled` setting is `true` in + `AndroidManifest.xml`. Visit the documentation for details about explicitly [enabling debug logging](/docs/perf-mon/get-started-android#view-log-messages). -- [changed] Migrated to use the [firebase_installations] service _directly_ instead of using an - indirect dependency via the Firebase Instance ID SDK. - - {% include "docs/reference/android/client/_includes/_iid-indirect-dependency-solutions.html" %} +- [changed] Migrated to use the [firebase_installations] service _directly_ + instead of using an indirect dependency via the Firebase Instance ID SDK. {% + include + "docs/reference/android/client/_includes/_iid-indirect-dependency-solutions.html" + %} # 19.0.7 -- [changed] Updated dependency on the Firebase Instance ID library to v20.1.5, which is a step - towards a direct dependency on the [firebase_installations] service in a future release. - - This update to `firebase-iid` v20.1.5 fixed the following GitHub issues: +- [changed] Updated dependency on the Firebase Instance ID library to v20.1.5, + which is a step towards a direct dependency on the [firebase_installations] + service in a future release. This update to `firebase-iid` v20.1.5 fixed the + following GitHub issues: [#1454](//github.com/firebase/firebase-android-sdk/issues/1454), [#1397](//github.com/firebase/firebase-android-sdk/issues/1397), and [#1339](//github.com/firebase/firebase-android-sdk/issues/1339). @@ -395,15 +419,17 @@ Kotlin extensions library has no additional updates. # 19.0.5 -- [fixed] Muted logcat logging for [firebase_perfmon] when `firebase_performance_logcat_enabled` is - not set or set to false. ([#403](//github.com/firebase/firebase-android-sdk/issues/403)) +- [fixed] Muted logcat logging for [firebase_perfmon] when + `firebase_performance_logcat_enabled` is not set or set to false. + ([#403](//github.com/firebase/firebase-android-sdk/issues/403)) - [fixed] Skipped automatic performance event creation when `firebase_performance_collection_enabled` is set to false. - [changed] Internal infrastructure improvements. # 19.0.4 -- [changed] Improved internal infrastructure to work better with [firebase_remote_config]. +- [changed] Improved internal infrastructure to work better with + [firebase_remote_config]. # 19.0.3 @@ -419,18 +445,20 @@ Kotlin extensions library has no additional updates. # 19.0.0 -- [changed] Versioned to add nullability annotations to improve the Kotlin developer experience. No - other changes. +- [changed] Versioned to add nullability annotations to improve the Kotlin + developer experience. No other changes. # 18.0.1 -- [fixed] Fixed an `IllegalStateException` that was thrown when an activity with hardware - acceleration disabled was stopped. +- [fixed] Fixed an `IllegalStateException` that was thrown when an activity with + hardware acceleration disabled was stopped. # 17.0.2 -- [fixed] Fixed a `Null Pointer Exception` that was being observed on certain Android 7.0 devices. -- [fixed] Updates to make [perfmon] work better with the latest version of [firebase_remote_config]. +- [fixed] Fixed a `Null Pointer Exception` that was being observed on certain + Android 7.0 devices. +- [fixed] Updates to make [perfmon] work better with the latest version of + [firebase_remote_config]. # 17.0.0 @@ -438,14 +466,15 @@ Kotlin extensions library has no additional updates. # 16.2.5 -- [fixed] Fixed a bug that was causing apps using multiple processses to throw an - `IllegalStateException` in the non-main processes. +- [fixed] Fixed a bug that was causing apps using multiple processses to throw + an `IllegalStateException` in the non-main processes. # 16.2.4 -- [fixed] Fixed a bug that was causing a `NoClassDefFoundError` to be thrown which resulted in - intermittent app crashes. -- [fixed] Updates to make [perfmon] work better with the latest version of [firebase_remote_config]. +- [fixed] Fixed a bug that was causing a `NoClassDefFoundError` to be thrown + which resulted in intermittent app crashes. +- [fixed] Updates to make [perfmon] work better with the latest version of + [firebase_remote_config]. - [changed] [firebase_perfmon] no longer depends on [firebase_analytics]. # 16.2.3 @@ -458,12 +487,11 @@ Kotlin extensions library has no additional updates. # 16.2.0 -- [feature] Introduces the Sessions feature, which gives developers access to actionable insights - about data captured using [perfmon]. +- [feature] Introduces the Sessions feature, which gives developers access to + actionable insights about data captured using [perfmon]. - [fixed] Minor bug fixes and improvements. # 16.1.0 -- [fixed] Fixed a `SecurityException` crash on certain devices that do not have Google Play Services - on them. - +- [fixed] Fixed a `SecurityException` crash on certain devices that do not have + Google Play Services on them. diff --git a/firebase-sessions/CHANGELOG.md b/firebase-sessions/CHANGELOG.md index 93de200b360..be9e90ab053 100644 --- a/firebase-sessions/CHANGELOG.md +++ b/firebase-sessions/CHANGELOG.md @@ -6,7 +6,8 @@ # 3.0.6 -- [fixed] Lazy loading kotlinx.coroutines in FirebaseSessionsDependencies.kt to fix (#7882) +- [fixed] Lazy loading kotlinx.coroutines in FirebaseSessionsDependencies.kt to + fix (#7882) # 3.0.5 @@ -14,7 +15,8 @@ # 3.0.4 -- [fixed] Fixed a bug when the app foregrounds before Sessions has initialized (#7519) +- [fixed] Fixed a bug when the app foregrounds before Sessions has initialized + (#7519) - [changed] Restore SessionLifecycleService as no-op # 3.0.3 @@ -27,16 +29,18 @@ # 3.0.1 -- [fixed] Bumped DataStore dependency to include the mitigation for `CorruptionException` released - in version `1.1.5`. See Jetpacks' DataStore +- [fixed] Bumped DataStore dependency to include the mitigation for + `CorruptionException` released in version `1.1.5`. See Jetpacks' DataStore [release notes](https://developer.android.com/jetpack/androidx/releases/datastore#1.1.5). # 3.0.0 -- [changed] Added internal api for Crashlytics to notify Sessions of crash events +- [changed] Added internal api for Crashlytics to notify Sessions of crash + events - [changed] Use multi-process DataStore instead of Preferences DataStore - [changed] Update the heuristic to detect cold app starts -- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or higher. +- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or + higher. # 2.1.1 @@ -68,9 +72,11 @@ # 2.0.4 -- [fixed] Handled datastore writes when device has full internal memory more gracefully. (GitHub - [#5859](https://github.com/firebase/firebase-android-sdk/issues/5859)) -- [fixed] Safely unbind malfunctioning session lifecycle service to release service connections. +- [fixed] Handled datastore writes when device has full internal memory more + gracefully. + (GitHub [#5859](https://github.com/firebase/firebase-android-sdk/issues/5859)) +- [fixed] Safely unbind malfunctioning session lifecycle service to release + service connections. (GitHub [#5869](https://github.com/firebase/firebase-android-sdk/issues/5869)) # 1.2.3 @@ -88,7 +94,8 @@ # 1.0.2 -- [fixed] Made Sessions more resilient to the FirebaseApp instance being deleted. +- [fixed] Made Sessions more resilient to the FirebaseApp instance being + deleted. # 1.0.1 @@ -99,4 +106,3 @@ # 1.0.0 - [feature] Initial Firebase sessions library. - diff --git a/firebase-storage/CHANGELOG.md b/firebase-storage/CHANGELOG.md index c1bc899bae8..e8973a3d6e0 100644 --- a/firebase-storage/CHANGELOG.md +++ b/firebase-storage/CHANGELOG.md @@ -6,16 +6,17 @@ # 22.0.0 -- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or higher. -- [removed] **Breaking Change**: Stopped releasing the deprecated Kotlin extensions (KTX) module and - removed it from the Firebase Android BoM. Instead, use the KTX APIs from the main module. For - details, see the +- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or + higher. +- [removed] **Breaking Change**: Stopped releasing the deprecated Kotlin + extensions (KTX) module and removed it from the Firebase Android BoM. Instead, + use the KTX APIs from the main module. For details, see the [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration). # 21.0.2 -- [fixed] Fixed an issue where tests were depending on a deprecated feature of the test framework. - (#6927) +- [fixed] Fixed an issue where tests were depending on a deprecated feature of + the test framework. (#6927) ## Kotlin @@ -24,8 +25,8 @@ Kotlin extensions library has no additional updates. # 21.0.1 -- [fixed] Fixed an issue where `maxUploadRetryTimeMillis` parameter is ignored when uploading using - `putBytes()` +- [fixed] Fixed an issue where `maxUploadRetryTimeMillis` parameter is ignored + when uploading using `putBytes()` # 21.0.0 @@ -38,14 +39,17 @@ Kotlin extensions library has no additional updates. # 20.3.0 -- [fixed] Fixed an issue where the wrong SDK version was being reported to the backend. -- [changed] Added Kotlin extensions (KTX) APIs from `com.google.firebase:firebase-perf-ktx` to - `com.google.firebase:firebase-perf` under the `com.google.firebase.perf` package. For details, see - the [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration) -- [deprecated] All the APIs from `com.google.firebase:firebase-perf-ktx` have been added to - `com.google.firebase:firebase-perf` under the `com.google.firebase.perf` package, and all the - Kotlin extensions (KTX) APIs in `com.google.firebase:firebase-perf-ktx` are now deprecated. As - early as April 2024, we'll no longer release KTX modules. For details, see the +- [fixed] Fixed an issue where the wrong SDK version was being reported to the + backend. +- [changed] Added Kotlin extensions (KTX) APIs from + `com.google.firebase:firebase-perf-ktx` to `com.google.firebase:firebase-perf` + under the `com.google.firebase.perf` package. For details, see the + [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration) +- [deprecated] All the APIs from `com.google.firebase:firebase-perf-ktx` have + been added to `com.google.firebase:firebase-perf` under the + `com.google.firebase.perf` package, and all the Kotlin extensions (KTX) APIs + in `com.google.firebase:firebase-perf-ktx` are now deprecated. As early as + April 2024, we'll no longer release KTX modules. For details, see the [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration) ## Kotlin @@ -55,8 +59,8 @@ Kotlin extensions library has no additional updates. # 20.2.1 -- [changed] Migrated `firebase-storage` SDK to use standard Firebase executors. (GitHub - [#4830](//github.com/firebase/firebase-android-sdk/pull/4830){: .external}) +- [changed] Migrated `firebase-storage` SDK to use standard Firebase executors. + (GitHub [#4830](//github.com/firebase/firebase-android-sdk/pull/4830){: .external}) ## Kotlin @@ -74,8 +78,8 @@ Kotlin extensions library has no additional updates. # 20.1.0 -- [fixed] Fixed an issue that caused an infinite number of retries with no exponential backoff for - `uploadChunk()`. +- [fixed] Fixed an issue that caused an infinite number of retries with no + exponential backoff for `uploadChunk()`. ## Kotlin @@ -83,17 +87,19 @@ The Kotlin extensions library transitively includes the updated `firebase-storag Kotlin extensions library has the following additional updates: - [feature] Firebase now supports Kotlin coroutines. With this release, we added - [`kotlinx-coroutines-play-services`](https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-play-services/){: - .external} to `firebase-storage-ktx` as a transitive dependency, which exposes the + [`kotlinx-coroutines-play-services`](https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-play-services/){: .external} + to `firebase-storage-ktx` as a transitive dependency, which exposes the `Task.await()` suspend function to convert a - [`Task`](https://developers.google.com/android/guides/tasks) into a Kotlin coroutine. + [`Task`](https://developers.google.com/android/guides/tasks) into a Kotlin + coroutine. - [feature] Added [`StorageTask.taskState`](/docs/reference/kotlin/com/google/firebase/storage/ktx/package-summary#taskState) Kotlin Flows to monitor the progress of an upload or download `Task`. # 20.0.2 -- [changed] Updated dependency of `play-services-basement` to its latest version (v18.1.0). +- [changed] Updated dependency of `play-services-basement` to its latest version + (v18.1.0). ## Kotlin @@ -102,10 +108,11 @@ Kotlin extensions library has no additional updates. # 20.0.1 -- [changed] Updated dependencies of `play-services-basement`, `play-services-base`, and - `play-services-tasks` to their latest versions (v18.0.0, v18.0.1, and v18.0.1, respectively). For - more information, see the [note](#basement18-0-0_base18-0-1_tasks18-0-1) at the top of this - release entry. +- [changed] Updated dependencies of `play-services-basement`, + `play-services-base`, and `play-services-tasks` to their latest versions + (v18.0.0, v18.0.1, and v18.0.1, respectively). For more information, see the + [note](#basement18-0-0_base18-0-1_tasks18-0-1) at the top of this release + entry. ## Kotlin @@ -137,8 +144,8 @@ Kotlin extensions library has no additional updates. # 19.2.1 -- [fixed] Fixed an issue that caused the SDK to crash if the download location was deleted before - the download completed. Instead, the download now fails. +- [fixed] Fixed an issue that caused the SDK to crash if the download location + was deleted before the download completed. Instead, the download now fails. ## Kotlin @@ -156,11 +163,13 @@ the following additional updates: - [feature] Added API support for destructuring of [`TaskSnapshot`](/docs/reference/kotlin/com/google/firebase/storage/StreamDownloadTask.TaskSnapshot) - and [`ListResult`](/docs/reference/kotlin/com/google/firebase/storage/ListResult). + and + [`ListResult`](/docs/reference/kotlin/com/google/firebase/storage/ListResult). # 19.1.1 -- [changed] Internal changes to ensure functionality alignment with other SDK releases. +- [changed] Internal changes to ensure functionality alignment with other SDK + releases. ## Kotlin @@ -169,35 +178,39 @@ Kotlin extensions library has no additional updates. # 19.1.0 -- [feature] Added `getCacheControl()`, `getContentDisposition()`, `getContentEncoding()`, - `getContentLanguage()`, and `getContentType()` to +- [feature] Added `getCacheControl()`, `getContentDisposition()`, + `getContentEncoding()`, `getContentLanguage()`, and `getContentType()` to [`StorageMetadata.Builder`](/docs/reference/android/com/google/firebase/storage/StorageMetadata.Builder) to provide access to the current state of the metadata. - [fixed] Fixed an encoding issue in [`StorageReference.list()`]() - that caused the API to miss entries for prefixes that contained special characters. + that caused the API to miss entries for prefixes that contained special + characters. ## Kotlin -- [feature] The beta release of a [firebase_storage_full] Android library with Kotlin extensions is - now available. The Kotlin extensions library transitively includes the base `firebase-storage` - library. To learn more, visit the - [[firebase_storage_full] KTX documentation](/docs/reference/kotlin/com/google/firebase/storage/ktx/package-summary). +- [feature] The beta release of a [firebase_storage_full] Android library with + Kotlin extensions is now available. The Kotlin extensions library transitively + includes the base `firebase-storage` library. To learn more, visit the + [[firebase_storage_full] KTX + documentation](/docs/reference/kotlin/com/google/firebase/storage/ktx/package-summary). # 19.0.1 - [fixed] [`StorageReference.listAll()`]() - now propagates the error messages if the List operation was denied by a Security Rule. + now propagates the error messages if the List operation was denied by a + Security Rule. # 19.0.0 -- [changed] Versioned to add nullability annotations to improve the Kotlin developer experience. No - other changes. +- [changed] Versioned to add nullability annotations to improve the Kotlin + developer experience. No other changes. # 18.1.1 -- [changed] Internal changes to ensure functionality alignment with other SDK releases. +- [changed] Internal changes to ensure functionality alignment with other SDK + releases. # 18.1.0 @@ -205,7 +218,8 @@ Kotlin extensions library has no additional updates. [`StorageReference.list()`]() and [`StorageReference.listAll()`](), - which allows developers to list the files and folders under the given StorageReference. + which allows developers to list the files and folders under the given + StorageReference. - [changed] Added validation to [`StorageReference.getDownloadUrl()`]() and @@ -214,9 +228,9 @@ Kotlin extensions library has no additional updates. # 17.0.0 -- [changed] Internal changes that rely on an updated API to obtain authentication credentials. If - you use [firebase_auth], update to `firebase-auth` v17.0.0 or later to ensure functionality - alignment. +- [changed] Internal changes that rely on an updated API to obtain + authentication credentials. If you use [firebase_auth], update to + `firebase-auth` v17.0.0 or later to ensure functionality alignment. # 16.0.2 @@ -228,8 +242,9 @@ Kotlin extensions library has no additional updates. [`StorageTask`](/docs/reference/android/com/google/firebase/storage/StorageTask), [`UploadTask`](/docs/reference/android/com/google/firebase/storage/UploadTask), [`StreamDownloadTask`](/docs/reference/android/com/google/firebase/storage/StreamDownloadTask), - and [`FileDownloadTask`](/docs/reference/android/com/google/firebase/storage/FileDownloadTask). + and + [`FileDownloadTask`](/docs/reference/android/com/google/firebase/storage/FileDownloadTask). - [changed] Removed the deprecated `StorageMetadata.getDownloadUrl()` and - `UploadTask.TaskSnapshot.getDownloadUrl()` methods. To get a current download URL, use + `UploadTask.TaskSnapshot.getDownloadUrl()` methods. To get a current download + URL, use [`StorageReference.getDownloadUr()`](). - diff --git a/firebase-vertexai/CHANGELOG.md b/firebase-vertexai/CHANGELOG.md index 808220b4e0f..3be8d90863e 100644 --- a/firebase-vertexai/CHANGELOG.md +++ b/firebase-vertexai/CHANGELOG.md @@ -1,72 +1,78 @@ # 16.5.0 -- [changed] **Renamed / Replaced:** Vertex AI in Firebase (`firebase-vertexai`) has been renamed and - replaced by the new Firebase AI SDK: `firebase-ai`. This is to accommodate the evolving set of - supported features and services. Please +- [changed] **Renamed / Replaced:** Vertex AI in Firebase (`firebase-vertexai`) + has been renamed and replaced by the new Firebase AI SDK: `firebase-ai`. This + is to accommodate the evolving set of supported features and services. Please [**migrate to the new `firebase-ai` package**](/docs/vertex-ai/migrate-to-latest-sdk). - -Note: Existing users of the Vertex AI in Firebase SDK (`firebase-vertexai`) may continue to use the -SDK and receive bug fixes but, going forward, new features will only be added into the new Firebase -AI SDK. - -The following changes and features are in the Vertex AI in Firebase SDK (`firebase-vertexai`), but -we recommend that you accommodate them (as applicable) as part of migrating to the `firebase-ai` -SDK. - -- [changed] **Breaking Change**: Removed the `LiveContentResponse.Status` class, and instead have - nested the status fields as properties of `LiveContentResponse`. (#6941) -- [changed] **Breaking Change**: Removed the `LiveContentResponse` class, and instead have provided - subclasses of `LiveServerMessage` that match the responses from the model. (#6941) -- [feature] Added support for the `id` field on `FunctionResponsePart` and `FunctionCallPart`. - (#6941) + Note: Existing users of the Vertex AI in Firebase SDK (`firebase-vertexai`) + may continue to use the SDK and receive bug fixes but, going forward, new + features will only be added into the new Firebase AI SDK. The following + changes and features are in the Vertex AI in Firebase SDK + (`firebase-vertexai`), but we recommend that you accommodate them (as + applicable) as part of migrating to the `firebase-ai` SDK. +- [changed] **Breaking Change**: Removed the `LiveContentResponse.Status` + class, and instead have nested the status fields as properties of + `LiveContentResponse`. (#6941) +- [changed] **Breaking Change**: Removed the `LiveContentResponse` class, and + instead have provided subclasses of `LiveServerMessage` that match the + responses from the model. (#6941) +- [feature] Added support for the `id` field on `FunctionResponsePart` and + `FunctionCallPart`. (#6941) - [feature] Added a helper field for getting all the `InlineDataPart` from a `GenerateContentResponse`. (#6941) # 16.4.0 - [changed] **Breaking Change**: `LiveModelFutures.connect` now returns - `ListenableFuture` instead of `ListenableFuture`. - - **Action Required:** Remove any transformations from LiveSession object to LiveSessionFutures - object. - - **Action Required:** Change type of variable handling `LiveModelFutures.connect` to - `ListenableFuture` -- [changed] **Breaking Change**: Removed `UNSPECIFIED` value for enum class `ResponseModality` + `ListenableFuture` instead of + `ListenableFuture`. + - **Action Required:** Remove any transformations from LiveSession object to + LiveSessionFutures object. + - **Action Required:** Change type of variable handling + `LiveModelFutures.connect` to `ListenableFuture` +- [changed] **Breaking Change**: Removed `UNSPECIFIED` value for enum class + `ResponseModality` - **Action Required:** Remove all references to `ResponseModality.UNSPECIFIED` -- [changed] **Breaking Change**: Renamed `LiveGenerationConfig.setResponseModalities` to +- [changed] **Breaking Change**: Renamed + `LiveGenerationConfig.setResponseModalities` to `LiveGenerationConfig.setResponseModality` - - **Action Required:** Replace all references of `LiveGenerationConfig.setResponseModalities` with + - **Action Required:** Replace all references of + `LiveGenerationConfig.setResponseModalities` with `LiveGenerationConfig.setResponseModality` - [feature] Added support for `HarmBlockThreshold.OFF`. See the - [model documentation](https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#how_to_configure_content_filters){: - .external} for more information. + [model documentation](https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#how_to_configure_content_filters){: .external} + for more information. - [fixed] Improved thread usage when using a `LiveGenerativeModel`. (#6870) -- [fixed] Fixed an issue with `LiveContentResponse` audio data not being present when the model was - interrupted or the turn completed. (#6870) +- [fixed] Fixed an issue with `LiveContentResponse` audio data not being present + when the model was interrupted or the turn completed. (#6870) - [fixed] Fixed an issue with `LiveSession` not converting exceptions to `FirebaseVertexAIException`. (#6870) - [feature] Enable response generation in multiple modalities. (#6901) -- [changed] Removed the `LiveContentResponse.Status` class, and instead have nested the status - fields as properties of `LiveContentResponse`. (#6906) +- [changed] Removed the `LiveContentResponse.Status` class, and instead have + nested the status fields as properties of `LiveContentResponse`. (#6906) # 16.3.0 -- [feature] Emits a warning when attempting to use an incompatible model with `GenerativeModel` or - `ImagenModel`. +- [feature] Emits a warning when attempting to use an incompatible model with + `GenerativeModel` or `ImagenModel`. - [changed] Added new exception type for quota exceeded scenarios. - [feature] `CountTokenRequest` now includes `GenerationConfig` from the model. -- [feature] **Public Preview:** Added support for streaming input and output (including audio) using - the [Gemini Live API](/docs/vertex-ai/live-api?platform=android) **Note**: This feature is in - Public Preview, which means that it is not subject to any SLA or deprecation policy and could - change in backwards-incompatible ways. -- [changed] **Breaking Change**: `ImagenInlineImage.data` now returns the raw image bytes (in JPEG - or PNG format, as specified in `ImagenInlineImage.mimeType`) instead of Base64-encoded data. - (#6800) - - **Action Required:** Remove any Base64 decoding from your `ImagenInlineImage.data` usage. +- [feature] **Public Preview:** Added support for streaming input and output + (including audio) using the + [Gemini Live API](/docs/vertex-ai/live-api?platform=android) **Note**: This + feature is in Public Preview, which means that it is not subject to any SLA or + deprecation policy and could change in backwards-incompatible ways. +- [changed] **Breaking Change**: `ImagenInlineImage.data` now returns the raw + image bytes (in JPEG or PNG format, as specified in + `ImagenInlineImage.mimeType`) instead of Base64-encoded data. (#6800) + - **Action Required:** Remove any Base64 decoding from your + `ImagenInlineImage.data` usage. - The `asBitmap()` helper method is unaffected and requires no code changes. # 16.2.0 -- [fixed] Added support for new values sent by the server for `FinishReason` and `BlockReason`. +- [fixed] Added support for new values sent by the server for `FinishReason` and + `BlockReason`. - [changed] Added support for modality-based token count. (#6658) - [feature] Added support for generating images with Imagen models. @@ -77,67 +83,75 @@ SDK. # 16.0.2 - [fixed] Improved error message when using an invalid location. (#6428) -- [fixed] Fixed issue where Firebase App Check error tokens were unintentionally missing from the - requests. (#6409) -- [fixed] Clarified in the documentation that `Schema.integer` and `Schema.float` only provide hints - to the model. (#6420) -- [fixed] Fixed issue were `Schema.double` set the format parameter in `Schema`. (#6432) +- [fixed] Fixed issue where Firebase App Check error tokens were unintentionally + missing from the requests. (#6409) +- [fixed] Clarified in the documentation that `Schema.integer` and + `Schema.float` only provide hints to the model. (#6420) +- [fixed] Fixed issue were `Schema.double` set the format parameter in `Schema`. + (#6432) # 16.0.1 -- [fixed] Fixed issue where authorization headers weren't correctly formatted and were ignored by - the backend. (#6400) +- [fixed] Fixed issue where authorization headers weren't correctly formatted + and were ignored by the backend. (#6400) # 16.0.0 -- [feature] {{firebase_vertexai}} is now Generally Available (GA) and can be used in production - apps. - - Use the {{firebase_vertexai_sdk}} to call the {{gemini_api_vertexai_long}} directly from your app. - This client SDK is built specifically for use with Android apps, offering security options against +- [feature] {{firebase_vertexai}} is now Generally Available (GA) and can be + used in production apps. Use the {{firebase_vertexai_sdk}} to call the + {{gemini_api_vertexai_long}} directly from your app. This client SDK is built + specifically for use with Android apps, offering security options against unauthorized clients as well as integrations with other Firebase services. - If you're new to this library, visit the [getting started guide](/docs/vertex-ai/get-started?platform=android). - If you were using the preview version of the library, visit the - [migration guide](/docs/vertex-ai/migrate-to-ga?platform=android) to learn about some important - updates. - -- [changed] **Breaking Change**: Changed `functionCallingConfig` parameter type to be nullable in - `ToolConfig`. (#6373) -- [changed] **Breaking Change**: Removed `functionResponse` accessor method from - `GenerateContentResponse`. (#6373) -- [changed] **Breaking Change**: Migrated `FirebaseVertexAIException` from a sealed class to an - abstract class, and marked constructors as internal. (#6368) -- [feature] Added support for `title` and `publicationDate` in citations. (#6309) -- [feature] Added support for `frequencyPenalty`, `presencePenalty`, and `HarmBlockMethod`. (#6309) -- [changed] **Breaking Change**: Introduced `Citations` class. Now `CitationMetadata` wraps that - type. (#6276) -- [changed] **Breaking Change**: Reworked `Schema` declaration mechanism. (#6258) -- [changed] **Breaking Change**: Reworked function calling mechanism to use the new `Schema` format. - Function calls no longer use native types, nor include references to the actual executable code. + [migration guide](/docs/vertex-ai/migrate-to-ga?platform=android) to learn + about some important updates. +- [changed] **Breaking Change**: Changed `functionCallingConfig` parameter type + to be nullable in `ToolConfig`. (#6373) +- [changed] **Breaking Change**: Removed `functionResponse` accessor method + from `GenerateContentResponse`. (#6373) +- [changed] **Breaking Change**: Migrated `FirebaseVertexAIException` from a + sealed class to an abstract class, and marked constructors as internal. + (#6368) +- [feature] Added support for `title` and `publicationDate` in citations. + (#6309) +- [feature] Added support for `frequencyPenalty`, `presencePenalty`, and + `HarmBlockMethod`. (#6309) +- [changed] **Breaking Change**: Introduced `Citations` class. Now + `CitationMetadata` wraps that type. (#6276) +- [changed] **Breaking Change**: Reworked `Schema` declaration mechanism. (#6258) -- [changed] **Breaking Change**: Made `totalBillableCharacters` field in `CountTokens` nullable and - optional. (#6294) -- [changed] **Breaking Change**: Removed `UNKNOWN` option for the `HarmBlockThreshold` enum. (#6294) -- [changed] **Breaking Change**: Removed `UNSPECIFIED` option for the `HarmBlockThreshold`, - `HarmProbability`, `HarmSeverity`, and `BlockReason` enums. (#6294) -- [changed] **Breaking Change**: Renamed `BlockThreshold` as `HarmBlockThreshold`. (#6262) -- [changed] **Breaking Change**: Renamed all types and methods starting with `blob` to start with - `inlineData`. (#6309) -- [changed] **Breaking Change**: Changed the order of arguments in `InlineDataPart` to match - `ImagePart`. (#6340) -- [changed] **Breaking Change**: Changed `RequestOption` to accept only `long` timeout values. - (#6289) -- [changed] **Breaking Change**: Moved `requestOptions` to the last positional argument in the - `generativeModel` argument list. (#6292) -- [changed] **Breaking Change**: Replaced sealed classes with abstract classes for `StringFormat`. - (#6334) -- [changed] **Breaking Change**: Refactored enum classes to be normal classes. (#6340) -- [changed] **Breaking Change**: Marked `GenerativeModel` properties as private. (#6309) -- [changed] **Breaking Change**: Changed `method` parameter type to be nullable in `SafetySettings`. - (#6379) +- [changed] **Breaking Change**: Reworked function calling mechanism to use the + new `Schema` format. Function calls no longer use native types, nor include + references to the actual executable code. (#6258) +- [changed] **Breaking Change**: Made `totalBillableCharacters` field in + `CountTokens` nullable and optional. (#6294) +- [changed] **Breaking Change**: Removed `UNKNOWN` option for the + `HarmBlockThreshold` enum. (#6294) +- [changed] **Breaking Change**: Removed `UNSPECIFIED` option for the + `HarmBlockThreshold`, `HarmProbability`, `HarmSeverity`, and `BlockReason` + enums. (#6294) +- [changed] **Breaking Change**: Renamed `BlockThreshold` as + `HarmBlockThreshold`. (#6262) +- [changed] **Breaking Change**: Renamed all types and methods starting with + `blob` to start with `inlineData`. (#6309) +- [changed] **Breaking Change**: Changed the order of arguments in + `InlineDataPart` to match `ImagePart`. (#6340) +- [changed] **Breaking Change**: Changed `RequestOption` to accept only `long` + timeout values. (#6289) +- [changed] **Breaking Change**: Moved `requestOptions` to the last positional + argument in the `generativeModel` argument list. (#6292) +- [changed] **Breaking Change**: Replaced sealed classes with abstract classes + for `StringFormat`. (#6334) +- [changed] **Breaking Change**: Refactored enum classes to be normal classes. + (#6340) +- [changed] **Breaking Change**: Marked `GenerativeModel` properties as + private. (#6309) +- [changed] **Breaking Change**: Changed `method` parameter type to be nullable + in `SafetySettings`. (#6379) # 16.0.0-beta05 @@ -146,8 +160,8 @@ SDK. # 16.0.0-beta03 -- [changed] Breaking Change: changed `Schema.int` to return 32 bit integers instead of 64 bit - (long). +- [changed] Breaking Change: changed `Schema.int` to return 32 bit integers + instead of 64 bit (long). - [changed] Added `Schema.long` to return 64-bit integer numbers. - [changed] Added `Schema.double` to handle floating point numbers. - [changed] Marked `Schema.num` as deprecated, prefer using `Schema.double`. @@ -156,5 +170,6 @@ SDK. # 16.0.0-beta01 - [feature] Added support for `responseMimeType` in `GenerationConfig`. -- [changed] Renamed `GoogleGenerativeAIException` to `FirebaseVertexAIException`. +- [changed] Renamed `GoogleGenerativeAIException` to + `FirebaseVertexAIException`. - [changed] Updated the KDocs for various classes and functions. diff --git a/plugins/src/main/java/com/google/firebase/gradle/plugins/ChangelogFormatter.kt b/plugins/src/main/java/com/google/firebase/gradle/plugins/ChangelogFormatter.kt new file mode 100644 index 00000000000..07cab83b3f4 --- /dev/null +++ b/plugins/src/main/java/com/google/firebase/gradle/plugins/ChangelogFormatter.kt @@ -0,0 +1,240 @@ +/* + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.firebase.gradle.plugins + +/** + * A utility class responsible for formatting markdown CHANGELOG.md files to adhere to our standard layout rules. + * + * This ensures that: + * 1. All text wraps at exactly 80 characters per line. + * 2. Markdown links, inline code snippets, and GitHub issue attribution tags are treated as unbreakable blocks + * and will not be split mid-word across multiple lines. + * 3. GitHub issue attribution tags are forced onto their own line for easier review. + * 4. Multi-line code blocks are preserved identically and bypass wrapping. + * 5. Nested lists retain their relative indentation. + */ +object ChangelogFormatter { + + /** + * Wraps the provided text to a specified [maxWidth] using the specified [indent] for continuation lines. + * + * To prevent certain markdown structures (like links or code blocks) from being shattered across the 80-character + * limit, this method replaces spaces inside these protected segments with a null character (`\u0000`). + * By doing this, the wrap algorithm treats the entire segment as a single, indivisible word. After determining + * the layout, the null characters are reverted back to standard spaces. + */ + private fun wrapText(text: String, maxWidth: Int, indent: String): List { + val hardLines = text.split("\n") + val finalLines = mutableListOf() + + for (hardLine in hardLines) { + // Encode spaces inside markdown links so they aren't split across lines + var encodedText = Regex("\\[[^\\]]+\\]\\([^)]+\\)(?:\\{[^}]+\\})?").replace(hardLine) { matchResult -> + matchResult.value.replace(" ", "\u0000") + } + // Encode spaces inside GitHub issue tags so they aren't split across lines + encodedText = Regex("\\(GitHub \\[[^\\]]+\\]\\([^)]+\\)(?:\\{[^}]+\\})?\\)").replace(encodedText) { matchResult -> + matchResult.value.replace(" ", "\u0000") + } + // Encode spaces inside inline code so they aren't split across lines + encodedText = Regex("`[^`]+`").replace(encodedText) { matchResult -> + matchResult.value.replace(" ", "\u0000") + } + + val words = encodedText.split(Regex("(?<=\\s)")) + var currentLine = StringBuilder() + + for (word in words) { + val wordText = word.replace("\u0000", " ") + // We strip trailing spaces to ensure they don't artificially trigger a line break + val wordLengthWithoutTrailingSpace = wordText.trimEnd().length + val currentLength = currentLine.toString().replace("\u0000", " ").length + + if (currentLength + wordLengthWithoutTrailingSpace > maxWidth) { + if (currentLine.toString().trim().isNotEmpty()) { + finalLines.add(currentLine.toString().replace("\u0000", " ").trimEnd()) + currentLine = StringBuilder(indent) + } + } + currentLine.append(word) + } + if (currentLine.isNotEmpty()) { + finalLines.add(currentLine.toString().replace("\u0000", " ").trimEnd()) + } + } + return finalLines + } + + /** + * Processes a single [Change] by first unwrapping its lines into logical blocks, and then + * systematically re-wrapping them according to our layout rules. + * + * This handles preserving indentation for nested lists, skipping wrapper logic for multi-line + * code blocks, and extracting GitHub tags onto their own line. + */ + private fun wrapChange(change: Change): String { + val lines = change.message.split("\n") + val unwrapped = mutableListOf() + + var inCodeBlock = false + + // Phase 1: Unwrap the message into single, contiguous logical lines while preserving structures + for (line in lines) { + if (line.trimStart().startsWith("```")) { + inCodeBlock = !inCodeBlock + } + + val trimmed = line.trimStart() + val isListItem = trimmed.startsWith("-") || trimmed.startsWith("*") || trimmed.matches(Regex("^\\d+\\..*")) + + if (inCodeBlock || line.trimStart().startsWith("```")) { + // Leave code block lines entirely alone + unwrapped.add(line.trimEnd()) + } else if (line.trim().isEmpty()) { + unwrapped.add("") + } else if (isListItem) { + // Start a new logical line for list items + unwrapped.add(line.trimEnd()) + } else { + if (unwrapped.isEmpty()) { + unwrapped.add(trimmed.trimEnd()) + } else { + val last = unwrapped.removeLast() + val lastTrimmed = last.trimStart() + val lastIsListItem = lastTrimmed.startsWith("-") || lastTrimmed.startsWith("*") || lastTrimmed.matches(Regex("^\\d+\\..*")) + + if (last.isEmpty() || lastIsListItem || last.trimStart().startsWith("```")) { + // If the previous line was a boundary, don't merge into it + unwrapped.add(last) + unwrapped.add(line.trimEnd()) + } else { + // Merge the line into the previous contiguous text block + unwrapped.add("$last ${trimmed.trimEnd()}") + } + } + } + } + + val wrappedLines = mutableListOf() + var firstLine = true + var inCodeBlock2 = false + + // Phase 2: Re-wrap the contiguous logical lines into 80-character bounds + for (unwrappedLine in unwrapped) { + if (unwrappedLine.trimStart().startsWith("```")) { + inCodeBlock2 = !inCodeBlock2 + wrappedLines.add(unwrappedLine) + firstLine = false + continue + } + + if (inCodeBlock2) { + // Bypass wrapping inside code blocks + wrappedLines.add(unwrappedLine) + firstLine = false + continue + } + + if (firstLine) { + // The first line of a change receives the change type prefix (e.g. "- [changed] ") + val prefix = "- [${change.type.toString().lowercase()}] " + val maxWidth = 80 + + var textToWrap = unwrappedLine.trimStart() + // Extract GitHub tags onto a new line with the base indentation + textToWrap = textToWrap.replace( + Regex("\\s*(\\(GitHub \\[[^\\]]+\\]\\([^)]+\\)(?:\\{[^}]+\\})?\\))"), + "\n $1" + ) + val wrapped = wrapText("$prefix$textToWrap", maxWidth, " ") + wrappedLines.addAll(wrapped) + firstLine = false + } else { + if (unwrappedLine.trim().isEmpty()) { + wrappedLines.add("") + } else { + // Identify the current list indentation so we can correctly align wrapped text + val indentMatch = Regex("^\\s*").find(unwrappedLine) + val indent = indentMatch?.value ?: "" + + val isListItem = unwrappedLine.trimStart().startsWith("-") || unwrappedLine.trimStart().startsWith("*") || unwrappedLine.trimStart().matches(Regex("^\\d+\\..*")) + val baseIndent = if (isListItem) indent + " " else indent + + var textToWrap = unwrappedLine + // Extract GitHub tags onto a new line with the specific nested indentation + textToWrap = textToWrap.replace( + Regex("\\s*(\\(GitHub \\[[^\\]]+\\]\\([^)]+\\)(?:\\{[^}]+\\})?\\))"), + "\n$baseIndent$1" + ) + + val wrapped = wrapText(textToWrap, 80, baseIndent) + wrappedLines.addAll(wrapped) + } + } + } + return wrappedLines.joinToString("\n") + } + + /** + * Combines the subtext and formatted changes into a unified block for a single [ReleaseContent]. + */ + private fun formatContent(content: ReleaseContent): String { + val changesStr = content.changes.joinToString("\n") { wrapChange(it) } + return when { + content.subtext.isNotBlank() && changesStr.isNotBlank() -> "${content.subtext}\n\n$changesStr" + content.subtext.isNotBlank() -> content.subtext + changesStr.isNotBlank() -> changesStr + else -> "" + } + } + + /** + * Main entrypoint for formatting a raw CHANGELOG file's string contents. + * + * Reconstructs the file ensuring a single blank line between the header, entries, and EOF. + */ + fun format(content: String): String { + val header = content.split(Regex("^#\\s", RegexOption.MULTILINE)).first() + val changelog = Changelog.fromString(content) + + val sb = StringBuilder() + sb.append(header) + if (!header.endsWith("\n") && header.isNotEmpty()) { + sb.append("\n") + } + // Ensure header is followed by a blank line if it's not empty + if (!sb.endsWith("\n\n") && sb.isNotEmpty()) { + sb.append("\n") + } + + val releasesStr = changelog.releases.joinToString("\n\n") { release -> + val releaseContentStr = formatContent(release.content) + val ktxStr = release.ktx?.let { "\n\n## Kotlin\n\n${formatContent(it)}" } ?: "" + + if (releaseContentStr.isEmpty() && ktxStr.isEmpty()) { + "# ${release.version?.toString() ?: "Unreleased"}" + } else { + """|# ${release.version?.toString() ?: "Unreleased"} + | + |$releaseContentStr$ktxStr""".trimMargin() + } + } + + sb.append(releasesStr).append("\n") + return sb.toString() + } +} diff --git a/transport/transport-api/CHANGELOG.md b/transport/transport-api/CHANGELOG.md index 21d3b199c8b..cb3ac1566e7 100644 --- a/transport/transport-api/CHANGELOG.md +++ b/transport/transport-api/CHANGELOG.md @@ -20,9 +20,10 @@ extensions library has no additional updates. # 3.2.0 -- [feature] Added new APIs to support passing extra context when logging an event. +- [feature] Added new APIs to support passing extra context when logging an + event. # 3.1.0 -- [feature] Added new APIs to support passing a product id when logging an event. - +- [feature] Added new APIs to support passing a product id when logging an + event. diff --git a/transport/transport-backend-cct/CHANGELOG.md b/transport/transport-backend-cct/CHANGELOG.md index 8bbb68dcba6..7a768dc3a17 100644 --- a/transport/transport-backend-cct/CHANGELOG.md +++ b/transport/transport-backend-cct/CHANGELOG.md @@ -25,4 +25,3 @@ Kotlin extensions library has no additional updates. # 3.2.0 - [feature] Added support for product id. - diff --git a/transport/transport-runtime-testing/CHANGELOG.md b/transport/transport-runtime-testing/CHANGELOG.md index a1ecf841edb..79e701b844d 100644 --- a/transport/transport-runtime-testing/CHANGELOG.md +++ b/transport/transport-runtime-testing/CHANGELOG.md @@ -1,2 +1 @@ # Unreleased - diff --git a/transport/transport-runtime/CHANGELOG.md b/transport/transport-runtime/CHANGELOG.md index 0d4fdb3e740..38300817cba 100644 --- a/transport/transport-runtime/CHANGELOG.md +++ b/transport/transport-runtime/CHANGELOG.md @@ -27,4 +27,3 @@ Kotlin extensions library has no additional updates. - [unchanged] Updated internal Dagger dependency. - [feature] Added support for product id. -