Skip to content

Commit 0e64f57

Browse files
committed
Merge remote-tracking branch 'origin/main' into prepare-for-v3.0.0
2 parents 97988e0 + 46f7e8b commit 0e64f57

File tree

189 files changed

+7545
-1051
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

189 files changed

+7545
-1051
lines changed

CHANGELOG.md

Lines changed: 53 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,59 @@
44
breaking changes in the upcoming 3.x release. This release is scheduled for
55
2024-12 or 2025-01.
66

7-
## v2.44.0 - TBD
7+
## v2.46.0 - TBD
8+
9+
## v2.45.0 - 2025-12-17
10+
11+
### New Libraries
12+
13+
We are happy to announce the following GA libraries. Unless specifically noted,
14+
the APIs in these libraries are stable, and are ready for production use.
15+
16+
- [Cloud Maintenance API](/google/cloud/maintenance/README.md)
17+
18+
### [Pubsub](google/cloud/pubsub/README.md)
19+
20+
- fix(pubsub): impersonate sa credentials CompletionQueue lifetime ([#15833](https://github.com/googleapis/google-cloud-cpp/pull/15833))
21+
22+
### [Storage](google/cloud/storage/README.md)
23+
24+
- fix(storage): append object spec should only be set in the first request ([#15831](https://github.com/googleapis/google-cloud-cpp/pull/15831))
25+
26+
### [Google APIs interface definitions](https://github.com/googleapis/googleapis)
27+
28+
- This release is based on definitions as of [2025-12-11T12:53:16-08:00](https://github.com/googleapis/googleapis/tree/05f65958eb7f2a8bc59db87ad40487f0fb093097)
29+
30+
## v2.44.0 - 2025-12
31+
32+
### [BigQueryControl](google/cloud/bigquerycontrol/README.md)
33+
- !fix(bigquerycontrol): PatchRoutine RPC has been removed.
34+
35+
### [Bigtable](/google/cloud/bigtable/README.md)
36+
37+
- Support for ([GoogleSQL](https://docs.cloud.google.com/bigtable/docs/googlesql-overview)) has been added to the Bigtable library. Please see the new ([bigtable::Client](https://docs.cloud.google.com/cpp/docs/reference/bigtable/latest/classgoogle_1_1cloud_1_1bigtable_1_1Client)) class for more details.
38+
39+
### [Spanner](/google/cloud/spanner/README.md)
40+
41+
- fix(spanner): Do not compare iterators from different containers ([#15665](https://github.com/googleapis/google-cloud-cpp/pull/15665))
42+
43+
### [Storage](/google/cloud/storage/README.md)
44+
45+
- fix(storage): always use latest write handle for fast resume in gRPC BidiWriteObject ([#15795](https://github.com/googleapis/google-cloud-cpp/pull/15795))
46+
- feat(storage): add support for partial list bucket ([#15763](https://github.com/googleapis/google-cloud-cpp/pull/15763))
47+
- fix(storage): Add start appendable condition for bypassing full object checksum ([#15786](https://github.com/googleapis/google-cloud-cpp/pull/15786))
48+
- feat(storage): add GrpcMetricsExcludedLabelsOption for gRPC metrics label filtering ([#15735](https://github.com/googleapis/google-cloud-cpp/pull/15735))
49+
- fix(storage): enable fast resume for rapid object write streams by including write handle ([#15762](https://github.com/googleapis/google-cloud-cpp/pull/15762))
50+
- feat(storage): add configurable metrics export timeout for GCS gRPC Client ([#15629](https://github.com/googleapis/google-cloud-cpp/pull/15629))
51+
52+
### [Common Libraries](/google/cloud/README.md)
53+
54+
- feat(credentials): add support for creating ComputeEngine credentials explicitly ([#15789](https://github.com/googleapis/google-cloud-cpp/pull/15789))
55+
- feat: Support scopes field in impersonated json ([#15675](https://github.com/googleapis/google-cloud-cpp/pull/15675))
56+
57+
### [Google APIs interface definitions](https://github.com/googleapis/googleapis)
58+
59+
- This release is based on definitions as of [2025-11-27T07:02:42Z](https://github.com/googleapis/googleapis/tree/8cd3749f4b98f2eeeef511c16431979aeb3a6502)
860

961
## v2.43.0 - 2025-10
1062

MODULE.bazel

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,6 @@ python.toolchain(
5858
)
5959

6060
bazel_dep(name = "grpc", version = "1.76.0.bcr.1")
61-
bazel_dep(name = "googleapis", version = "0.0.0-20251111-659ea6e9")
61+
bazel_dep(name = "googleapis", version = "0.0.0-20251211-05f65958")
6262
bazel_dep(name = "googleapis-cc", version = "1.0.0")
6363
bazel_dep(name = "googleapis-grpc-cc", version = "1.0.0")

README.md

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ of what it's like to use one of these C++ libraries.
2828

2929
```cc
3030
#include "google/cloud/storage/client.h"
31+
#include "google/cloud/common_options.h"
32+
#include <cstdlib>
3133
#include <iostream>
3234
#include <string>
3335

@@ -41,7 +43,17 @@ int main(int argc, char* argv[]) {
4143

4244
// Create a client to communicate with Google Cloud Storage. This client
4345
// uses the default configuration for authentication and project id.
44-
auto client = google::cloud::storage::Client();
46+
auto options = google::cloud::Options{};
47+
48+
// If the CURL_CA_BUNDLE environment variable is set, configure the client
49+
// to use it. This is required for the Windows CI environment where standard
50+
// system roots may not be sufficient or accessible by the hermetic build.
51+
auto const* ca_bundle = std::getenv("CURL_CA_BUNDLE");
52+
if (ca_bundle != nullptr) {
53+
options.set<google::cloud::CARootsFilePathOption>(ca_bundle);
54+
}
55+
56+
auto client = google::cloud::storage::Client(options);
4557

4658
auto writer = client.WriteObject(bucket_name, "quickstart.txt");
4759
writer << "Hello World!";
@@ -314,6 +326,9 @@ See each library's `README.md` file for more information about:
314326
- [Google Cloud Managed Lustre API](google/cloud/lustre/README.md)
315327
[[quickstart]](google/cloud/lustre/quickstart/README.md)
316328
[[reference]](https://cloud.google.com/cpp/docs/reference/lustre/latest)
329+
- [Maintenance API](google/cloud/maintenance/README.md)
330+
[[quickstart]](google/cloud/maintenance/quickstart/README.md)
331+
[[reference]](https://cloud.google.com/cpp/docs/reference/maintenance/latest)
317332
- [Managed Service for Microsoft Active Directory API](google/cloud/managedidentities/README.md)
318333
[[quickstart]](google/cloud/managedidentities/quickstart/README.md)
319334
[[reference]](https://cloud.google.com/cpp/docs/reference/managedidentities/latest)

bazel/workspace0.bzl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -136,10 +136,10 @@ def gl_cpp_workspace0(name = None):
136136
http_archive,
137137
name = "googleapis",
138138
urls = [
139-
"https://github.com/googleapis/googleapis/archive/659ea6e98acc7d58661ce2aa7b4cf76a7ef3fd42.tar.gz",
139+
"https://github.com/googleapis/googleapis/archive/05f65958eb7f2a8bc59db87ad40487f0fb093097.tar.gz",
140140
],
141-
sha256 = "d7d274d9147e52f63972a2064c60cf2e63066b655a246f7e0d02745e49fc1d3b",
142-
strip_prefix = "googleapis-659ea6e98acc7d58661ce2aa7b4cf76a7ef3fd42",
141+
sha256 = "a7c3d7cdbd54e43ddc7c44f3571a71e004cba519c205da2e8b937480d608ae86",
142+
strip_prefix = "googleapis-05f65958eb7f2a8bc59db87ad40487f0fb093097",
143143
build_file = Label("//bazel:googleapis.BUILD"),
144144
# Scaffolding for patching googleapis after download. For example:
145145
patches = [
431 KB
Binary file not shown.

ci/cloudbuild/builds/lib/integration.sh

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ source module ci/lib/io.sh
3131
export PATH="${HOME}/.local/bin:${PATH}"
3232
python3 -m pip uninstall -y --quiet googleapis-storage-testbench
3333
python3 -m pip install --upgrade --user --quiet --disable-pip-version-check \
34-
"git+https://github.com/googleapis/storage-testbench@v0.52.0"
34+
"git+https://github.com/googleapis/storage-testbench@v0.59.0"
3535

3636
# Some of the tests will need a valid roots.pem file.
3737
rm -f /dev/shm/roots.pem
@@ -84,6 +84,9 @@ function integration::bazel_args() {
8484
"--test_env=GOOGLE_CLOUD_CPP_BIGTABLE_TEST_SERVICE_ACCOUNT=${GOOGLE_CLOUD_CPP_BIGTABLE_TEST_SERVICE_ACCOUNT}"
8585
"--test_env=ENABLE_BIGTABLE_ADMIN_INTEGRATION_TESTS=${ENABLE_BIGTABLE_ADMIN_INTEGRATION_TESTS:-no}"
8686

87+
# Pubsub
88+
"--test_env=GOOGLE_CLOUD_CPP_PUBSUB_TEST_IMPERSONATED_SERVICE_ACCOUNT=${GOOGLE_CLOUD_CPP_PUBSUB_TEST_IMPERSONATED_SERVICE_ACCOUNT}"
89+
8790
# Rest
8891
"--test_env=GOOGLE_CLOUD_CPP_REST_TEST_SIGNING_SERVICE_ACCOUNT=${GOOGLE_CLOUD_CPP_REST_TEST_SIGNING_SERVICE_ACCOUNT}"
8992

ci/cloudbuild/cloudbuild.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,7 @@ steps:
119119

120120
# Runs the specified build in the image that was created in the first step.
121121
- name: '${_POOL_REGION}-docker.pkg.dev/${PROJECT_ID}/gcb/${_IMAGE}:${BUILD_ID}'
122+
id: 'build.sh'
122123
entrypoint: 'ci/cloudbuild/build.sh'
123124
args: [ '--local', '--build', '${_BUILD_NAME}' ]
124125
secretEnv: ['CODECOV_TOKEN', 'UD', 'UD_PROJECT', 'UD_REGION', 'UD_ZONE', 'UD_SERVICE_ACCOUNT', 'UD_SERVICE_ACCOUNT_NAME', 'UD_IMPERSONATED_SERVICE_ACCOUNT_NAME', 'UD_IDTOKEN_SA_IMPERSONATION_CRED', 'UD_FETCH_OIDC_TOKEN', 'UD_EXTERNAL_ACCOUNT_CRED']
@@ -136,6 +137,7 @@ steps:
136137

137138
# Remove the image created by this build.
138139
- name: 'gcr.io/google.com/cloudsdktool/cloud-sdk'
140+
id: 'remove-image'
139141
allowFailure: true
140142
entrypoint: 'bash'
141143
args:
@@ -147,6 +149,7 @@ steps:
147149
# Cancels in-progress builds for previous commits in the current PR so we can
148150
# free up resources to start running the builds for the new commit.
149151
- name: 'gcr.io/google.com/cloudsdktool/cloud-sdk'
152+
id: 'cancel-in-progress-builds-for-PR'
150153
allowFailure: true
151154
waitFor: [ '-' ]
152155
entrypoint: 'bash'

ci/cloudbuild/dockerfiles/demo-rockylinux-9.Dockerfile

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,16 @@ RUN dnf makecache && \
2626
dnf install -y epel-release && \
2727
dnf makecache && \
2828
dnf install -y cmake findutils gcc-c++ git make openssl-devel \
29-
patch zlib-devel libcurl-devel c-ares-devel tar wget which
29+
patch zlib-devel libcurl-devel c-ares-devel tar wget which \
30+
autoconf automake libtool binutils
31+
# ```
32+
33+
# Set some useful environment variables.
34+
35+
# ```bash
36+
ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
37+
ENV CC=/usr/bin/gcc
38+
ENV CXX=/usr/bin/g++
3039
# ```
3140

3241
# Rocky Linux's version of `pkg-config` (https://github.com/pkgconf/pkgconf) is

ci/etc/expected_install_directories

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -881,6 +881,11 @@
881881
./include/google/cloud/lustre/v1
882882
./include/google/cloud/lustre/v1/internal
883883
./include/google/cloud/lustre/v1/mocks
884+
./include/google/cloud/maintenance
885+
./include/google/cloud/maintenance/api
886+
./include/google/cloud/maintenance/api/v1
887+
./include/google/cloud/maintenance/api/v1/internal
888+
./include/google/cloud/maintenance/api/v1/mocks
884889
./include/google/cloud/managedidentities
885890
./include/google/cloud/managedidentities/mocks
886891
./include/google/cloud/managedidentities/v1
@@ -1491,6 +1496,8 @@
14911496
./lib64/cmake/google_cloud_cpp_logging_mocks
14921497
./lib64/cmake/google_cloud_cpp_lustre
14931498
./lib64/cmake/google_cloud_cpp_lustre_mocks
1499+
./lib64/cmake/google_cloud_cpp_maintenance
1500+
./lib64/cmake/google_cloud_cpp_maintenance_mocks
14941501
./lib64/cmake/google_cloud_cpp_managedidentities
14951502
./lib64/cmake/google_cloud_cpp_managedidentities_mocks
14961503
./lib64/cmake/google_cloud_cpp_managedkafka

ci/etc/integration-tests-config.ps1

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ $env:GOOGLE_CLOUD_CPP_SPANNER_TEST_QUICKSTART_DATABASE="quickstart-db"
8585

8686
# Cloud Pub/Sub configuration parameters
8787
$env:GOOGLE_CLOUD_CPP_PUBSUB_TEST_QUICKSTART_TOPIC="quickstart"
88+
$env:GOOGLE_CLOUD_CPP_PUBSUB_TEST_IMPERSONATED_SERVICE_ACCOUNT="pubsub-impersonate-test-sa@${env:GOOGLE_CLOUD_PROJECT}.iam.gserviceaccount.com"
8889

8990
# Cloud Batch configuration parameters
9091
$env:GOOGLE_CLOUD_CPP_BATCH_TEST_TEMPLATE_NAME="cloud-batch-sample-template"

0 commit comments

Comments
 (0)