Skip to content

chore(migration): Migrate code from googleapis/python-bigtable into packages/google-cloud-bigtable#16003

Draft
parthea wants to merge 927 commits intomainfrom
migration.python-bigtable.migration.2026-03-02_16-59-45.migrate
Draft

chore(migration): Migrate code from googleapis/python-bigtable into packages/google-cloud-bigtable#16003
parthea wants to merge 927 commits intomainfrom
migration.python-bigtable.migration.2026-03-02_16-59-45.migrate

Conversation

@parthea
Copy link
Contributor

@parthea parthea commented Mar 2, 2026

See #10992.

This PR should be merged with a merge-commit, not a squash-commit, in order to preserve the git history.

gcf-owl-bot bot and others added 30 commits September 26, 2022 10:37
* feat: publish the RequestStats proto

PiperOrigin-RevId: 476399682

Source-Link: googleapis/googleapis@0c4e682

Source-Link: googleapis/googleapis-gen@ff87f69
Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiZmY4N2Y2OWFhZDFmMmZmMDY3NzJmOTE3ZWVjYmVhNjQ5Nzk3ZDlkNSJ9

* 🦉 Updates from OwlBot post-processor

See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md

Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
* chore: exclude requirements.txt file from renovate-bot

Source-Link: googleapis/synthtool@f58d313
Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-python:latest@sha256:7a40313731a7cb1454eef6b33d3446ebb121836738dc3ab3d2d3ded5268c35b6

* update constraints files

* fix(deps): require protobuf 3.20.2

Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
Co-authored-by: Anthonios Partheniou <partheniou@google.com>
Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
* fix(deps): allow protobuf 3.19.5

* explicitly exclude protobuf 4.21.0
Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
* feat: allow end users to override the deadline for manipulating column families

As a sideeffect this also fixes a bug where the default deadlines were not applied.

* limit scope of change to just use the default timeout

* lint
* feat: remove proto ReadEfficiencyStats
feat: remove field RequestStats.read_efficiency_stats
feat: rename proto AllReadStats to FullReadStatsView
feat: rename field RequestStats.all_read_stats to full_read_stats_view
feat: rename proto ReadIteratorStats to ReadIterationStats
feat: remove enum value ReadRowsRequest.RequestStatsView.REQUEST_STATS_EFFICIENCY
feat: remove field ReadIterationStats.deletes_seen

PiperOrigin-RevId: 479370243

Source-Link: googleapis/googleapis@959d789

Source-Link: googleapis/googleapis-gen@38b4252
Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiMzhiNDI1MjY0YzAzZjNjZGNhMjc5NTAzYzgwMWM4NjYwNGM4YTY3YSJ9

* 🦉 Updates from OwlBot post-processor

See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md

* chore: update to gapic-generator-python 1.5.0

feat: add support for `google.cloud.<api>.__version__`
PiperOrigin-RevId: 484665853

Source-Link: googleapis/googleapis@8eb249a

Source-Link: googleapis/googleapis-gen@c8aa327
Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiYzhhYTMyN2I1ZjQ3ODg2NWZjM2ZkOTFlM2MyNzY4ZTU0ZTI2YWQ0NCJ9

* 🦉 Updates from OwlBot post-processor

See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md

* chore: Update to gapic-generator-python 1.6.0

feat(python): Add typing to proto.Message based class attributes

feat(python): Snippetgen handling of repeated enum field

PiperOrigin-RevId: 487326846

Source-Link: googleapis/googleapis@da380c7

Source-Link: googleapis/googleapis-gen@61ef576
Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiNjFlZjU3NjJlZTY3MzFhMGNiYmZlYTIyZmQwZWVjZWU1MWFiMWM4ZSJ9

* 🦉 Updates from OwlBot post-processor

See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md

* feat: new APIs added to reflect updates to the filestore service

- Add ENTERPRISE Tier
- Add snapshot APIs: RevertInstance, ListSnapshots, CreateSnapshot, DeleteSnapshot, UpdateSnapshot
- Add multi-share APIs: ListShares, GetShare, CreateShare, DeleteShare, UpdateShare
- Add ConnectMode to NetworkConfig (for Private Service Access support)
- New status codes (SUSPENDED/SUSPENDING, REVERTING/RESUMING)
- Add SuspensionReason (for KMS related suspension)
- Add new fields to Instance information: max_capacity_gb, capacity_step_size_gb, max_share_count, capacity_gb, multi_share_enabled

PiperOrigin-RevId: 487492758

Source-Link: googleapis/googleapis@5be5981

Source-Link: googleapis/googleapis-gen@ab0e217
Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiYWIwZTIxN2Y1NjBjYzJjMWFmYzExNDQxYzJlYWI2YjY5NTBlZmQyYiJ9

* 🦉 Updates from OwlBot post-processor

See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md

* Add gapic_version to google.cloud.bigtable

Manually adjust the import of gapic_version

* chore: Update gapic-generator-python to v1.6.1

PiperOrigin-RevId: 488036204

