Skip to content

Sample migration PR for librarian - test-20260408T102222#16584

Draft
jskeet wants to merge 7 commits intogoogleapis:mainfrom
jskeet:test-20260408T102222
Draft

Sample migration PR for librarian - test-20260408T102222#16584
jskeet wants to merge 7 commits intogoogleapis:mainfrom
jskeet:test-20260408T102222

Conversation

@jskeet
Copy link
Copy Markdown
Contributor

@jskeet jskeet commented Apr 8, 2026

As ever, the last commit is the one to look at. (And the first commit wouldn't be present at all.)

@jskeet jskeet requested a review from daniel-sanche April 8, 2026 13:44
@jskeet jskeet added the do not merge Indicates a pull request not ready for merge, due to either quality or timing. label Apr 8, 2026
Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request performs a large-scale migration of library configurations to librarian@latest, updates repository metadata across numerous packages, and adds significant new functionality to the Google Apps Chat and Memorystore clients. Specifically, it introduces support for managing sections and section items in Google Chat and adds shared regional certificate authority retrieval in Memorystore. Feedback identifies a critical syntax error in the synchronous Chat client where an await keyword was incorrectly used, a Python boolean literal error in the Django Spanner documentation, and an indentation inconsistency in the Chat client's parameter handling.

# Wrap the RPC method; this adds retry and timeout information,
# and friendly error handling.
rpc = self._transport._wrapped_methods[self._transport.delete_section]

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

critical

The delete_section method in the synchronous ChatServiceClient incorrectly uses the await keyword. This will result in a SyntaxError because the method is not defined as async.

        rpc(

'PROJECT': '$PROJECT',
'INSTANCE': '$INSTANCE',
'NAME': '$DATABASE',
'RANDOM_ID_GENERATION_ENABLED': false,
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

In Python, the boolean literal for false is False (capitalized). Using false in this code snippet will cause a NameError if the code is executed.

Suggested change
'RANDOM_ID_GENERATION_ENABLED': false,
'RANDOM_ID_GENERATION_ENABLED': False,
References
  1. Python boolean literals are capitalized (True, False). (link)

Comment on lines +6181 to +6186
# If we have keyword arguments corresponding to fields on the
# request, apply these.
if parent is not None:
request.parent = parent
if section is not None:
request.section = section
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

The application of flattened parameters is indented inside the if not isinstance(...) block. While functionally correct due to earlier checks, it is inconsistent with other methods in this file (e.g., list_sections) and with the ChatServiceAsyncClient where these assignments are outside the block. This inconsistency should be resolved for better maintainability.

Suggested change
# If we have keyword arguments corresponding to fields on the
# request, apply these.
if parent is not None:
request.parent = parent
if section is not None:
request.section = section
# If we have keyword arguments corresponding to fields on the
# request, apply these.
if parent is not None:
request.parent = parent
if section is not None:
request.section = section

@@ -1,5 +1,4 @@
{
"api_description": "Pandas extension data types for data from SQL systems such as BigQuery.",
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

This change doesn't really matter as the README isn't generated from it.

@@ -1 +1,288 @@
.. include:: ../README.rst
Cloud Spanner support for Django
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

This is just because we're copying the parent readme file instead of using the include.

@@ -1,5 +1,4 @@
{
"api_description": "is a fully managed, NoOps, low cost data analytics service.\nData can be streamed into BigQuery at millions of rows per second to enable real-time analysis.\nWith BigQuery you can easily deploy Petabyte-scale Databases.",
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Not sure why there's no description here, but againit doesn't appear to have changed a readme.

"name_pretty": "iamconnectorcredentials.googleapis.com API",
"product_documentation": "https://cloud.google.com/iamconnectorcredentials/docs/overview",
"release_level": "preview",
"release_level": "stable",
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

This is a bug. Filed googleapis/librarian#5214

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

This will be fixed - there's just nothing in sdk.yaml to say it's preview.

"disable_auth": True,
"protocol": "protocol_value",
"overrides_by_request_protocol": {},
"load_balancing_policy": "load_balancing_policy_value",
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I don't know where the information in this file comes from. The API hasn't changed in a while. Filed googleapis/librarian#5215

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

This is (I think) a bug in legacylibrarian or an operator error at some point. Regenerating explicitly with legacylibrarian creates the same change, so I think it wasn't regenerated when the image was updated. Unless there's any reason not to take the change, we should do so.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

do not merge Indicates a pull request not ready for merge, due to either quality or timing.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant