Releases: googleapis/google-cloud-cpp
v2.31.0
New Libraries
We are happy to announce the following GA libraries. Unless specifically noted,
the APIs in these libraries are stable, and are ready for production use.
Pub/Sub
- docs(pubsub): Fix region tags for Pub/Sub ingestion from GCS samples (#14773)
Storage
- docs(storage): better suggestion for deprecated API (#14786)
Common Libraries
- feat(oauth2): add support for external account workforce identity (#14800)
- feat: API key authentication (#14779)
- feat(mixin): generate mixins for libraries (#14766)
Google APIs interface definitions
- This release is based on definitions as of 2024-10-31T11:22:40-07:00
v2.30.0
Updated Libraries
- AI Platform API - new
EvaluationServiceClient
- Dialogflow ES API - new
EncryptionSpecServiceClient
andGeneratorsClient
AI Platform API
- doc(aiplatform): add Vertex AI samples (#14703)
KMS
AutokeyClient::ListKeyHandles(...)
signature has changed to return an
iterable type. Our telemetry indicates that there are no C++ applications
using this API, and therefore we do not consider this a breaking change.
(#14726)
OpenTelemetry
- feat(otel): release GCM exporter (#14693)
Pub/Sub
- feat(mixin): add manual changes for pubsub and generate mixin code (#14756)
- docs(pubsub): Add ingestion from GCS topic creation sample (#14749)
Spanner
- docs(spanner): Add samples for backup schedule feature APIs (#14720)
- docs(spanner): create a few code snippets as examples for using Spanner Graph using cpp (#14660)
Storage
- The gRPC plugin is now GA. The Using the gRPC plugin
guide describes this feature in more detail. When using GCS from Google
Compute Engine (GCE) this plugin can enable higher total throughput. - feat(storage): Add ability to restore soft deleted objects (#14710)
Common Libraries
- fix(rest): promote buffer curl reads from to member variable (#14732)
- fix: respect
GOOGLE_CLOUD_QUOTA_PROJECT
(#14684)
Google APIs interface definitions
- This release is based on definitions as of 2024-09-24T10:34:24-07:00
v2.29.0
New Libraries
We are happy to announce the following GA libraries. Unless specifically noted,
the APIs in these libraries are stable, and are ready for production use.
Bigtable
- fix(bigtable): sanitize RowRange proto input (#14651)
Compute
- feat(compute): add missing services instant_snapshots and region_instant_snapshots (#14647)
Spanner
- feat(spanner): support instance edition (#14678)
Common Libraries
- fix: do not persist the keys loaded from PKCS#12 on Windows (#14645)
- fix: no need to link gmock_main in mocks (#14640)
- fix: quickstarts build with bazel (#14633)
Google APIs interface definitions
- This release is based on definitions as of 2024-08-30T10:45:43-07:00
v2.28.0
OpenTelemetry
- fix(otel): avoid infinite trace export loop (#14612)
Storage
- fix(rest): prevent libcurl callback from reading bad address (#14615)
Common Libraries
- docs: update mock LRO tips (#14609)
v2.25.1
v2.27.0
-
We now link our mocking libraries against GoogleTest in CMake.
The mocking libraries require GoogleTest. Not linking GoogleTest was a bug.
This bug surfaced in versions of CMake >= 3.30.Note that the mocking libraries are built by default. If you want to opt-out
of building or installing the mocking libraries, you can supply
-DGOOGLE_CLOUD_CPP_WITH_MOCKS=OFF
to your CMake configure command.If your build fails because GoogleTest is not found, supply
-DGOOGLE_CLOUD_CPP_WITH_MOCKS=OFF
as mentioned above. -
We have stopped testing on CentOS 7, Debian 10 (Buster), and RockyLinux 8 as
these distros are EOL or in some form of "security only" support period.
Note that we used CentOS 7 as a proxy for testing RedHat Enterprise Linux 7.
BREAKING TESTING CHANGES
If you don't mock Long Running Operations (LRO) in your tests, then these
changes will not affect you.
With the promotion from Experimental to GA of the new methods to support
starting Long Running Operations (LRO) synchronously and awaiting their
completion separately, the use of ExperimentalTag
is no longer required. The
overload set for LRO methods has changed and may require matchers to
disambiguate invocations of EXPECT_CALL
(https://google.github.io/googletest/gmock_cook_book.html#SelectOverload).
New Libraries
We are happy to announce the following GA libraries. Unless specifically noted,
the APIs in these libraries are stable, and are ready for production use.
The following experimental libraries are now available:
- Cloud BigQuery Control API -
This library provides support for the Dataset, Job, Model, Project, Routine,
RowAccessPolicy, and Table REST resources.
OpenTelemetry
- fix(otel): avoid crashes in tracing wrappers for streams (#14477)
Bazel
The --io_opentelemetry_cpp//api:with_abseil
flag was marked as deprecated in
OpenTelemetry v1.16.0. It may be removed in future versions.
In previous versions of opentelemetry-cpp
, this flag was required for
compatibility with Abseil. It is no longer necessary, as opentelemetry-cpp
is
compiled with Abseil by default.
We have stopped using the flag to validate Bazel build configurations with
OpenTelemetry tracing enabled.
If you are building google-cloud-cpp
with opentelemetry-cpp
< v1.16.0, you
will need to supply the flag for compatibility with Abseil. The following can be
added to your .bazelrc
file.
build --@io_opentelemetry_cpp//api:with_abseil
Spanner
- feat(spanner): add samples for instance partitions (#14574)
Storage
- fix(storage): reset backoff after partial write (#14473)
- feat(storage): single span for
ReadObject()
(#14435) - fix(storage): only backoff before resume attempts (#14427)
Common Libraries
- Promoted to GA, functions to start a LRO (longrunning operation) in one
function call, and then await the LRO to complete on a separate function. - feat(generator): include request in async streaming RPC logs (#14565)
- fix(common): censor Bearer tokens over HTTP/2 (#14564)
- fix(common):
json_fwd.h
is not always available (#14439) - fix: workaround missing SHA256 macros in MinGW-w64 (#14437)
v2.26.0
BREAKING TESTING CHANGES
If you don't mock Long Running Operations (LRO) in your tests, then these
changes will not affect you.
With the addition of new methods to support starting Long Running Operations
(LRO) synchronously and awaiting their completion separately, the overload set
for the preexisting LRO methods have been expanded. Uses of EXPECT_CALL
that
do not have matchers for the arguments will be ambiguous. To quickly remedy this
change instances of EXPECT_CALL(*mock, Method)
to
EXPECT_CALL(*mock, Method(::testing::_))
.
New Libraries
We are happy to announce the following GA libraries. Unless specifically noted,
the APIs in these libraries are stable, and are ready for production use.
Updated Libraries
- Discovery Engine:
ControlServiceClient
addedGroundedGenerationServiceClient
addedProjectServiceClient
addedRankServiceClient
added
Bigtable
- docs(bigtable): include admin options (#14358)
Pub/Sub
- docs(pubsub): include admin options (#14359)
Spanner
- docs(spanner): include admin options (#14360)
Storage
- feat(storage): support object retention (#14351)
- feat(storage): buckets with object retention (#14350)
StorageControl
- samples(storagecontrol): add storagecontrol managed folder samples (#14356)
- samples(storagecontrol): add storagecontrol folder samples (#14332)
Common Libraries
- New (experimental) functions to start a LRO (longrunning operation) in one
function call, and then awaiting for the LRO to complete on a separate
function. - fix(otel): async read stream tracing (#14393)
- fix(otel): async write stream tracing (#14394)
- feat(otel): capture error message in traces (again) (#14389)
- doc: document Start and Await methods and mocks (#14375)
- fix(otel): async read write stream tracing (#14379)
Google APIs interface definitions
- This release is based on definitions as of 2024-06-24T13:34:42-07:00
v2.25.0
New Libraries
We are happy to announce the following GA libraries. Unless specifically noted,
the APIs in these libraries are stable, and are ready for production use.
Updated Libraries
- KMS - new
AutokeyClient
andAutokeyAdminClient
Pub/Sub
- docs(pubsub): add optimistic subscribe example (#14272)
Spanner
- feat(spanner): add Interval justification (#14123)
- fix(spanner): correct use of Interval offset in Timestamp addition (#14121)
- feat(spanner): add Interval/Timestamp/time-zone operations (#14120)
Security Center
- feat(securitycenter): re-enable on windows (#14282)
Storage
- feat(storage): Respect custom endpoint for SignedUrl (#14179)
Common Libraries
- fix(bazel): do not reference repo name (#14287)
- fix(common): support libc++ >= 18.1 (#14151)
- fix(common): out of range access in handle cleanup (#14134)
Google APIs interface definitions
- This release is based on definitions as of 2024-05-22T18:51:58-07:00
v2.24.0
No longer testing with MSVC 2019
We have stopped testing with MSVC 2019. Microsoft stopped mainstream support for MSVC 2019 in 2024-04. We continue to test with MSVC 2022. We recommend that you update to this version. Note that, in accordance with Google's Foundational C++ support policy, other Google libraries have stopped (or shortly will stop) testing with MSVC 2019 too.
Updated Libraries
- AI Platform API - new
FeatureRegistryServiceClient
andGenAiTuningServiceClient
- Cloud Dataplex API - new
DataScanServiceClient
andDataTaxonomyServiceClient
- Cloud SQL Admin API - several new clients:
SqlAvailableDatabaseVersionsServiceClient
SqlEventsServiceClient
SqlIamPoliciesServiceClient
SqlInstanceNamesServiceClient
SqlRegionsServiceClient
- Content Warehouse - new
PipelineServiceClient
- Dataproc - new
SessionControllerClient
andSessionTemplateControllerClient
- Dialogflow CX API - new
GeneratorsClient
- Discovery Engine - several new clients:
DataStoreServiceClient
EngineServiceClient
RecommendationServiceClient
SiteSearchEngineServiceClient
- Network Connectivity API - new
PolicyBasedRoutingServiceClient
- Retail - new
AnalyticsServiceClient
Datastore
- feat(datastore): emulator environment variable (#14100)
Pub/Sub
- fix(pubsub): correctly trace modacks in the unary pull (#14049)
Spanner
- fix(spanner): avoid absl types in public Interval API (#14095)
- feat(spanner): add a representation for the Spanner INTERVAL (#14059)
- fix(spanner): delete idle sessions upon SessionPool destruction (#14012)
Storage
- fix(storage): missing include (#14052)
Storage Control
- docs(storagecontrol): use
GetStorageLayout()
for quickstart (#14044) - docs(storagecontrol): update service title (#14042)
Google APIs interface definitions
- This release is based on definitions as of 2024-04-30T21:03:48Z
v2.23.0
New Libraries
We are happy to announce the following GA libraries. Unless specifically noted,
the APIs in these libraries are stable, and are ready for production use.
- App Hub API
- Backup and DR Service API
- Sovereign Controls by Partners
- Cloud Storage Control API is now GA.
Updated Libraries
- AI Platform API - new
NotebookServiceClient
andPersistentResourceServiceClient
- Cloud Dataplex API - new
CatalogServiceClient
- Network Services API - new
DepServiceClient
- SecurityCenter - add v2 version of the library
Bigtable
- fix(bigtable): respect GOOGLE_CLOUD_CPP_OPENTELEMETRY_TRACING (#13748)
Pub/Sub
- docs(pubsub): add kinesis sample (#13593)
Spanner
- feat(spanner): add ExcludeTransactionFromChangeStreamsOption (#13898)
- feat(spanner): add spanner::Value support for TypeCode::FLOAT32 (#13862)
- feat(spanner): add samples for proto columns (#13759)
- feat(spanner): add integration tests for proto columns (#13756)
- feat(spanner): add spanner::Value support for ProtoEnum/ProtoMessage (#13747)
- feat(spanner): add representations for the Spanner PROTO/ENUM types (#13743)
- feat(spanner): add sample for instance-admin managed autoscaler (#13740)
Speech
- fix(speech): enable location specific connections (#13757)
Storage
- fix(storage): preserve full Status in default creds (#13897)
- fix(storage): respect
GOOGLE_CLOUD_CPP_OPENTELEMETRY_TRACING
(#13766) - feat(storage): support HNS-enabled buckets (#13753)
- feat(storage): support soft delete timestamps (#13728)
Common Libraries
- feat(common): introduce
FieldMaskOption
(#13936) - docs(common): link to system parameters page (#13937)
- feat(common):
QuotaUserOption
for gRPC-based libs (#13933) - fix(common):
clang-cl
needs aconst_cast<>
(#13891) - fix(compute): shorten paths for Bazel+MSVC (#13836)
- feat(common): support injecting custom headers (#13829)