Skip to content

chore: librarian generate pull request: 20260325T171205Z#1528

Closed
parthea wants to merge 1 commit intomainfrom
librarian-20260325T171205Z
Closed

chore: librarian generate pull request: 20260325T171205Z#1528
parthea wants to merge 1 commit intomainfrom
librarian-20260325T171205Z

Conversation

@parthea
Copy link
Contributor

@parthea parthea commented Mar 25, 2026

PR created by the Librarian CLI to generate Cloud Client Libraries code from protos.

BEGIN_COMMIT

BEGIN_NESTED_COMMIT
docs: A comment in message .google.spanner.v1.TransactionOptions.ReadWrite.ReadLockMode is changed

PiperOrigin-RevId: 878019893
Library-IDs: google-cloud-spanner
Source-link: googleapis/googleapis@5c9602db
END_NESTED_COMMIT

BEGIN_NESTED_COMMIT
feat: include cache updates and routing hint into BeginTransaction and Commit request/response respectively

PiperOrigin-RevId: 878019893
Library-IDs: google-cloud-spanner
Source-link: googleapis/googleapis@5c9602db
END_NESTED_COMMIT

BEGIN_NESTED_COMMIT
docs: A comment for field routing_hint in messages .google.spanner.v1.ResultSet and .google.spanner.v1.PartialResultSet are changed

PiperOrigin-RevId: 878019893
Library-IDs: google-cloud-spanner
Source-link: googleapis/googleapis@5c9602db
END_NESTED_COMMIT

BEGIN_NESTED_COMMIT
docs: A comment for field transaction_tag in message .google.spanner.v1.RequestOptions is changed

PiperOrigin-RevId: 865546011
Library-IDs: google-cloud-spanner
Source-link: googleapis/googleapis@8d30990f
END_NESTED_COMMIT

BEGIN_NESTED_COMMIT
docs: A comment for field commit_timestamp in message .google.spanner.v1.BatchWriteResponse is changed

PiperOrigin-RevId: 865546011
Library-IDs: google-cloud-spanner
Source-link: googleapis/googleapis@8d30990f
END_NESTED_COMMIT

BEGIN_NESTED_COMMIT
docs: A comment for field param_types in message .google.spanner.v1.PartitionQueryRequest is changed

PiperOrigin-RevId: 865546011
Library-IDs: google-cloud-spanner
Source-link: googleapis/googleapis@8d30990f
END_NESTED_COMMIT

BEGIN_NESTED_COMMIT
feat: include cache updates into the ResultSet response

PiperOrigin-RevId: 865546011
Library-IDs: google-cloud-spanner
Source-link: googleapis/googleapis@8d30990f
END_NESTED_COMMIT

BEGIN_NESTED_COMMIT
docs: A comment for field params in message .google.spanner.v1.PartitionQueryRequest is changed

PiperOrigin-RevId: 865546011
Library-IDs: google-cloud-spanner
Source-link: googleapis/googleapis@8d30990f
END_NESTED_COMMIT

BEGIN_NESTED_COMMIT
chore: adjust initial_poll_delay for CreateDatabase and UpdateDatabaseDdl LRO operations

PiperOrigin-RevId: 853884590
Library-IDs: google-cloud-spanner
Source-link: googleapis/googleapis@136a2c43
END_NESTED_COMMIT

BEGIN_NESTED_COMMIT
feat: add Secure Parameters to the ClientContext

PiperOrigin-RevId: 853323071
Library-IDs: google-cloud-spanner
Source-link: googleapis/googleapis@211d22fa
END_NESTED_COMMIT

BEGIN_NESTED_COMMIT
feat: add a ClientContext field to Spanner requests

PiperOrigin-RevId: 853323071
Library-IDs: google-cloud-spanner
Source-link: googleapis/googleapis@211d22fa
END_NESTED_COMMIT

BEGIN_NESTED_COMMIT
feat: Exposing total CPU related fields in AutoscalingConfig

PiperOrigin-RevId: 845819318
Library-IDs: google-cloud-spanner
Source-link: googleapis/googleapis@6e20492a
END_NESTED_COMMIT

BEGIN_NESTED_COMMIT
docs: Update high_priority_cpu_utilization_percent in AutoscalingConfig to be Optional and clarify its behavior when not specified

PiperOrigin-RevId: 845819318
Library-IDs: google-cloud-spanner
Source-link: googleapis/googleapis@6e20492a
END_NESTED_COMMIT

BEGIN_NESTED_COMMIT
docs: minor update for Spanner Location API

PiperOrigin-RevId: 834841888
Library-IDs: google-cloud-spanner
Source-link: googleapis/googleapis@ded7ed1e
END_NESTED_COMMIT

