Skip to content

Releases: googleapis/google-cloud-cpp

v1.34.0 Release

01 Dec 18:08
31d387e
Compare
Choose a tag to compare

BigQuery IAM

Generally we improved the quality of the generated documentation, including:

  • feat(generator): document details about *Client (#7673)
  • feat(generator): link each method input and output types (#7665)

Bigtable

  • feat(bigtableadmin): add multi-cluster routing for specific clusters (#7636)

Spanner

  • feat(generator): document details about *Client (#7673)
  • feat(generator): link each method input and output types (#7665)
  • fix(spanner): GetSingularRow accepts by value (#7589)
  • fix(spanner): avoid use-after-move bugs (#7588)
  • docs(spanner): no doxygen for admin_internal (#7552)

Storage

  • feat(storage): better debugging for session rewinds (#7662)
  • feat(storage): separate option for download timeouts (#7655)
  • feat: GCS parse "error info" from JSON when available (#7654)
  • doc(storage): describe connection pool (#7637)
  • feat(storage): storage::Client is a value type (#7634)
  • feat(storage): default payload format for CreateNotification (#7633)
  • feat(generator): more stable googleapis proto links (#7606)
  • feat(GCS+gRPC): endpoint overrides with secure credentials (#7572)
  • feat(GCS+gRPC): synthetic object metadata links (#7563)
  • fix(GCS+gRPC): correct format Object ids (#7559)

Common Libraries

  • feat: expose and log ErrorInfo if present (#7640)
  • feat(common): add tracing for the LRO polling loop (#7615)
  • feat(common): add internal-only payload support to Status (#7603)

New Libraries

We are introducing client libraries for Cloud Tasks, Secret Manager,
and Pub/Sub Lite. These libraries are still under development.

v1.33.0

01 Nov 19:42
7bcb5f7
Compare
Choose a tag to compare

⚠️ In this release we have stopped testing with Ubuntu:16.04 as this distribution is no longer supported by Google Cloud. We will gladly consider, but do not commit to accepting, patches to fix build problems on the platform.

⚠️ Our Doxygen documentation (e.g. Storage docs) was incorrectly showing the versioned inline namespace name for our symbols (it was v1), implicitly suggesting that users should spell this inline namespace in their own code. This has been corrected. Our Doxygen documentation no longer shows the versioned inline namespace name; instead, it shows users how to correctly spell our symbol names without referencing the versioned inline namespace.

BigQuery

  • feat: create relocatable pkg-config files (#7481)

Bigtable

  • doc: remove inline namespace from doxygen (#7461)
  • fix(bigtable): retry internal errors known to be transient (#7395)

Firestore

BREAKING CHANGE: The experimental Firestore support library that used to
live in this repo at google/cloud/firestore has been removed in favor of the
canonical library at https://firebase.google.com/docs/reference/cpp. For more
info see #7443.

  • cleanup(firestore)!: removes the experimental firestore library (#7468)

IAM

  • feat: create relocatable pkg-config files (#7481)
  • fix(generator): add doxygen return comment for StreamRanges (#7419)

Pub/Sub

Spanner

  • feat: create relocatable pkg-config files (#7481)
  • doc: remove inline namespace from doxygen (#7461)
  • fix(generator): add doxygen return comment for StreamRanges (#7419)

Storage

  • fix(storage): respect ContentType in Client::UploadFile (#7521)
  • doc: remove inline namespace from doxygen (#7461)
  • fix(storage): prevent crashes on double Close() (#7390)
  • feat(storage): add bucket attributes for RPO (#7384)
  • doc(storage): 'unspecified' value for PAP is deprecated (#7377)
  • doc(storage): label ClientOptions as deprecated (#7511)

Common Libraries

  • fix(common): fewer crashes with dynamic loading (#7512)
  • feat: create relocatable pkg-config files (#7481)
  • fix(common): resume sending "v" in "gccl" component of API header (#7473)
  • doc: remove inline namespace from doxygen (#7461)
  • feat(common): adds begin/end inline namespace macros (#7456)
  • feat(common): GUAC for async read-write streams (#7442)

v1.32.1

06 Oct 17:56
f2f41d1
Compare
Choose a tag to compare

v1.32.1 Release

Pub/Sub

  • fix(pubsub): respect non-default values in pubsub::ConnectionOptions (#7406)

v1.32.0

01 Oct 16:49
58ea920
Compare
Choose a tag to compare

v1.32.0 Release

Bigtable

  • docs(bigtable): add documentation for no channel refreshes (#7373)

IAM

  • feat(generator): generate a SetIamPolicy() overload with an OCC loop (#7276)
  • doc(iam): use SetIamPolicy() read-modify-write loop in sample (#7288)

Pub/Sub

  • feat(pubsub): use google::cloud::Options to configure the library.
    pubsub::PublisherOptions, pubsub::SubscriberOptions, and related
    functions are deprecated. We have not set a date to remove them, but if
    we ever do we plan to give you one year's notice.
  • fix(pubsub): avoid deadlocks in publish flow control (#7313)
  • fix(pubsub): dont std::move PublisherOptions that we are still using (#7270)

Storage

BREAKING CHANGES:

  • We have removed the code generated from storage/v1 protos. These protos were
    not GA themselves, and the underlying service will be disabled in the near
    future. Furthermore, the library that used them (the GCS+gRPC plugin) is
    clearly labeled experimental. Regardless, we apologize if this causes you
    inconvenience or additional work.

OTHER CHANGES:

  • fix(storage): eliminate dangling function references (#7366)
  • doc: add gRPC steps to storage quickstart (#7358)
  • fix(storage): restore deprecation warnings on MSVC (#7325)
  • fix(storage): build with MSVC+x86 (#7323)
  • feat(GCS+gRPC): reduce data copying in downloads (#7303)
  • feat(GCS+gRPC): support timeouts for all requests (#7299)
  • feat(storage): support timeouts for all requests (#7295)
  • feat(storage): use generic parameters when resuming uploads (#7292)
  • feat(GCS+gRPC): implement standard parameters (#7272)
  • fix(storage): use CA info options in credentials (#7261)
  • doc(storage): handle kNotFound in example (#7252)

Spanner

  • feat(generator): generate a SetIamPolicy() overload with an OCC loop (#7276)
  • feat(spanner): add factory functions for instance/database/backup (#7321)
  • doc(spanner): convert Spanner samples to use the generated admin APIs (#7311)
  • feat(spanner): add generated admin APIs (#7285)

Common Libraries

  • fix: substitute build metadata (git commit) in bazel builds (#7378)
  • feat(common): add ability to supply a user-run CQ to gRPC options (#7354)

v1.31.1

02 Sep 23:11
7836a50
Compare
Choose a tag to compare

v1.31.1 Release

Storage

  • fix(storage): use CA info options in credentials (#7263)

v1.31.0

01 Sep 18:21
890a3ef
Compare
Choose a tag to compare

v1.31.0 Release

BigQuery

  • feat(generator): add default tracing components and options (#7219)

Bigtable

  • feat(bigtable): add Make(Data,Admin,InstanceAdmin)Client methods that take Options (#7226)

IAM

  • feat(generator): add default tracing components and options (#7219)

Pub/Sub

  • feat(pubsub): support Topic retention duration (#7196)

Storage

  • fix: release CurlRequest handles on error (#7244)
  • feat(storage): add additional examples (#7224)
  • feat(storage): aggregate upload benchmark (#7190)
  • fix(GCS+gRPC): quickstart build with Bazel+Windows (#7147)
  • fix(storage): release handles for oauth2 refresh (#7136)
  • fix(GCS+gRPC): return status on stream closure (#7128)
  • feat(storage): make benchmark more robust on stalls (#7113)
  • feat(GCS+gRPC): timeout downloads in benchmark (#7112)
  • feat(GCS+gRPC): initial support for download timeouts (#7108)

Spanner

  • feat(spanner): support for JSON as a column type (#7212)
  • feat(spanner): tagging support (#7154)
  • feat(spanner): send session-refresh request at low priority (#7140)
  • fix(spanner): fix Client::OverlayQueryOptions() to merge correctly (#7118)

Common Libraries

BREAKING CHANGES:

  • google::cloud::StatusOr<T> had an accessor that returned an lvalue
    reference to non-const Status, this allowed callers to modify the contained
    Status and break invariants of the StatusOr class. This function was
    removed. If your code previously relied on sor.status() = new_status you
    should change it to sor = new_status. (#7150)

OTHER CHANGES:

  • feat(common): add GrpcChannelArgumentsNativeOption (#7194)
  • feat(common): capture thread that creates log record (#7119)

v1.30.1

10 Aug 23:59
00c2dec
Compare
Choose a tag to compare

BigQuery

  • Support both google-cloud-cpp::bigquery and deprecated google-cloud-cpp::experimental-bigquery targets.

IAM

  • Support both google-cloud-cpp::iam and deprecated google-cloud-cpp::experimental-iam targets.

v1.30.0

03 Aug 13:40
35d6136
Compare
Choose a tag to compare

v1.30.0 Release

New GA Libraries

Bigtable:

BREAKING CHANGES:

  • As previously announced, we removed the experimental Async* functions in Table that took a CompletionQueue& parameter. Users that need to update their code should use the identically named functions which do not require a CompletionQueue&. If users require a custom CompletionQueue, one can be supplied to the DataClient used to construct the Table, via ClientOptions::DisableBackgroundThreads(CompletionQueue const&). See #2567 for more details.

OTHER CHANGES:

  • We changed the MutationBatcher's default setting for max mutations per batch from 100k to 1k. The new value achieves better throughput and avoids errors from exhausting the server. (#7095)

Storage:

BREAKING CHANGES:

  • We changed how the library uses google::cloud::internal::ObjectReadSource. If your tests mock how the library uses this class you may need to update your tests. We updated the mocking examples to guide you in changing any tests.

OTHER CHANGES:

  • feat(storage): discard handles after an error (#7088)
  • feat(storage): release download handles sooner (#7085)
  • feat(storage): support setting HTTP version (#7077)
  • fix(storage): cleanup interrupted downloads (#7064)
  • fix(storage): avoid crashes after move (#7045)
  • feat(GCS+gRPC): upload checksums with last chunk (#7031)
  • fix(storage): use hash values in InsertObject() (#7025)
  • feat(storage): capture peer address for REST (#6994)
  • feat(GCS+gRPC): option to configure plugin (#6991)
  • feat(GCS+gRPC): checksums on ObjectInsert (#6967)
  • fix(GCS+gRPC): no hashes in Object resource (#6963)

Common Libraries:

  • feat(common): always clog GCP_LOG(FATAL) messages (#7087)
  • feat(common): make GCP_LOG(FATAL) terminate execution (#7058)

Other:

We have removed the super/ directory: google-cloud-cpp remains usable in a super build for a larger project, but we do not believe these files add enough value for the additional complexity. If you prefer to build all the dependencies from source using CMake, we recommend you use a package manager, such as vcpkg.

We have dropped support for Clang < 6.0: to support the latest Google Cloud services we need a version of Protobuf that can compile all the .proto files in https://github.com/googleapis/googleapis. At this time this requires Protobuf >= 3.15, and these versions of Protobuf do not support older versions of the Clang compiler.

v1.29.0 Release

01 Jul 18:01
970c2fe
Compare
Choose a tag to compare

Bigtable:

BREAKING CHANGES:

  • Experimental functions matching Async* in bigtable::TableAdmin and
    bigtable::InstanceAdmin have been removed from the public API. See
    #5923 for more details.

Other changes:

  • feat(bigtable): add Backup IAM Policy snippets (#6847)
  • doc(bigtable): revamp examples README (#6839)
  • docs: fix connection pool size for samples (#6834)
  • cleanup(doc): add IAM examples to Bigtable gRPC doc, fix typos (#6838)
  • cleanup(bigtable)!: remove admin async methods from public API (#6711)

Pub/Sub:

  • fix: cast to std::string which works with string and Cord (#6850)
  • doc(pubsub): an example for publisher flow control (#6784)
  • feat(pubsub): flow control for Publisher (#6678)
  • feat(pubsub): use unary RPCs for Ack/Nack (#6674)
  • feat(pubsub): direct Ack/Nack through SubscriberStub (#6666)

Storage:

  • fix(storage): allow overwrites in parallel uploads (#6908)
  • feat(GCS+gRPC): capture streaming RPCs metadata (#6902)
  • fix(storage): use correct header for XML pre-conditions (#6903)
  • fix(storage): use JSON for reads with pre-conditions (#6900)
  • fix(storage): treat 304 errors as kFailedPrecondition (#6897)
  • feat(storage): micro-optimization for downloads (#6892)
  • fix(GCS+gRPC): avoid duplicate headers in downloads (#6891)
  • feat(storage): implement "public access prevention" (#6755)
  • fix(GCS+gRPC): resumable uploads can resume (#6881)
  • feat(storage): share client in throughput benchmark (#6882)
  • feat(storage): make auto-finalization optional (#6874)
  • fix(storage): alternative endpoints and Host header (#6864)
  • fix(storage): crashes with tracing enabled (#6870)

Spanner:

  • feature(spanner): low-cost instances (#6895)
  • refactor(spanner): Use background threads for admin LROs (#6853, #6835)
  • feature(spanner): add optimizer_statistics_package to QueryOptions (#6727)
  • fix(spanner): pick up tracing-option defaults in SetBasicDefaults() (#6691)

Common Libraries:

v1.28.0 Release

02 Jun 17:39
855ff01
Compare
Choose a tag to compare

Bigtable

  • feat(bigtable): Add asynchronous method for sampling row keys (#6561). Users
    that extend bigtable::DataClient and wish to use the new method will need to
    override PrepareAsyncSampleRowKeys().
  • fix(bigtable): bigtable::Table::AsyncBulkApply() now respects the Retry and
    Backoff policies (#6510)

IAM

NOTE This release includes an experimental IAM client library. This
library is NOT GA and is likely to have breaking changes in the coming
months. Feel free to take a look, file issues, ask questions, and even
experiment with it, but do not ship production code using it yet.

  • feature(iam): generate iam admin code (#6430)

Pub/Sub

  • fix(pubsub): save refresh timer for cancellation (#6662)
  • feat(pubsub): add ability to set the ack deadline extension (#6620)

Spanner

  • feat(spanner): use multiple channels instead of multiple client for the
    multiple rows cpu benchmark (#6659)
  • fix(spanner): do not warn about SessionPoolClockOption (#6619)

Storage

  • feat(storage): recommend g::c::Options (#6640)
  • feat(storage): support multiple channels in GCS+gRPC (#6593)
  • feat(storage): round-robin stub for GCS+gRPC (#6584)
  • fix(storage): compile GCS+gRPC with Windows+x86 (#6556)
  • feat(storage): install rules for GCS+gRPC plugin (#6527)
  • fix(storage): compile with GCC 11 in C++17 mode (#6501)
  • feat: Support unified credentials (google::cloud::Credentials) to initialize
    both the REST and gRPC plugins with the same classes. (#6518)(#6531)(#6617)(#6488)(#6441)

Common Libraries

  • feat: Add support for "unified" credentials, which allow applications to
    Configure the REST and gRPC-based libraries using the same credential classes
    Support complex credential types, such as service account impersonation
    With this release, only the storage library supports unified credentials.
    (#6617)(#6614)(#6531)(#6518)
  • feat: an example using identity tokens with gRPC (#6583)
  • feat: example using identity tokens (#6569)