Skip to content

v2.15.0

Choose a tag to compare

@coryan coryan released this 01 Sep 17:30
· 2247 commits to main since this release
fdda7eb

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.