Source-Link: googleapis/googleapis@08f275f

Source-Link: googleapis/googleapis-gen@555c094
Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiNTU1YzA5NDVlNjA2NDllMzg3MzlhZTY0YmM0NTcxOWNkZjcyMTc4ZiJ9

* Fix the version

* 🦉 Updates from OwlBot post-processor

See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md

* Remove unused import

* Fix the import

* Add release please config and manifest
Add gapic version under bigtable_admin_v2

* Fix path to bigtable in setup.py

* add google.cloud.bigtable_admin

* hardcode bigtable version in owlbot.py

* Remove unused gapic_version.py from bigtable_admin_v2

Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
Co-authored-by: Mariatta Wijaya <mariattaw@google.com>
Co-authored-by: Mariatta Wijaya <Mariatta@users.noreply.github.com>
Co-authored-by: Anthonios Partheniou <partheniou@google.com>
Source-Link: googleapis/synthtool@25083af
Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-python:latest@sha256:e6cbd61f1838d9ff6a31436dfc13717f372a7482a82fc1863ca954ec47bff8c8

Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
Co-authored-by: Anthonios Partheniou <partheniou@google.com>
Source-Link: googleapis/synthtool@6ed3a83
Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-python:latest@sha256:3abfa0f1886adaf0b83f07cb117b24a639ea1cb9cffe56d43280b977033563eb

Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
* fix(deps): Require google-api-core >=1.34.0, >=2.11.0

fix: Drop usage of pkg_resources

fix: Fix timeout default values

docs(samples): Snippetgen should call await on the operation coroutine before calling result

PiperOrigin-RevId: 493260409

Source-Link: googleapis/googleapis@fea4387

Source-Link: googleapis/googleapis-gen@387b734
Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiMzg3YjczNDRjNzUyOWVlNDRiZTg0ZTYxM2IxOWE4MjA1MDhjNjEyYiJ9

* 🦉 Updates from OwlBot post-processor

See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md

* update release-please-config.json

* drop pkg_resources

* update the version in gapic_version.py

* fix typo

* lint

Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
Co-authored-by: Anthonios Partheniou <partheniou@google.com>
Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
…cp/templates/python_library/.kokoro (#711)

Source-Link: googleapis/synthtool@b4fe62e
Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-python:latest@sha256:3bf87e47c2173d7eed42714589dc4da2c07c3268610f1e47f8e1a30decbfc7f1

Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
* chore(python): add support for python 3.11

Source-Link: googleapis/synthtool@7197a00
Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-python:latest@sha256:c43f1d918bcf817d337aa29ff833439494a158a0831508fda4ec75dc4c0d0320

* add constraints file for python 3.11

Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
Co-authored-by: Anthonios Partheniou <partheniou@google.com>
* feat: Add support for python 3.11

chore: Update gapic-generator-python to v1.8.0
PiperOrigin-RevId: 500768693

Source-Link: googleapis/googleapis@190b612

Source-Link: googleapis/googleapis-gen@7bf29a4
Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiN2JmMjlhNDE0YjllY2FjMzE3MGYwYjY1YmRjMmE5NTcwNWMwZWYxYSJ9

* 🦉 Updates from OwlBot post-processor

See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md

* require proto-plus 1.22.2 for python 3.11

Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
Co-authored-by: Anthonios Partheniou <partheniou@google.com>
Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
release-please bot and others added 26 commits October 7, 2025 16:46
- [ ] Regenerate this pull request now.

BEGIN_COMMIT_OVERRIDE
feat: add PeerInfo proto in Bigtable API 
fix: Add ReadRows/SampleRowKeys bindings for materialized views
fix: Deprecate credentials_file argument
feat: Add Type API updates needed to support structured keys in
materialized views
feat: Add encodings for STRUCT and the Timestamp type
END_COMMIT_OVERRIDE


PiperOrigin-RevId: 829585900

Source-Link:
googleapis/googleapis@1b5f863

Source-Link:
googleapis/googleapis-gen@1a69287
Copy-Tag:
eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiMWE2OTI4NzUwMDNlMjc1NDcyOWRjMmE0Y2NhODgwNTUwNTFkMmFhZSJ9

BEGIN_NESTED_COMMIT
fix: Add ReadRows/SampleRowKeys bindings for materialized views


fix: Deprecate credentials_file argument
chore: Update gapic-generator-python to 1.28.0

PiperOrigin-RevId: 816753840

Source-Link:
googleapis/googleapis@d06cf27

Source-Link:
googleapis/googleapis-gen@a524e73
Copy-Tag:
eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiYTUyNGU3MzEwODgyYmJiOTliZmUxMzk5YjE4YmVkMzI4OTc5MjExYyJ9
END_NESTED_COMMIT
BEGIN_NESTED_COMMIT
feat: Add Type API updates needed to support structured keys in
materialized views
feat: Add encodings for STRUCT and the Timestamp type

PiperOrigin-RevId: 805031861

Source-Link:
googleapis/googleapis@6d1dca2

Source-Link:
googleapis/googleapis-gen@ecd9d88
Copy-Tag:
eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiZWNkOWQ4ODYwYmFlOGJiMzdiNDUyYmZjNmVlZmJkZDIyZDAyOGYwOSJ9
END_NESTED_COMMIT
BEGIN_NESTED_COMMIT
chore: Update gapic-generator-python to 1.26.2
PiperOrigin-RevId: 802200836

Source-Link:
googleapis/googleapis@d300b15

Source-Link:
googleapis/googleapis-gen@a1ff0ae
Copy-Tag:
eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiYTFmZjBhZTcyZGRjYjY4YTI1OTIxNWQ4Yzc3NjYxZTJjZGJiOWIwMiJ9
END_NESTED_COMMIT
BEGIN_NESTED_COMMIT
chore: update Python generator version to 1.25.1
PiperOrigin-RevId: 800535761

Source-Link:
googleapis/googleapis@4cf1f99

Source-Link:
googleapis/googleapis-gen@133d25b
Copy-Tag:
eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiMTMzZDI1YjY4ZTcxMjExNmUxYzVkYzcxZmMzZWIzYzVlNzE3MDIyYSJ9
END_NESTED_COMMIT
BEGIN_NESTED_COMMIT
fix: Add ReadRows/SampleRowKeys bindings for materialized views
PiperOrigin-RevId: 793800781

Source-Link:
googleapis/googleapis@fe06a49

Source-Link:
googleapis/googleapis-gen@c4550f6
Copy-Tag:
eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiYzQ1NTBmNjA3MjVkYzRjMDdhZGZlNjhjZWUwYWM3MmViNGE1YjFiYiJ9
END_NESTED_COMMIT

---------

Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
Co-authored-by: Anthonios Partheniou <partheniou@google.com>
Remove
[releases.md](https://github.com/googleapis/python-bigtable/blob/main/releases.md)
which is unused. This points to CHANGELOG.md at
`../../bigtable/CHANGELOG.md` which doesn't exist
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [apache-beam](https://beam.apache.org) | `==2.65.0` -> `==2.69.0` |
![age](https://developer.mend.io/api/mc/badges/age/pypi/apache-beam/2.69.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/apache-beam/2.65.0/2.69.0?slim=true)
|
|
[google-cloud-bigtable](https://redirect.github.com/googleapis/python-bigtable)
| `==2.30.1` -> `==2.34.0` |
![age](https://developer.mend.io/api/mc/badges/age/pypi/google-cloud-bigtable/2.34.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/google-cloud-bigtable/2.30.1/2.34.0?slim=true)
|
|
[google-cloud-core](https://redirect.github.com/googleapis/python-cloud-core)
| `==2.4.3` -> `==2.5.0` |
![age](https://developer.mend.io/api/mc/badges/age/pypi/google-cloud-core/2.5.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/google-cloud-core/2.4.3/2.5.0?slim=true)
|
|
[google-cloud-monitoring](https://redirect.github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-monitoring)
([source](https://redirect.github.com/googleapis/google-cloud-python)) |
`==2.27.1` -> `==2.28.0` |
![age](https://developer.mend.io/api/mc/badges/age/pypi/google-cloud-monitoring/2.28.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/google-cloud-monitoring/2.27.1/2.28.0?slim=true)
|
|
[google-cloud-testutils](https://redirect.github.com/googleapis/python-test-utils)
| `==1.6.4` -> `==1.7.0` |
![age](https://developer.mend.io/api/mc/badges/age/pypi/google-cloud-testutils/1.7.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/google-cloud-testutils/1.6.4/1.7.0?slim=true)
|

---

### Release Notes

<details>
<summary>googleapis/python-bigtable (google-cloud-bigtable)</summary>

###
[`v2.34.0`](https://redirect.github.com/googleapis/python-bigtable/blob/HEAD/CHANGELOG.md#2340-2025-10-16)

[Compare
Source](https://redirect.github.com/googleapis/python-bigtable/compare/v2.33.0...v2.34.0)

##### Features

- Add support for Python 3.14
([#&#8203;1217](https://redirect.github.com/googleapis/python-bigtable/issues/1217))
([263332a](https://redirect.github.com/googleapis/python-bigtable/commit/263332af71a229cb4fa598008a708137086a6f67))

###
[`v2.33.0`](https://redirect.github.com/googleapis/python-bigtable/blob/HEAD/CHANGELOG.md#2330-2025-10-06)

[Compare
Source](https://redirect.github.com/googleapis/python-bigtable/compare/v2.32.0...v2.33.0)

##### Features

- Add support for Proto and Enum types
([#&#8203;1202](https://redirect.github.com/googleapis/python-bigtable/issues/1202))
([34ceb86](https://redirect.github.com/googleapis/python-bigtable/commit/34ceb86007db08d453fa25cca4968d5b498ffcd6))
- Expose universe\_domain for tpc
([#&#8203;1150](https://redirect.github.com/googleapis/python-bigtable/issues/1150))
([451fd97](https://redirect.github.com/googleapis/python-bigtable/commit/451fd97e435218ffed47d39423680ffc4feccac4))

##### Bug Fixes

- Fix instance registration cleanup on early iterator termination
([#&#8203;1216](https://redirect.github.com/googleapis/python-bigtable/issues/1216))
([bbfd746](https://redirect.github.com/googleapis/python-bigtable/commit/bbfd746c61a6362efa42c7899ec3e34ceb541c83))
- Refactor channel refresh
([#&#8203;1174](https://redirect.github.com/googleapis/python-bigtable/issues/1174))
([6fa3008](https://redirect.github.com/googleapis/python-bigtable/commit/6fa30084058bc34d4487d1fee5c87d7795ff167a))

###
[`v2.32.0`](https://redirect.github.com/googleapis/python-bigtable/blob/HEAD/CHANGELOG.md#2320-2025-08-01)

[Compare
Source](https://redirect.github.com/googleapis/python-bigtable/compare/v2.31.0...v2.32.0)

##### Features

- Add Idempotency to Cloud Bigtable MutateRowsRequest API
([#&#8203;1143](https://redirect.github.com/googleapis/python-bigtable/issues/1143))
([c3e3eb0](https://redirect.github.com/googleapis/python-bigtable/commit/c3e3eb0e4ce44ece72b150dc5822846627074fba))
- Add support for AddToCell in Data Client
([#&#8203;1147](https://redirect.github.com/googleapis/python-bigtable/issues/1147))
([1a5b4b5](https://redirect.github.com/googleapis/python-bigtable/commit/1a5b4b514cadae5c83d61296314285d3774992c5))
- Implement SQL support in test proxy
([#&#8203;1106](https://redirect.github.com/googleapis/python-bigtable/issues/1106))
([7a91bbf](https://redirect.github.com/googleapis/python-bigtable/commit/7a91bbfb9df23f7e93c40b88648840342af6f16f))
- Modernized Bigtable Admin Client featuring selective GAPIC generation
([#&#8203;1177](https://redirect.github.com/googleapis/python-bigtable/issues/1177))
([58e7d37](https://redirect.github.com/googleapis/python-bigtable/commit/58e7d3782df6b13a42af053263afc575222a6b83))

###
[`v2.31.0`](https://redirect.github.com/googleapis/python-bigtable/blob/HEAD/CHANGELOG.md#2310-2025-05-22)

[Compare
Source](https://redirect.github.com/googleapis/python-bigtable/compare/v2.30.1...v2.31.0)

##### Features

- Add deletion\_protection support for LVs
([#&#8203;1108](https://redirect.github.com/googleapis/python-bigtable/issues/1108))
([c6d384d](https://redirect.github.com/googleapis/python-bigtable/commit/c6d384d4a104c182326e22dc3f10b7b905780dee))
- Support authorized views
([#&#8203;1034](https://redirect.github.com/googleapis/python-bigtable/issues/1034))
([97a0198](https://redirect.github.com/googleapis/python-bigtable/commit/97a019833d82e617769c56761aa5548d3ab896b9))
- Throw better error on invalid metadata response
([#&#8203;1107](https://redirect.github.com/googleapis/python-bigtable/issues/1107))
([2642317](https://redirect.github.com/googleapis/python-bigtable/commit/2642317077b723ca8fd62aa86322b524868c2c4d))

##### Bug Fixes

- Re-add py-typed file for bigtable package
([#&#8203;1085](https://redirect.github.com/googleapis/python-bigtable/issues/1085))
([0c322c7](https://redirect.github.com/googleapis/python-bigtable/commit/0c322c79ecbe4cde3e79d8e83ac655a978d07877))

</details>

<details>
<summary>googleapis/python-cloud-core (google-cloud-core)</summary>

###
[`v2.5.0`](https://redirect.github.com/googleapis/python-cloud-core/blob/HEAD/CHANGELOG.md#250-2025-10-27)

[Compare
Source](https://redirect.github.com/googleapis/python-cloud-core/compare/v2.4.3...v2.5.0)

##### Features

- Add Python 3.14 support
([#&#8203;333](https://redirect.github.com/googleapis/python-cloud-core/issues/333))
([c26e587](https://redirect.github.com/googleapis/python-cloud-core/commit/c26e587a79b1905f4d64e409b853d9e50bbb6c17))

##### Bug Fixes

- Remove setup.cfg configuration for creating universal wheels
([#&#8203;332](https://redirect.github.com/googleapis/python-cloud-core/issues/332))
([78ce8a6](https://redirect.github.com/googleapis/python-cloud-core/commit/78ce8a6f7c781cf2585131d7961beec9069a206c))
- Resolve issue where pre-release versions of dependencies are installed
([#&#8203;329](https://redirect.github.com/googleapis/python-cloud-core/issues/329))
([ab9785d](https://redirect.github.com/googleapis/python-cloud-core/commit/ab9785d1bce1d50a03ff41d9b377dc7632772105))

</details>

<details>
<summary>googleapis/google-cloud-python
(google-cloud-monitoring)</summary>

###
[`v2.28.0`](https://redirect.github.com/googleapis/google-cloud-python/compare/google-cloud-speech-v2.27.0...google-cloud-speech-v2.28.0)

[Compare
Source](https://redirect.github.com/googleapis/google-cloud-python/compare/google-cloud-monitoring-v2.27.2...google-cloud-monitoring-v2.28.0)

###
[`v2.27.2`](https://redirect.github.com/googleapis/google-cloud-python/releases/tag/google-cloud-monitoring-v2.27.2):
google-cloud-monitoring: v2.27.2

[Compare
Source](https://redirect.github.com/googleapis/google-cloud-python/compare/google-cloud-monitoring-v2.27.1...google-cloud-monitoring-v2.27.2)

##### Documentation

- Update import statement example in README
([868b006](https://redirect.github.com/googleapis/google-cloud-python/commit/868b0069baf1a4bf6705986e0b6885419b35cdcc))

</details>

<details>
<summary>googleapis/python-test-utils (google-cloud-testutils)</summary>

###
[`v1.7.0`](https://redirect.github.com/googleapis/python-test-utils/blob/HEAD/CHANGELOG.md#170-2025-10-29)

[Compare
Source](https://redirect.github.com/googleapis/python-test-utils/compare/v1.6.4...v1.7.0)

##### Features

- Add Python 3.14 support
([#&#8203;284](https://redirect.github.com/googleapis/python-test-utils/issues/284))
([3cb8491](https://redirect.github.com/googleapis/python-test-utils/commit/3cb8491d67d65d2262aa1b65091ea9b615b583af))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/googleapis/python-bigtable).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC4xNi4wIiwidXBkYXRlZEluVmVyIjoiNDIuMzIuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->
There's an internal race condition where when an rpc hits the timeout
limit, it sometimes receives a DEADLINE_EXCEEDED, but sometimes receives
a CANCELLED error. This PR marks CANCELLED as retryable, so this
situation will always eventually reach a DEADLINE_EXCEEDED state.

This will fix the flake currently seen in the conformance tests
Thank you for opening a Pull Request! Before submitting your PR, there
are a few things you can do to make sure it goes smoothly:
- [x] Make sure to open an issue as a
[bug/issue](https://github.com/googleapis/python-bigtable/issues/new/choose)
before writing your code! That way we can discuss the change, evaluate
designs, and agree on the general idea
- [x] Ensure the tests and linter pass
- [x] Code coverage does not decrease (if any source code was changed)
- [x] Appropriate docs were updated (if necessary)

Fixes #1239
Previously, when a channel refresh occurs, the async client would use
`channel.close()` with a grace parameter to allow previous channels to
keep serving old requests for a time. We were seeing flakes in our
tests, showing that `channel.close()` isn't reliable, and can sometimes
cancel ongoing requests before the grace period ends

This PR fixes this by using a fixed sleep time before calling close in
the async client, like the sync client already does. This should remove
the potential for cancelled requests before the grace period ends, and
improve test flakiness

I also updated the system test to fully capture this problematic state,
instead of encountering it in a random race condition
feat: update image to
us-central1-docker.pkg.dev/cloud-sdk-librarian-prod/images-prod/python-librarian-generator@sha256:b8058df4c45e9a6e07f6b4d65b458d0d059241dd34c814f151c8bf6b89211209
PR created by the Librarian CLI to initialize a release. Merging this PR
will auto trigger a release.

Librarian Version: v0.7.0
Language Image:
us-central1-docker.pkg.dev/cloud-sdk-librarian-prod/images-prod/python-librarian-generator@sha256:b8058df4c45e9a6e07f6b4d65b458d0d059241dd34c814f151c8bf6b89211209
<details><summary>google-cloud-bigtable: 2.35.0</summary>

##
[2.35.0](googleapis/python-bigtable@v2.34.0...v2.35.0)
(2025-12-16)

### Features

* add basic interceptor to client (#1206)
([6561cfac](googleapis/python-bigtable@6561cfac))

* Add encodings for STRUCT and the Timestamp type
([72dfdc44](googleapis/python-bigtable@72dfdc44))

* add PeerInfo proto in Bigtable API
([72dfdc44](googleapis/python-bigtable@72dfdc44))

* Add Type API updates needed to support structured keys in materialized
views
([72dfdc44](googleapis/python-bigtable@72dfdc44))

* support mTLS certificates when available (#1249)
([ca20219c](googleapis/python-bigtable@ca20219c))

### Bug Fixes

* re-export AddToCell for consistency (#1241)
([2a5baf11](googleapis/python-bigtable@2a5baf11))

* async client uses fixed grace period (#1236)
([544db1cd](googleapis/python-bigtable@544db1cd))

* Deprecate credentials_file argument
([72dfdc44](googleapis/python-bigtable@72dfdc44))

* Add ReadRows/SampleRowKeys bindings for materialized views
([72dfdc44](googleapis/python-bigtable@72dfdc44))

* retry cancelled errors (#1235)
([e3fd5d86](googleapis/python-bigtable@e3fd5d86))

</details>
This PR revives googleapis/python-bigtable#923,
which was de-priotirized to work on the sync client. This PR brings it
back, working with both async and sync. It also adds a grpc interceptor,
as an improved way to capture metadata across both clients

---

## Design

The main architecture looks like this:

<img width="651" height="631"
alt="300137129-bebbb05a-20f0-45c2-9d38-e95a314edf64 drawio (1)"
src="https://github.com/user-attachments/assets/c8318ac8-5f18-4027-9f64-4a40a8ab1d79"
/>


Most of the work is done by the ActiveOperationMetric class, which is
instantiated with each rpc call, and updated through the lifecycle of
the call. When the rpc is complete, it will call `on_operation_complete`
and `on_attempt_complete` on the MetricsHandler, which can then log the
completed data into OpenTelemetry (or theoretically, other locations if
needed)

Note that there are separate classes for active vs completed metrics
(`ActiveOperationMetric`, `ActiveAttemptMetric`,
`CompletedOperationMetric`, `CompletedAttemptMetric`). This is so that
we can keep fields mutable and optional while the request is ongoing,
but pass down static immutable copies once the attempt is completed and
no new data is coming

---------

Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
Co-authored-by: Mattie Fu <mattiefu@google.com>
Fixes #15311

---------

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Automated: Migrate {target_path} from gsutil to gcloud storage

This CL is part of the on going effort to migrate from the legacy
`gsutil` tool to the new and improved `gcloud storage` command-line
interface.
`gcloud storage` is the recommended and modern tool for interacting with
Google Cloud Storage, offering better performance, unified
authentication, and a more consistent command structure with other
`gcloud` components. 🚀

### Automation Details

This change was **generated automatically** by an agent that targets
users of `gsutil`.
The transformations applied are based on the [gsutil to gcloud storage
migration guide](http://go/gsutil-gcloud-storage-migration-guide).

### ⚠️ Action Required: Please Review and Test Carefully

While we have based the automation on the migration guide, every use
case is unique.
**It is crucial that you thoroughly test these changes in environments
appropriate to your use-case before merging.**
Be aware of potential differences between `gsutil` and `gcloud storage`
that could impact your workflows.
For instance, the structure of command output may have changed,
requiring updates to any scripts that parse it. Similarly, command
behavior can differ subtly; the `gcloud storage rsync` command has a
different file deletion logic than `gsutil rsync`, which could lead to
unintended file deletions.

Our migration guides can help guide you through a list of mappings and
some notable differences between the two tools.

Standard presubmit tests are run as part of this CL's workflow. **If you
need to target an additional test workflow or require assistance with
testing, please let us know.**

Please verify that all your Cloud Storage operations continue to work as
expected to avoid any potential disruptions in production.

### Support and Collaboration

The `GCS CLI` team is here to help! If you encounter any issues, have a
complex use case that this automated change doesn't cover, or face any
other blockers, please don't hesitate to reach out.
We are happy to work with you to test and adjust these changes as
needed.

**Contact:** `gcs-cli-hyd@google.com`

We appreciate your partnership in this important migration effort!

#gsutil-migration
3.9 has been removed from the kokoro base image, so we should remove the
tests from our configs

3.9 is still tested in GitHub Actions
Replaces googleapis/python-bigtable#1231
Fixes b/452032333

Adds a sample for the new AddToCell incrementation mutation

---------

Co-authored-by: Kasia Strzałkowska <strzalkowska@google.com>
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [apache-beam](https://beam.apache.org) | `==2.69.0` → `==2.71.0` |
![age](https://developer.mend.io/api/mc/badges/age/pypi/apache-beam/2.71.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/apache-beam/2.69.0/2.71.0?slim=true)
|
|
[google-cloud-bigtable](https://redirect.github.com/googleapis/python-bigtable)
| `==2.34.0` → `==2.35.0` |
![age](https://developer.mend.io/api/mc/badges/age/pypi/google-cloud-bigtable/2.35.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/google-cloud-bigtable/2.34.0/2.35.0?slim=true)
|
|
[google-cloud-monitoring](https://redirect.github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-monitoring)
([source](https://redirect.github.com/googleapis/google-cloud-python)) |
`==2.28.0` → `==2.29.0` |
![age](https://developer.mend.io/api/mc/badges/age/pypi/google-cloud-monitoring/2.29.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/google-cloud-monitoring/2.28.0/2.29.0?slim=true)
|

---

### Release Notes

<details>
<summary>googleapis/python-bigtable (google-cloud-bigtable)</summary>

###
[`v2.35.0`](https://redirect.github.com/googleapis/python-bigtable/blob/HEAD/CHANGELOG.md#2350-2025-12-16)

[Compare
Source](https://redirect.github.com/googleapis/python-bigtable/compare/v2.34.0...v2.35.0)

##### Features

- support mTLS certificates when available
([#&#8203;1249](https://redirect.github.com/googleapis/python-bigtable/issues/1249))
([ca20219cf45305de25dfb715f69dd63bce9981b7](https://redirect.github.com/googleapis/python-bigtable/commit/ca20219cf45305de25dfb715f69dd63bce9981b7))
- add basic interceptor to client
([#&#8203;1206](https://redirect.github.com/googleapis/python-bigtable/issues/1206))
([6561cfac605ba7c5b3f750c3bdca9108e517ba77](https://redirect.github.com/googleapis/python-bigtable/commit/6561cfac605ba7c5b3f750c3bdca9108e517ba77))
- add PeerInfo proto in Bigtable API
([72dfdc440c22db0f4c372e6f11a9f7dc83fed350](https://redirect.github.com/googleapis/python-bigtable/commit/72dfdc440c22db0f4c372e6f11a9f7dc83fed350))
- Add Type API updates needed to support structured keys in materialized
views
([72dfdc440c22db0f4c372e6f11a9f7dc83fed350](https://redirect.github.com/googleapis/python-bigtable/commit/72dfdc440c22db0f4c372e6f11a9f7dc83fed350))
- Add encodings for STRUCT and the Timestamp type
([72dfdc440c22db0f4c372e6f11a9f7dc83fed350](https://redirect.github.com/googleapis/python-bigtable/commit/72dfdc440c22db0f4c372e6f11a9f7dc83fed350))

##### Bug Fixes

- async client uses fixed grace period
([#&#8203;1236](https://redirect.github.com/googleapis/python-bigtable/issues/1236))
([544db1cd7af876298b8637f495b6c7b2a0bcf16c](https://redirect.github.com/googleapis/python-bigtable/commit/544db1cd7af876298b8637f495b6c7b2a0bcf16c))
- re-export AddToCell for consistency
([#&#8203;1241](https://redirect.github.com/googleapis/python-bigtable/issues/1241))
([2a5baf11d30dc383a7b48d5f43b6cbb6160782e3](https://redirect.github.com/googleapis/python-bigtable/commit/2a5baf11d30dc383a7b48d5f43b6cbb6160782e3))
- retry cancelled errors
([#&#8203;1235](https://redirect.github.com/googleapis/python-bigtable/issues/1235))
([e3fd5d8668303db4ed35e9bf6be48b46954f9d67](https://redirect.github.com/googleapis/python-bigtable/commit/e3fd5d8668303db4ed35e9bf6be48b46954f9d67))
- Add ReadRows/SampleRowKeys bindings for materialized views
([72dfdc440c22db0f4c372e6f11a9f7dc83fed350](https://redirect.github.com/googleapis/python-bigtable/commit/72dfdc440c22db0f4c372e6f11a9f7dc83fed350))
- Deprecate credentials\_file argument
([72dfdc440c22db0f4c372e6f11a9f7dc83fed350](https://redirect.github.com/googleapis/python-bigtable/commit/72dfdc440c22db0f4c372e6f11a9f7dc83fed350))

</details>

<details>
<summary>googleapis/google-cloud-python
(google-cloud-monitoring)</summary>

###
[`v2.29.0`](https://redirect.github.com/googleapis/google-cloud-python/compare/google-cloud-speech-v2.28.1...google-cloud-speech-v2.29.0)

[Compare
Source](https://redirect.github.com/googleapis/google-cloud-python/compare/google-cloud-monitoring-v2.28.0...google-cloud-monitoring-v2.29.0)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/googleapis/python-bigtable).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi41NC4yIiwidXBkYXRlZEluVmVyIjoiNDIuODUuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

---------

Co-authored-by: Anthonios Partheniou <partheniou@google.com>
Some samples currently use `datetime.datetime.utcnow()`, which raises a
deprecation warning. Update samples to use datetime.datetime.now instead

Fixes b/457135528
PR created by the Librarian CLI to generate Cloud Client Libraries code
from protos.

BEGIN_COMMIT

BEGIN_NESTED_COMMIT
feat: add TieredStorageConfig to table admin api


PiperOrigin-RevId: 863493708
Library-IDs: google-cloud-bigtable
Source-link:
[googleapis/googleapis@a6cbf809](googleapis/googleapis@a6cbf809)
END_NESTED_COMMIT

END_COMMIT

This pull request is generated with proto changes between

[googleapis/googleapis@a17b84ad](googleapis/googleapis@a17b84a)
(exclusive) and

[googleapis/googleapis@a6cbf809](googleapis/googleapis@a6cbf80)
(inclusive).

Librarian Version: v0.7.0
Language Image:
us-central1-docker.pkg.dev/cloud-sdk-librarian-prod/images-prod/python-librarian-generator@sha256:b8058df4c45e9a6e07f6b4d65b458d0d059241dd34c814f151c8bf6b89211209
… into migration.python-bigtable.migration.2026-03-02_16-59-45.migrate
@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 focuses on migrating the Bigtable code from the googleapis/python-bigtable repository to the packages/google-cloud-bigtable directory. It also introduces CrossSync, a mechanism for sharing logic between async and sync code, along with associated tooling and configurations. The PR aims to maintain git history and improve code maintainability.

Highlights

  • Code Migration: Migrated code from the googleapis/python-bigtable repository into the packages/google-cloud-bigtable directory, as per issue Adopt split repo: _python-bigtable_ #10992.
  • Cross-Sync Implementation: Introduced CrossSync to facilitate sharing logic between asynchronous and synchronous code, including shims, annotations, and code generation.
  • File Additions: Added several new files to support CrossSync, code generation, and configuration, including .coveragerc, .cross_sync/README.md, .cross_sync/generate.py, .cross_sync/transformers.py, .flake8, .gitignore, .gitmodules, and .librarian/generator-input/.repo-metadata.json.
  • Merge Strategy: Specified that this PR should be merged with a merge-commit, not a squash-commit, to preserve the git history.
Activity
  • Initial implementation of code migration and CrossSync setup.
  • Addition of necessary configuration and support files.
  • Specification of merge strategy to preserve git history.
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.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

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 migrates a large number of files for the google-cloud-bigtable package. The changes primarily consist of adding new files, including source code, documentation, and configuration. My review focuses on ensuring the correctness, maintainability, and security of the newly added code. I've identified a few areas for improvement, such as unsafe command-line argument handling, potential security risks with eval, and opportunities to improve code clarity and robustness.

Note: Security Review is unavailable for this PR.

I am having trouble creating individual review comments. Click here to see my feedback.

packages/google-cloud-bigtable/.cross_sync/generate.py (104)

high

Accessing sys.argv[1] directly is unsafe and will raise an IndexError if the script is run without command-line arguments. It's better to validate the number of arguments first and provide a helpful usage message if an argument is missing.

    if len(sys.argv) < 2:
        raise SystemExit(f"Usage: {sys.argv[0]} <path>")
    search_root = sys.argv[1]

packages/google-cloud-bigtable/.cross_sync/README.md (40)

medium

There appears to be a typo in the method name. It should likely be CrossSync.event_wait() instead of CrossSync,event_wait().

- `CrossSync.event_wait()`

packages/google-cloud-bigtable/.cross_sync/generate.py (26)

medium

For better code clarity and maintainability, please add a type hint for the file_path parameter. Based on its usage, str would be appropriate.

def extract_header_comments(file_path: str) -> str:

packages/google-cloud-bigtable/.cross_sync/generate.py (32)

medium

It is a best practice to explicitly specify the file encoding when using open(). This prevents potential issues on different platforms where the default encoding might vary. Please consider adding encoding="utf-8".

    with open(file_path, "r", encoding="utf-8") as f:

packages/google-cloud-bigtable/.cross_sync/generate.py (85)

medium

It is a best practice to explicitly specify the file encoding when using open(). This prevents potential issues on different platforms where the default encoding might vary. Please consider adding encoding="utf-8".

        ast_tree = ast.parse(open(file_path, encoding="utf-8").read())

packages/google-cloud-bigtable/.cross_sync/transformers.py (34)

medium

Modifying sys.path at runtime is generally discouraged as it can make the code harder to understand and maintain, and may lead to module import conflicts. Consider using relative imports or restructuring the project to avoid this.

packages/google-cloud-bigtable/.cross_sync/transformers.py (245)

medium

Comparing a boolean value with == True is not idiomatic in Python. It's clearer and more conventional to use the value directly in a boolean context, or use is True for a strict identity check.

            return self._is_async_check(node.left) and (isinstance(node.ops[0], ast.Eq) or isinstance(node.ops[0], ast.Is)) and len(node.comparators) == 1 and isinstance(node.comparators[0], ast.Constant) and node.comparators[0].value is True

packages/google-cloud-bigtable/.kokoro/conformance.sh (38)

medium

The use of eval with a variable can be a security risk if the content of $TEST_ARGS is not strictly controlled, as it could allow for arbitrary command execution. While this might be safe in a controlled CI environment, it's a good practice to avoid eval whenever possible. Consider alternative ways to pass arguments that do not require evaluation.

packages/google-cloud-bigtable/.kokoro/populate-secrets.sh (28)

medium

The for key in $(...) construct is not robust against values in ${SECRET_MANAGER_KEYS} that contain whitespace or other special shell characters. This could lead to unexpected behavior or errors. A more robust approach for iterating over comma-separated values should be used, for example, by using read with a while loop or by setting IFS.

@parthea parthea self-assigned this Mar 2, 2026
@parthea parthea added the do not merge Indicates a pull request not ready for merge, due to either quality or timing. label Mar 2, 2026
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.