Skip to content

v1.20.0 Release

Choose a tag to compare

@devjgm devjgm released this 03 Nov 16:20
88d7735

Bigtable

No user-facing changes.

Pub/Sub

BREAKING CHANGES:

While the Pub/Sub library is not GA, and breaking changes are to be expected, we
are close enough to a GA release that we think highlighting them is important.

  • Simplify the concurrency control configuration in pubsub::SubscriberOptions.
    Applications only need to set the maximum number of messages that will be
    scheduled in parallel.

  • Remove pubsub::AckHandler::ack_id() accessor. We believe application
    developers should have no need for this field.

  • Rename pubsub::SubscriptionOptions to pubsub::SubscriberOptions as these
    are bound to a specific subscriber object.

  • Change the pubsub::Subscriber API. A Subscriber is now bound to a specific
    Cloud Pub/Sub subscription, with a fixed set of SuscriptionOptions, just
    like a pubsub::Publisher is bound to a specific topic and a set of
    PublisherOptions. In addition to making publishers and subscribers more
    symmetrical, this makes the library more consistent with the Cloud Pub/Sub
    library for other languages. Finally, note that we are planning to rename
    SubscriptionOptions to SubscriberOptions in a future PR too.

  • Remove option to disable retries in Publisher::Publish. This is redundant as
    the application can set a "no retries" retry policy. This is more consistent
    with other Cloud Pub/Sub libraries. We include an example showing how to
    configure a "no retries" retry policy.

  • Fix inconsistent naming for PublisherOptions attributes controlling the
    maximum number of messages per batch and the maximum number of bytes per
    batch.

  • Rename the {Topic,Snapshot,Subscription}MutationBuilder classes, removing
    Mutation from their names. This makes the C++ library more familiar for
    Cloud Pub/Sub developers coming from other languages.

  • Simplify the message flow control configuration. Now that the library uses
    streaming pulls, the low water marks are not used. The application developer
    simply sets limits for the number of messages (and/or bytes) outstanding.
    These limits are propagated to the service, and the service will stop
    streaming if too many messages (or bytes) are outstanding.

Spanner

No user-facing changes.

Storage

BREAKING CHANGES:

  • Our public headers no longer include nlohmann/json.hpp. Please update your
    code to directly include this header if you need it. We believe it is not a
    good practice to depend on indirectly included headers, but do feel we should
    warn our customers of this change.

OTHER CHANGES:

  • Unexpected curl errors will now be retried (#5312)
  • docs: add error handling example from client->ReadObject() (#5274)
  • feat(storage): Create an example for Client::DeleteResumableUpload()
  • doc: prefer UBLA references over bucket-policy-only

Common Libraries

  • Fixed occasional crash on background thread shutdown (#5324)
  • GCP_LOG now serializes its output to std::clog (#5179)