END_COMMIT

This pull request is generated with proto changes between
googleapis/googleapis@a17b84ad
(exclusive) and
googleapis/googleapis@5c9602db
(inclusive).

Librarian Version: v1.0.2-0.20260309131826-42ac5c451239
Language Image: us-central1-docker.pkg.dev/cloud-sdk-librarian-prod/images-prod/python-librarian-generator@sha256:b8058df4c45e9a6e07f6b4d65b458d0d059241dd34c814f151c8bf6b89211209

@parthea parthea requested review from a team as code owners March 25, 2026 17:12
@product-auto-label product-auto-label bot added the size: l Pull request size is large. label Mar 25, 2026
@product-auto-label product-auto-label bot added the api: spanner Issues related to the googleapis/python-spanner API. label Mar 25, 2026
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request updates the Google Cloud Spanner client library, primarily through automated code generation. It introduces new capabilities for managing transaction and result set caching and routing, enhances instance autoscaling with more granular CPU utilization controls, and provides a mechanism for passing secure client context with requests. Additionally, it includes several documentation clarifications across the API and internal tooling updates to improve testing and code generation workflows.

Highlights

  • New Features: Introduced cache updates and routing hints into BeginTransaction and Commit requests/responses, and ResultSet and Transaction objects to improve location awareness and performance.
  • Autoscaling Enhancements: Expanded autoscaling configuration for Spanner instances to include total CPU utilization targets and options to disable specific CPU autoscaling for replicas.
  • Client Context and Secure Parameters: Added a ClientContext field to Spanner requests, allowing for the inclusion of secure parameters via a secure_context map.
  • Documentation Updates: Clarified documentation for various fields including ReadLockMode in TransactionOptions, transaction_tag in RequestOptions, commit_timestamp in BatchWriteResponse, and location-related fields in Tablet and RoutingHint.
  • Testing and Tooling Improvements: Updated the noxfile to support asyncio testing with pytest-asyncio, refactored test argument handling, and added a new generate session for regenerating synchronous code.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
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 updates the Spanner client types to introduce new autoscaling configuration options, including total CPU utilization targets and controls to disable specific CPU autoscaling types. It also adds location caching and routing hint fields to various Spanner request and response messages (CommitResponse, ResultSet, Transaction, BeginTransactionRequest, CommitRequest) to improve location awareness and performance. Additionally, the PR refactors Nox sessions, including renaming a formatting session, adding pytest-asyncio dependency, modifying argument passing for unit and system tests, and introducing a new generate session for synchronous code regeneration. The review comments point out an issue where the noxfile.py logic for handling session.posargs in system tests is flawed, preventing specific async tests from running, and a duplicate comment block in noxfile.py that should be removed for code cleanliness.

Comment on lines +427 to +431
else:
# If posargs are provided, only run if they match async tests
# or just skip if they were already run in sync.
# For simplicity, we only run async folder if no posargs.
return
Copy link
Contributor

Choose a reason for hiding this comment

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

high

The current logic for handling session.posargs in system tests is flawed. If positional arguments are provided (e.g., to run a specific test file), they are passed to the sync test runner, and the async test run is skipped entirely due to the return statement. This prevents developers from running specific async tests.

For example, running nox -s system -- tests/system/_async/test_it.py would execute the sync test command with the async test path, and then exit before the async test command is even constructed. This is incorrect.

A better approach would be to pass the posargs to the async test run as well, allowing pytest to correctly select and run the specified tests.

Suggested change
else:
# If posargs are provided, only run if they match async tests
# or just skip if they were already run in sync.
# For simplicity, we only run async folder if no posargs.
return
else:
# If posargs are provided, pass them to the async test run as well.
# pytest will filter and run only the relevant tests.
async_args.extend(session.posargs)

noxfile.py Outdated
Comment on lines +21 to +24
# DO NOT EDIT THIS FILE OUTSIDE OF `.librarian/generator-input`
# The source of truth for this file is `.librarian/generator-input`


Copy link
Contributor

Choose a reason for hiding this comment

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

medium

This comment block is a duplicate of the one on lines 17-18. It should be removed for code cleanliness.

@parthea parthea force-pushed the librarian-20260325T171205Z branch from 00b3658 to fc15893 Compare March 25, 2026 17:30
@product-auto-label product-auto-label bot added size: m Pull request size is medium. and removed size: l Pull request size is large. labels Mar 25, 2026
@parthea parthea closed this Mar 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

api: spanner Issues related to the googleapis/python-spanner API. size: m Pull request size is medium.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants