Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

m162 release #6811

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions release.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"name": "m162",
"libraries": [
":firebase-dataconnect",
":firebase-functions",
":firebase-functions:ktx",
":firebase-vertexai"
]
}
162 changes: 162 additions & 0 deletions release_report.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,162 @@
{
"changesByLibraryName": {
"firebase-dataconnect": [
{
"commitId": "ba6997578d951f81a5100244ea71b57ffdc16d05",
"prId": "6794",
"author": "Denver Coneybeare",
"message": "feat: dataconnect: DataConnectOperationException added to support partial errors (#6794)\n\nThis PR adds the `DataConnectOperationException` class, a subclass of\nthe previously-existing `DataConnectException` class. This new\n`DataConnectOperationException` class is thrown by invocations of\n`QueryRef.execute()` and `MutationRef.execute()` in the case where a\nresponse _is_ received from the backend, but the response indicates that\nthe operation could not be executed to completion, including the case\nthat the client SDK fails to decode the response to a higher-level\nobject. Other kinds of errors, such as networking errors, will still be\nreported as they were previously.\n\nClient code can catch `DataConnectOperationException` and check its\n`response` property to get details about any errors that occurred and\nany data that was received. If the data was able to be decoded, despite\nthe errors, then it will be available. Also the \"raw\" data (a\n`Map<String, Any?>`) property will give access to the raw, undecoded\ndata, if any was sent from the backend.\n\nThis feature is intended to support \"partial errors\", where an operation\ncan partially succeed and partially fail, and the client application\nwants to take some special behavior in the case of a partial success.\n\nFor example, suppose this database schema and connector definition:\n\n```\ntype Person @table {\n name: String!\n}\n\n# Notice how both \"inserts\" use the same ID; this means that one of them\n# will necessarily fail because you can't have two rows with the same ID.\nmutation InsertMultiplePeople($id: UUID!, $name1: String!, $name2: String!) {\n person1: person_insert(data: { id: $id, name: $name1 })\n person2: person_insert(data: { id: $id, name: $name2 })\n}\n```\n\nHere is some code that handles the partial error that will occur if this\nmutation were to ever be executed:\n\n```kt\nimport com.google.firebase.dataconnect.DataConnectOperationException\nimport com.google.firebase.dataconnect.DataConnectOperationFailureResponse\nimport com.google.firebase.dataconnect.DataConnectPathSegment\nimport com.myapp.myconnector.InsertTwoFoosWithSameIdMutation.Data\n\nsuspend fun demo(id: UUID, connector: DemoConnector): Data {\n val result = connector.insertTwoFoosWithSameId.runCatching { execute(id) }\n result.onSuccess {\n println(\"Weird... inserting _both_ entries with ID $id succeeded 🤷\")\n return@demo it.data\n }\n\n val exception = result.exceptionOrNull()!!\n if (exception !is DataConnectOperationException) {\n throw exception\n }\n\n // Print warnings messages about which of \"foo1\" and \"foo2\" failed to\n // be inserted by the query. This information is gleaned from the list of\n // errors provided in the DataConnectOperationFailureResponse.\n val response: DataConnectOperationFailureResponse<*> = exception.response\n val errors = response.errors\n\n val error1 = errors.firstOrNull {\n it.path == listOf(DataConnectPathSegment.Field(\"person1\"))\n }\n if (error1 == null) {\n println(\"Inserting 1st entry with ID $id succeeded\")\n } else {\n println(\"Inserting 1st entry with ID $id failed: ${error1.message}\")\n }\n\n val error2 = errors.firstOrNull \n it.path == listOf(DataConnectPathSegment.Field(\"person2\"))\n }\n if (error2 == null) {\n println(\"Inserting 2nd entry with ID $id succeeded\")\n } else {\n println(\"Inserting 2nd entry with ID $id failed: ${error2.message}\")\n }\n\n // If decoding the response was actually successful, then return\n // the decoded response.\n val data = response.data as? Data\n if (data != null) {\n return data\n }\n\n throw exception\n}\n\n```",
"commitLink": "https://github.com/firebase/firebase-android-sdk/commit/ba6997578d951f81a5100244ea71b57ffdc16d05",
"prLink": "https://github.com/firebase/firebase-android-sdk/pull/6794"
},
{
"commitId": "75be716089b38a2740731ce4df5108b6c8fe630c",
"prId": "6802",
"author": "Denver Coneybeare",
"message": "dataconnect: generateApiTxtFile.sh added (#6802)\n\n",
"commitLink": "https://github.com/firebase/firebase-android-sdk/commit/75be716089b38a2740731ce4df5108b6c8fe630c",
"prLink": "https://github.com/firebase/firebase-android-sdk/pull/6802"
},
{
"commitId": "e36a15be3b40246358d2ba76b1b37b7a4887052a",
"prId": "6803",
"author": "Denver Coneybeare",
"message": "dataconnect: DataConnectExecutableVersions.json updated with versions 1.8.4, 1.8.5, 1.9.0, 1.9.1, and 1.9.2 (#6803)\n\n",
"commitLink": "https://github.com/firebase/firebase-android-sdk/commit/e36a15be3b40246358d2ba76b1b37b7a4887052a",
"prLink": "https://github.com/firebase/firebase-android-sdk/pull/6803"
},
{
"commitId": "c1ca0210b83f8d94eea14ee1ffe29a98aac154ca",
"prId": "6799",
"author": "Rodrigo Lazo",
"message": "[DataConnect] Add changelog entry back (#6799)\n\n",
"commitLink": "https://github.com/firebase/firebase-android-sdk/commit/c1ca0210b83f8d94eea14ee1ffe29a98aac154ca",
"prLink": "https://github.com/firebase/firebase-android-sdk/pull/6799"
},
{
"commitId": "16aed70b43cda0c2ca5a886203e2e126eff85379",
"prId": "6798",
"author": "Rodrigo Lazo",
"message": "[DataConnect] Update release configuration (#6798)\n\n",
"commitLink": "https://github.com/firebase/firebase-android-sdk/commit/16aed70b43cda0c2ca5a886203e2e126eff85379",
"prLink": "https://github.com/firebase/firebase-android-sdk/pull/6798"
},
{
"commitId": "2d5cabed7c0ee6531c3549953698937b8b5736bb",
"prId": "6792",
"author": "Denver Coneybeare",
"message": "dataconnect: remove \"beta\" version marker and graduate the data connect sdk from \"beta\" to \"generally available\" (#6792)\n\n",
"commitLink": "https://github.com/firebase/firebase-android-sdk/commit/2d5cabed7c0ee6531c3549953698937b8b5736bb",
"prLink": "https://github.com/firebase/firebase-android-sdk/pull/6792"
},
{
"commitId": "f7e98b83e5939f7f3792c5507211db4651dc5b86",
"prId": "6776",
"author": "Denver Coneybeare",
"message": "dataconnect: demo: upgrade versions in build.gradle.kts (#6776)\n\n",
"commitLink": "https://github.com/firebase/firebase-android-sdk/commit/f7e98b83e5939f7f3792c5507211db4651dc5b86",
"prLink": "https://github.com/firebase/firebase-android-sdk/pull/6776"
}
],
"firebase-functions": [
{
"commitId": "1cf65b9d2a473399440df24fab4cda5dfa296468",
"prId": "6807",
"author": "Rodrigo Lazo",
"message": "[VertexAI] Bump timeout for error test (#6807)\n\nThe test `genStreamError_receivesError` is flaky due to timeout issues.\nBumping timeout to 10s.",
"commitLink": "https://github.com/firebase/firebase-android-sdk/commit/1cf65b9d2a473399440df24fab4cda5dfa296468",
"prLink": "https://github.com/firebase/firebase-android-sdk/pull/6807"
},
{
"commitId": "615352d68db776bdde40fff1a1aeea851ee8d6bc",
"prId": "6796",
"author": "Rodrigo Lazo",
"message": "[Functions] Several functions improvements (#6796)\n\nThese improvements are both in the SDK itself, and in the code used for\nthe actual functions running in the cloud during integration testing:\n\nA summary of the changes is:\n- [Backend functions] Update the dependencies and node runtime version\n- [Backend functions] Add logging in case the client does not support\nstreaming\n- [SDK] Use a more robust handle of the media type\n- [SDK] Fix issue introduced in #6773 that missed a return in case of\nerror\n- [SDK] Other minor code fixes\n\nb/404814020",
"commitLink": "https://github.com/firebase/firebase-android-sdk/commit/615352d68db776bdde40fff1a1aeea851ee8d6bc",
"prLink": "https://github.com/firebase/firebase-android-sdk/pull/6796"
},
{
"commitId": "0554f0df8b8c8972c9497bf16aa861a2e42e5dc7",
"prId": "6773",
"author": "Rosário P. Fernandes",
"message": "fix(functions): use notifyError() instead of throwing (#6773)\n\nThrowing inside the `PublisherStream` causes a Runtime exception that\ncan't be caught in the call site.\nInstead, we should use `notifyError()` so that the error can be caught\nin the `Subscriber#onError()` function.\n\nI tried to catch the exception using both of the code snippets below,\nbut none of them worked. (they both work with the changes in this PR):\n\n```kotlin\nfunctions.getHttpsCallable(\"nonExistentFunction\")\n .stream().asFlow()\n .catch {\n // Handle error for a 404 function\n }\n .collect {\n // ...\n }\n```\n\n```kotlin\ntry {\n functions.getHttpsCallable(\"nonExistentFunction\")\n .stream().asFlow()\n .collect {\n // ...\n }\n} catch(e: Exception) {\n // Handle error for a 404 function\n}\n```\n\nRuntime exception thrown:\n\n```\nFATAL EXCEPTION: OkHttp Dispatcher\n Process: com.google.samples.quickstart.functions, PID: 13321\n com.google.firebase.functions.FirebaseFunctionsException: Value <html><head> of type java.lang.String cannot be converted to JSONObject Unexpected Response:\n \n <html><head>\n <meta http-equiv=\"content-type\" content=\"text/html;charset=utf-8\">\n <title>404 Page not found</title>\n </head>\n <body text=#000000 bgcolor=#ffffff>\n <h1>Error: Page not found</h1>\n <h2>The requested URL was not found on this server.</h2>\n <h2></h2>\n </body></html>\n \n at com.google.firebase.functions.PublisherStream.validateResponse(PublisherStream.kt:316)\n at com.google.firebase.functions.PublisherStream.access$validateResponse(PublisherStream.kt:41)\n at com.google.firebase.functions.PublisherStream$startStreaming$1$4.onResponse(PublisherStream.kt:161)\n at okhttp3.RealCall$AsyncCall.execute(RealCall.java:203)\n at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)\n at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1156)\n at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:651)\n at java.lang.Thread.run(Thread.java:1119)\n```",
"commitLink": "https://github.com/firebase/firebase-android-sdk/commit/0554f0df8b8c8972c9497bf16aa861a2e42e5dc7",
"prLink": "https://github.com/firebase/firebase-android-sdk/pull/6773"
},
{
"commitId": "1aca8994cc4f1e3107f1f7cc9fcd8f03d39a79af",
"prId": "6775",
"author": "Rosário P. Fernandes",
"message": "chore(functions): export reactive-streams as a transitive dependency (#6775)\n\nAlternative to #6774 - we'll keep that PR for a follow-up release.\n\nFor now, we're exposing the `reactive-streams` dependency to make sure\nit works out of the box for Java developers.",
"commitLink": "https://github.com/firebase/firebase-android-sdk/commit/1aca8994cc4f1e3107f1f7cc9fcd8f03d39a79af",
"prLink": "https://github.com/firebase/firebase-android-sdk/pull/6775"
},
{
"commitId": "b9be9f1ca0ebd0a8a67b06c282b0f83888145651",
"prId": "6769",
"author": "emilypgoogle",
"message": "Add m161 changelog for functions (#6769)\n\n",
"commitLink": "https://github.com/firebase/firebase-android-sdk/commit/b9be9f1ca0ebd0a8a67b06c282b0f83888145651",
"prLink": "https://github.com/firebase/firebase-android-sdk/pull/6769"
}
],
"firebase-functions/ktx": [
],
"firebase-vertexai": [
{
"commitId": "f67d32d6b056c3801f28fcf2bbc570ae964d8d33",
"prId": "6805",
"author": "Rodrigo Lazo",
"message": "[VertexAI] Log warning for unsupported model names (#6805)\n\nAdded a warning message to the initializers of GenerativeModel and\nImagenModel that is logged when the provided model name does not start\nwith the expected prefix (\"gemini-\" for GenerativeModel and \"imagen-\"\nfor ImagenModel). The warning message includes a link to the\ndocumentation for supported models.\n\nNote: No error is thrown in case the naming scheme is changed in the\nfuture, though we would want to update the logic/message at that time.\n\nRelated iOS PR https://github.com/firebase/firebase-ios-sdk/pull/14610",
"commitLink": "https://github.com/firebase/firebase-android-sdk/commit/f67d32d6b056c3801f28fcf2bbc570ae964d8d33",
"prLink": "https://github.com/firebase/firebase-android-sdk/pull/6805"
},
{
"commitId": "8a72ed5841a203e48b6c1d771f52cc71110834cd",
"prId": "6804",
"author": "David Motsonashvili",
"message": "Add ML monitoring info to GenAI requests (#6804)\n\nCo-authored-by: David Motsonashvili <[email protected]>",
"commitLink": "https://github.com/firebase/firebase-android-sdk/commit/8a72ed5841a203e48b6c1d771f52cc71110834cd",
"prLink": "https://github.com/firebase/firebase-android-sdk/pull/6804"
},
{
"commitId": "564734a4e7152ca1e8743f7f05d53ee0f2679bdc",
"prId": "6800",
"author": "Andrew Heard",
"message": "[Vertex AI] Return `ImagenInlineImage.data` as binary (#6800)\n\nCo-authored-by: Rodrigo Lazo <[email protected]>",
"commitLink": "https://github.com/firebase/firebase-android-sdk/commit/564734a4e7152ca1e8743f7f05d53ee0f2679bdc",
"prLink": "https://github.com/firebase/firebase-android-sdk/pull/6800"
},
{
"commitId": "9b42d841540cbf2eb52e0e8cdaff6a131dc2eaf4",
"prId": "6771",
"author": "David Motsonashvili",
"message": "fix for new version of golden files (#6771)\n\nCo-authored-by: David Motsonashvili <[email protected]>",
"commitLink": "https://github.com/firebase/firebase-android-sdk/commit/9b42d841540cbf2eb52e0e8cdaff6a131dc2eaf4",
"prLink": "https://github.com/firebase/firebase-android-sdk/pull/6771"
},
{
"commitId": "19dd95bb556b7a00df2daf548ad50407345f1c0e",
"prId": "6762",
"author": "Rodrigo Lazo",
"message": "[VertexAI] Remove redundant tests (#6762)\n\nThere is an extra copy of some tests inside ` test/.../common`\ndirectory. This change removes them, and in the process:\n\n- Adds missing tests to the correct test file\n- Gets rid of duplicated tests and test-util code\n- Adds an exception type for quota exceeded",
"commitLink": "https://github.com/firebase/firebase-android-sdk/commit/19dd95bb556b7a00df2daf548ad50407345f1c0e",
"prLink": "https://github.com/firebase/firebase-android-sdk/pull/6762"
},
{
"commitId": "bdb330ec29680503e9e319b00d75ec99b96c42d6",
"prId": "6768",
"author": "Rodrigo Lazo",
"message": "Add GenerationConfig to CountTokenRequest's (#6768)\n\nFor reference b/402856353",
"commitLink": "https://github.com/firebase/firebase-android-sdk/commit/bdb330ec29680503e9e319b00d75ec99b96c42d6",
"prLink": "https://github.com/firebase/firebase-android-sdk/pull/6768"
}
]
},
"changedLibrariesWithNoChangelog": [
":firebase-crashlytics",
":firebase-crashlytics-ndk",
":firebase-sessions",
":firebase-crashlytics:ktx"
]
}
Loading
Loading