Skip to content

Releases: googleapis/google-cloud-cpp

v1.42.0

21 Jun 16:39
4408ac9
Compare
Choose a tag to compare

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.

Expand to see the full list of new GA libraries...

Bigtable

  • feat(bigtable): add AsyncWaitForConsistency() helper for Table Admin (#9310)
  • doc: broken link in Bigtable README (#9265)

Pub/Sub

  • feat(pubsub): implement per-batch compression (#9270)

Storage

  • doc: broken link in GCS README file (#9264)
  • fix(storage): respect policies in deprecated constructor (#9255)
  • fix: handle transient failures in the GCE credentials (#9252)
  • fix: relax parsing for GCE informational fields (#9251)
  • feat(storage): per-operation options for Client (#9220) (#9214) (#9209) (#9208) (#9207) (#9206) (#9205) (#9204) (#9203) (#9202) (#9199) (#9247)
  • fix(storage): do not duplicate debugging headers (#9162)
  • fix(storage): disable MSVC C++17 deprecation warnings (#9143)
  • doc(storage): missing options for several functions (#9146)

Common Libraries

  • feat(common): include status error payloads in the RPC log (#9186) (#9169)
  • fix(common): workaround GCC "ambiguous" overload errors (#9144)
  • fix(common): compile with GCC (MinGW-w64) under Windows (#9140)

v1.41.0

01 Jun 17:52
9c6256e
Compare
Choose a tag to compare

Bigtable

  • fix(bigtable): remove unnecessary sleeps from BulkApply (#9091)
  • feat(bigtable): configure *Clients with EndpointOption (#9082)
  • feat(bigtable): default construct a RowReader (#8958)
  • doc(bigtable): compiler warnings for ClientOptions (#8914)
  • doc(bigtable): deprecate RowReader public ctors (#8887)
  • doc(bigtable): deprecate AsyncRowReader (#8870)

Document AI

  • fix(documentai): make quickstart functional (#9108)

IAM

The library has been expanded to include IAM Policy, an API to grant, change,
and revoke access to all GCP resources that accept allow policies.

Cloud Monitoring

  • feat(monitoring): generate async version of CreateTimeSeries() (#8983)

Pub/Sub

  • doc(pubsub): fix typos Pub/Sub vs. Pubsub (#9034)
  • doc(pubsub): implement IAM examples (#8917)
  • doc(pubsub): deprecate SubscriberOptions (#8916)
  • doc(pubsub): deprecate PublisherOptions (#8911)
  • doc(pubsub): deprecate functions consuming ConnectionOptions (#8900)

Spanner

  • doc(spanner): add a comment about building a "NaN" PgNumeric (#8891)
  • feat(spanner): spanner::Value support for spanner::PgNumeric (#8872)
  • feat(spanner): add support for spanner::PgNumeric (#8856)

Storage

  • feat(storage): implement suffix and prefix OLM rules (#9030)
  • feat(storage): helper functions for new lifecycle action (#9028)
  • fix: format multiple scopes correctly in service account assertions (#8975)
  • fix(storage): avoid crashes when parsing ErrorInfo (#8968)
  • fix(storage): all HmacKey requests accept UserProject (#8928)
  • fix(storage): handle full but not finalized uploads (#8896)
  • fix(storage): resume "gunzipped" downloads (#8894)
  • fix(storage): use Status for CurlHandle::SetOption() (#8871)
  • fix(storage): set buffersize once per handle (#8865)

Common Libraries

BREAKING CHANGES

  • We have changed the preference order for determining the service endpoint from
    (1) ${emulator_env}, (2) EndpointOption, (3) ${endpoint_env}, and (4)
    default value, to (1) ${emulator_env}, (2) ${endpoint_env}, (3)
    EndpointOption, and (4) default value. That is, the more dynamic
    ${endpoint_env} is now preferred over any EndpointOption set in the code.

Other Changes:

  • doc: links to other libraries preserve version (#9112)
  • docs: document connection and mock connection (#9084)
  • feat(generator): SetIamPolicy() can be idempotent (#9078)
  • fix(common): compilation error with coroutines and futures (#9046)
  • fix: support absolute paths for CMAKE_INSTALL_*DIR (#9022)
  • fix(generator): missing #include in generated code (#8979)
  • fix(common): compile with storage and without gRPC (#8923)
  • doc(common): deprecate ConnectionOptions member functions (#8907)
  • doc: make the minimum Bazel and CMake versions easier to find (#8909)

New Libraries

We are introducing 2 new client libraries for GCP services. While we do not
anticipate any API changes to these libraries before declaring them GA, we are
releasing them early in case they elicit some feedback that requires changes.

v1.40.2

17 May 21:22
32583a4
Compare
Choose a tag to compare

What's Changed

  • fix(GCS+gRPC): unused mutable Object fields by @coryan in #8998

Full Changelog: v1.40.1...v1.40.2

v1.39.2

17 May 21:23
39e7905
Compare
Choose a tag to compare

What's Changed

  • fix(GCS+gRPC): unused mutable Object fields by @coryan in #8997

Full Changelog: v1.39.1...v1.39.2

v1.40.1

02 May 21:33
ad3da8f
Compare
Choose a tag to compare

What's Changed

  • fix: correct check for storage vs. rest enabled (#8850)

Full Changelog: v1.40.0...v1.40.1

v1.40.0

02 May 15:45
6424ff3
Compare
Choose a tag to compare

We are happy to announce that the following GA libraries. Unless specifically
noted, the APIs in these libraries are stable, and are ready for production use.

Expand to see the full list of new GA libraries...

Bigtable

  • doc(bigtable): deprecate DataClient member fns (#8813)
  • doc(bigtable): deprecate ClientOptions (#8824)

Pub/Sub

  • doc(pubsub): document publish return value (#8703)

Spanner

  • fix(spanner)!: FLOAT64 NaN values are considered equal (#8805)

Storage

BREAKING CHANGES

  • While the interface and behavior for storage::Client::WriteObject() remains
    stable, its implementation has changed. Normally implementation details are
    not breaking changes, but any application mocking the storage library
    necessarily depends on these implementation details. We updated the
    mocking examples to guide you in changing any tests
    (#8806).

Other Changes:

  • feat(storage): new option to disable decompressive transcoding (#8834)
  • fix(storage): disable checksums for transcoded objects (#8830)
  • doc: fix typo, change "optional" to "optimal" (#8825)

Storage Transfer Service

BREAKING CHANGES

The library has been disabled on macOS due to a protobuf naming clash. See
#8785 for details.

New Libraries

We are introducing 3 new client libraries for GCP services. While we do not
anticipate any API changes to these libraries before declaring them GA, we are
releasing them early in case they elicit some feedback that requires changes.

Expand to see the full list of new libraries...

v1.39.1

11 Apr 17:56
503db73
Compare
Choose a tag to compare

What's Changed

Full Changelog: v1.39.0...v1.39.1

v1.39.0

04 Apr 21:02
29e5af8
Compare
Choose a tag to compare

BREAKING CHANGES

  • Starting with this release Linux and Windows builds based on CMake
    no longer set CMAKE_CXX_STANDARD to 11. We rely on the compiler's
    default C++ language standard. Note that all the compilers we support default
    to C++14.

    • On macOS the default is C++98, as google-cloud-cpp requires C++ >= 11, we continue
      to set CMAKE_CXX_STANDARD on that platform.
    • This only changes the default C++ version, we continue to test and support C++11.
    • For more details, see #6767.
  • The following deprecated, legacy IAM classes have been removed:
    google::cloud::IamPolicy, google::cloud::IamBinding,
    google::cloud::IamBindings. They were designed before
    IAM conditions. They did not work with IAM policies
    that include IAM conditions. See #5929 for more details.

  • cleanup!: restrict testing_util build visibility (#8584)
  • cleanup!: change bazel visibility to private for {tests,quickstarts,examples,samples,benchmarks} (#8578)

Other Changes

  • fix: treat kDeadlineExceeded as permanent error in all services (#8525)

Bigtable

BREAKING CHANGES

  • InstanceAdmin::GetIamPolicy and InstanceAdmin::SetIamPolicy have been
    retired. If you are affected by this removal, please use
    InstanceAdmin::GetNativeIamPolicy and InstanceAdmin::SetNativeIamPolicy
    instead. See #5929 for more details.

KMS

The library has been expanded to include the following services (#8530):

Pub/Sub

  • fix(pubsub): increase grpc.max_metadata_size limit (#8626)

Spanner

  • feat(spanner): add remaining PostgreSQL samples (#8627)
  • feat(spanner): add initial PostgreSQL samples (#8617)
  • feat(spanner): integration tests for Database.database_dialect (#8589)
  • feat(spanner): integration tests and sample for CopyBackup() (#8574)
  • fix(spanner): correct handling of PartialResultSet.resume_token (#8521)
  • fix(spanner): capture the ReadRequest by value in the reader factory (#8515)

Storage

BREAKING CHANGES

  • Client::GetBucketIamPolicy and Client::SetBucketIamPolicy have been
    retired. If you are affected by this removal, please use
    Client::GetNativeBucketIamPolicy and Client::SetNativeBucketIamPolicy
    instead. See #5929 for more details.
  • cleanup(common)!: remove legacy IAM classes (#8667)
  • cleanup(storage)!: remove deprecated IAM functions (#8664)
  • cleanup!: change storage bazel visibility to private by default (#8583)

Other Changes

  • doc(storage): add custom-dual regions example (#8595)
  • fix(storage): ParallelUploadFile() and WithObjectMetadata (#8629)
  • fix(storage): return an error on short writes (#8562)
  • fix(storage): use correct offset and size types (#8538)

Common Libraries

Other Changes

  • feat(common): g::c::future support for coroutines (#8532)

v1.38.0

03 Mar 19:23
643fa04
Compare
Choose a tag to compare

Service Management API

  • The DisableService() and EnableService() RPCs are now retired. These RPCs
    were deprecated and non-functional at the time this client library was
    generated. We do not expect this will actually break any existing code.
    Nevertheless, we apologize for any confusion.

Pub/Sub Lite

BREAKING CHANGES

  • We mistakenly declared GA for this library. Though the current public APIs are
    stable, the library is incomplete. We are still working on the APIs to publish
    and receive messages. We apologize for any confusion or inconvenience this
    caused.

Common Libraries

  • fix(pubsublite)!: revert GA declaration (#8497)
  • fix: no experimental- prefix for GA targets (#8496)
  • fix(container): missing CMake dependency (#8492)

v1.37.0

01 Mar 18:11
334e481
Compare
Choose a tag to compare

New GA Libraries

We are happy to announce that the following GA libraries. We expect these
libraries to have a stable API, to offer the full functionality of the
GA version of service they wrap, and to be ready for production use.

Expand to see the full list of new GA libraries...

BREAKING CHANGES

  • As previously announced, we are removing certain legacy CMake targets and
    Bazel rules in this release.
    • Bazel Users: applications should use the targets at the top-level
      directory, e.g. //:bigtable, or //:pubsub. Targets in each directory
      (e.g. //google/cloud/bigtable:bigtable_client) are now retired or marked
      private.
    • CMake Users: applications should use the
      google-cloud-cpp::* targets (e.g. google-cloud-cpp::pubsub).
      • All exported targets without a google-cloud-cpp:: prefix are retired.
        These include, but are not limited to:
        • Any target starting with googleapis-c++::
        • Any exported targets without a prefix, including:
          google_cloud_cpp_common, google_cloud_cpp_grpc_utils,
          bigtable_client, bigtable_protos, firestore_client,
          pubsub_client, storage_client, spanner_client.
        • Some target aliases, including bigtable::client, bigtable::protos
    • pkg-config users: applications should use the modules starting with
      google_cloud_cpp. All other modules are now retired.
    • Direct users of -l${library} flags: we do not recommend that
      applications uses -l flags directly, please use pkg-config and/or
      the target names under CMake or Bazel. We make this recommendation because
      we do not know of any mechanism to provide backwards compatibility for such
      flags.
    • More details about the rationale for these changes in #5726.

BigQuery

The library has been expanded to include the following services:

Bigtable

BREAKING CHANGE: The bigtable::AdminClient interface has changed
significantly. Any code that extends this class or calls its experimental public
APIs (reset(), Channel()) will be broken. For the most part, this should
only affect customers who mock this class in their tests. Code that calls
bigtable::MakeAdminClient() or bigtable::CreateDefaultAdminClient() will
continue to work as before.

This change will allow us to deliver new features more quickly by reducing the
maintenance costs of ...

Read more