Releases: googleapis/google-cloud-cpp
v2.15.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.
Cloud IoT
The Cloud IoT Core service has been [shutdown][cloud-iot-shutdown]. We removed
the corresponding C++ client library as it is no longer usable.
BeyondCorp API
Parts of the BeyondCorp API are restricted to only existing customers and will
be decommissioned. No C++ customers are affected, so we are removing the
unusable components from the C++ libraries. More information in the BeyondCorp
announcement.
Natural Language AI
We expanded the library to include the v2
version of the API.
Notebooks
We expanded the library to include the v2
version of the API.
Pub/Sub
- fix(pubsub): url encode routing params on publish (#12454)
- feat(pubsub): increase backoff from 1.3 to 4.0 (#12306)
Spanner
- feat(spanner): enable leader aware routing by default (#12319)
Storage
- fix(storage): tracing should decorate retries (#12314)
Common Libraries
- fix: URL encode explicit routing values (#12493) (#12447)
- feat(common): add
Options::set<>() &&
overload (#12424) - fix(common): gRPC alarms require more locking (#12406)
- feat(common): retry loops preserve original message (#12368)
- feat(otel): control tracing with environment variable (#11897)
- docs(otel): troubleshoot exporter doc (#12345)
- docs(otel): build quickstart with vcpkg (#12324)
- feat(common): retry loops signal via error info (#12313)
- fix(common): handle expired policies in
*RetryLoop
(#12301)
Other Changes
Bazel Testing: from v2.15.0 we will only test with Bazel >= 6.0.0. We do not
consider this a breaking change, as Bazel 5.x has been in maintenance mode for
more than 6 months.
CMake Proto Libraries: We only compile service-specific protos if the
corresponding client library is enabled, via -DGOOGLE_CLOUD_CPP_ENABLE=...
.
This change reduces build times for customers who use CMake but who are not
using all of the client libraries listed below.
We considered it a bug that customers building with CMake were forced
to compile large proto libraries that they did not need. It was certainly
confusing.
Any change in behavior, including fixing bugs, can be considered "breaking". By
policy we don't consider bug fixes to be breaking changes. We applied that
policy in this case.
The impacted libraries are:
bigquery
bigtable
dialogflow_es
iam
logging
pubsub
speech
storage
texttospeech
trace
If you are dependent on any of these proto libraries and you are not
compiling the corresponding client library, you will need to update your build
scripts.
For example, if you depend on google_cloud_cpp_speech_protos
(e.g., if you
have been using this library to make calls to Cloud Speech using raw gRPC), add
-DGOOGLE_CLOUD_CPP_ENABLE=...,speech,...
to your CMake configure command. If
you build with vcpkg
, include speech
in your install command.
Note that google_cloud_cpp_storage_protos
are associated with the
experimental-storage-grpc
feature, not the storage
feature.
v2.14.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
Channel Services
The library has been expanded to include the Reporting API.
Cloud Build
- feat(cloudbuild): promote 2nd gen (repositories) API to GA (#12236)
Cloud Functions
The library has been expanded to include the 2nd gen API.
Cloud Monitoring
The library has been expanded to include the Snooze API.
Cloud Run
The library has been expanded to include the Job Executions API.
Compute Engine OS Config
The library has been expanded to include the Zonal OS Config API.
Data Catalog
- feat(datacatalog): promote
datalineage
to GA (#12271)
Dataproc
The library has been expanded to include the Node Groups API.
Logging
The library has been expanded to include the Log-based Metrics API and the Log Router API.
Pub/Sub
- docs(pubsub): add cloud storage subscription sample (#12088)
- docs(pubsub): add unwrapped subscription sample (#12090)
- docs(pubsub): add a subscriber quickstart (#12053)
- docs(pubsub): document
RetryPolicy
interface (#12030)
Retail
The library has been expanded to include new services.
Resource Manager
The library has been expanded to include the Tags API.
Spanner
- feat(spanner): samples for bit-reversed sequence (#12280)
- doc(spanner): mark obsolete Spanner options classes as deprecated (#12256)
- doc(spanner): Improve documentation for ActionOnExhaustion (#12238)
- doc(spanner): add documentation/sample for TransactionRerunPolicy (#12140)
- feat(spanner): tests and samples for foreign-key delete cascade (#12122)
- docs(spanner): document
RetryPolicy
interface (#12037)
Speech
The library has been expanded to include the Model Adaptation API.
Storage
- docs(storage): document
RetryPolicy
interface (#12031)
Common Libraries
v2.13.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.
Batch
- docs: an example to extract Cloud Batch logs (#11935)
- docs(batch): introduce basic snippets (#11915)
Spanner
- doc(spanner): add an example for CommitAtLeastOnce() (#11905)
- feat(spanner): implement at-least-once Commit (#11899)
Common Libraries
v2.12.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.
- Content Warehouse
- Cloud Domains
- Essential Contacts
- reCAPTCHA Enterprise
- Timeseries Insights
- Traffic Director
- Vertex AI
Cloud Debugger
The Cloud Debugger service (aka Stackdriver Debugger API) has been
shutdown. The corresponding client library has been
removed.
BigQuery
This library has been expanded to include the BigLake API (#11882)
Pub/Sub
Common Libraries
v2.11.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
- docs(bigtable): async Table APIs are stable (#11711)
- doc(bigtable): deprecate DataClient in doxygen (#11550)
Cloud Asset
The library has been re-enabled on Windows. See #11714 for details.
Spanner
- docs(spanner): some documentation tweaks (#11641)
- feat(spanner): tests and samples for drop-database protection (#11637)
- feat(spanner): make
ResultSourceInterface
public (#11636)
Storage
- fix(storage): consistent project id overrides (#11754)
- feat(storage): better error messages in signed URLs (#11741)
- feat(storage): offer mock client without decorators (#11697)
- feat(storage): lazy allocation for upload buffer (#11633)
Storage Transfer Service
The library has been re-enabled on macOS. See #8785 for details.
Common Libraries
- feat: use full jitter exp backoff policy in the generator (#11748)
- feat: add new constructor for exponential backoff policy (#11650)
- feat: avoid development dependencies with Bazel (#11724)
- docs(common): better exception descriptions (#11705)
- fix(rest): support rewinds in libcurl (#11703, #11709)
- fix: workaround curl_multi_poll returning an error on EINTR (#11649)
- docs(common): improve
StatusOr<>
documentation (#11631) - fix: Correct exponential backoff ranges (#11529)
- fix: patch releases do not change the ABI (#11499)
- fix(rest): missing user-agent separator (#11473)
v2.10.1
v2.10.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.
The following experimental libraries are now available:
Bigquery
- Removed bigquery/v2/model*. There are no plans to implement gRPC endpoints for
this service. Therefore the generated code will never be usable and never has
been.
Service Control
The library has been expanded to include the v2 service.
Spanner
- fix(spanner): propagate Options through SessionPool callbacks (#11344)
Storage
- fix(storage): cache legacy credentials (#11271)
- fix(storage): support per-request options (#11445)
- fix(storage): cache all credential types (#11447)
Common Libraries
Other Changes
Bazel Testing: after v2.10.0 we will only test with Bazel >= 5.4.0. We
do not consider this a breaking change, as Bazel 4.x has been in maintenance
mode for several months.
v2.9.1
v2.9.0
Cloud Build
The library has been expanded to include the Cloud Build repositories (2nd gen)
API. Note that the client is tagged as experimental, because the service is
still in preview.
Cloud Trace
The library has been expanded to include the v1 service.
IAM
- fix(iam): override idempotency on idempotent POST methods (#11045)
Spanner
- feat(spanner): add the final pieces for the RouteToLeaderOption (#11112)
- feat(spanner): support "data boost" on partitioned queries and reads (#10998)
Storage
- feat(storage): reduce copies in
InsertObject()
(#11014)
Common Libraries
- feat: consume less entropy for PRNG (#11102)
- feat(mocks): provide access to call options in client tests (#11050)
Testing
We have stopped testing with MSVC 2017. Microsoft stopped mainstream support for
MSVC 2017 in 2022-04.
We continue to test with MSVC 2022 and MSVC 2019. We recommend that you update
to one of these versions to use more recent versions of the google-cloud-cpp
libraries. Note that, in accordance with Google's
Foundational C++ support policy, the other Google libraries
have stopped (or shortly will stop) testing with MSVC 2017.
v2.8.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): retries for CheckConsistency / AsyncWaitForConsistency (#10955)
- docs(bigtable): clean up CreateTable sample (#10844)
Data Catalog
- feat(datacatalog): generate lineage library (#10977)
KMS
The library has been expanded to include the KMS Inventory API.
Pub/Sub
- fix(pubsub): no warnings on
ack()/nack()
success (#10920) - fix(pubsub): fewer default threads for 32-bit builds (#10793)
TPU
The library has been expanded to include the TPU v2 API.
Common Libraries
We have introduced versioned clients for many services. The version is that of
the GCP service. While this naming convention is more verbose, it allows us to
support clients for multiple versions of a GCP service from within the same
library (e.g. speech_v1::SpeechClient
and speech_v2::SpeechClient
). See
#10170 for more details.