Skip to content

Releases: googleapis/google-cloud-cpp

v0.11.0 Release

02 Jul 00:08
cc1af99
Compare
Choose a tag to compare

File Checksums

Extension SHA256 checksum
.tar.gz 3abe2cf553ce33ff58d23848ae716cd2fcabfd454b89f6f65a92ed261244c1df
.zip 6b4b7c4f0d65796d454d32e9d8bc1f2a468b2a686f8a04c5d4860fd6bf997bc3

Bigtable v1.0.0

  • bug: the library will return an error instead of simply discarding unknown IAM
    fields.
  • feature: update googleapis protos to a more recent version.
  • cleanup: marked rarely used CMake options as advanced. They will no longer
    show up by default in your CMake UI.
  • Several internal cleanups, such as removing unused code in
    google::cloud::bigtable::internal, fixing constant names to follow the
    Google Style Guide, simplify the generation of version metadata, make it
    easier to import the code into Google, turned on -Wextra for our builds,
    moved the sanitizer builds to Bazel, and refactoring generic gRPC utilities
    to a new common library.

Google Cloud Storage v1.2.0

  • Breaking Change: we accidentally left two functions in the public API,
    they are now removed. These functions were used to convert
    google::cloud::storage::ServiceAccount classes to and from JSON objects.
  • Breaking Change: we removed the functions in
    google::cloud::storage::IdempotencyPolicy for
    internal::InsertObjectStreamingRequest. This class is no longer used and the
    functions are unnecessary. This breakage only affects applications that define
    a custom IdempotencyPolicy.
  • bug: Fixed WriteObject() to actually retry the upload for each chunk, not
    just retry the creation of the upload session.
  • feature: add examples showing how to mock a google::cloud::storage::Client.
  • feature: allow applications to load service account credentials from the
    standard locations, but also change the scopes and subject as the credentials
    are loaded. Thanks to @timford for contributing this fix.
  • bug: resuming an already finalized upload was not working correctly. Now the
    library restores the stream, but the stream is immediately closed (it is
    incorrect to write more data), and has the object metadata immediately
    available. Thanks to @Jseph for contributing this fix.
  • bug: on Windows, storage::Client::UploadFile() and
    storage::Client::DownloadFile() were always treating the files as text,
    which meant their contents were transformed in unexpected ways. They are now
    always treated as binary.
  • bug: we were still leaking a few macros from the nlohmann json library to the
    user's namespace. This is now fixed. Thanks to @remyabel for helping us with
    this.
  • feature: reduce data copies during download.
  • bug: return an error if the IAM bindings contain unknown fields, previously
    the library was discarding these fields.
  • Several internal cleanups, such as fixing constant names to match the Google
    Style Guide, simplify the generation of version metadata, make the integration
    tests more reliable by using several service accounts for each run, use
    -Wextra in our builds, and a few more.

v0.10.0 Release

04 Jun 21:09
ec468fb
Compare
Choose a tag to compare

File Checksums

Extension SHA256 checksum
.tar.gz fd0c3e3b50f32af332b53857f8cd1bfa009e33d1eeecabc5c79a4825d906a90c
.zip 208c8196eaec2d1578008e2602b4667593a1527167ebdb8527a268f4cada0ad9

Bigtable v0.10.0

  • Breaking Changes
    • The return type for WaitForConsistencyCheck() was a future<StatusOr<bool>>
      where most related functions return a bigtable::Consistency enum.
    • Table::CheckAndMutateRow returns StatusOr<bool> to indicate which
      branch of the predicate was taken in the atomic change. Meanwhile,
      AsyncCheckAndMutateRow() returned a future<StatusOr<proto-with-long-name>>.
      Changed the async and sync versions to return
      future<StatusOr<MutationBranch>>. MutationBranch is an enum as
      StatusOr<bool> is too eay to use incorrectly.
    • Removed the Collection template parameter from Table::SampleRows.
    • Fixed the last function, WaitForConsistencyCheck, that returned
      std::future to return google::cloud::future<>. The function name
      changed too, to be more consistent with similar functions.
    • Remove all the "strong types" for bigtable, such as InstanceId,
      ClusterId, TableId, etc. This changed some of the constructors for
      bigtable::Table and several member functions in bigtable::Table,
      bigtable::TableAdmin, and bigtable::InstanceAdmin.
  • Changes:
    • Implemented TableAdmin::AsyncWaitForConsistency.
    • Implemented Table::AsyncReadRows.
    • DeleteAppProfile defaults to ignore_warnings=true.

GCS v1.1.0

  • Implemented option to read an object starting from an offset.
  • Automatically restart downloads on error. With this change the download is
    restarted from the last received byte, and using the object generation used
    in the original download as well. (#2693)
  • Bugfixes:
    • Service account credentials not refreshing properly. (#2691)
    • Fix build for macOS+CMake. (#2698)
    • WriteObject now supports empty streams. (#2714)

v0.9.0

08 May 18:16
Compare
Choose a tag to compare

File Checksums

Extension SHA256 checksum
.tar.gz a072103546cfa041ad8bfc599fe5a20c58e005a1a0ee18e94b2554dc3d485604
.zip 2d3e0713cc6787042916fd3b0e68765fdeb4eac26badb77c92a98c5b7a6d8e55

GCS v1.0.0

  • Declared GA and updated major number.
  • Support signed policy documents.
  • Support service account key files in PKCS#12 format (aka .p12).
  • Support signing URLs and policy documents using the SignBlob API, this is
    useful when using the default service account in GCE to sign URLs and policy
    documents.

Bigtable v0.9.0

  • Breaking Changes
    • Return google::cloud::future from InstanceAdmin functions: this is
      more consistent with all other functions returning futures.
    • Remove unused bigtable::GrpcError: the library no longer raises this
      exception, any code trying to catch the exception should be modified to
      handle errors via StatusOr<T>.
    • Remove Snapshot-related functions, tests, examples, etc.: this is
      whitelisted functionality in Cloud Bigtable and it is no longer expected
      to reach GA.
  • Continue to implement more async APIs (Async*() methods) for the
    InstanceAdmin, TableAdmin, and Table classes
    (Note: These are not yet stable)
  • Bugfixes:
    • Need ignore_warnings to actually delete an AppProfile.
    • Fix portability/logical errors in shell scripts.
    • Fix a race condition in MutationBatcher.
  • Implemented a number of previously missing code samples.

Common v0.7.0

  • Support move-only callables in future<T>
  • Avoid std::make_exception_ptr() in future_shared_state_base::abandon().

v0.8.1 Release

12 Apr 05:32
b892589
Compare
Choose a tag to compare

File Checksums

Extension SHA256 checksum
.tar.gz f5600fdf3efd28e3142a60c20574e349511104fc6f658faf7974f6ae2def245a
.zip b8dd5b48ab3b293f947c6d3053a6cd85f3dd409c9a1ca5c17b745cf0146d3001

Bigtable

  • Use SFINAE to constrain applicability of the BulkMutation(M&&...) ctor.

Common

  • Avoid std::make_exception_ptr() when building without exceptions.

v0.8.0 Release

05 Apr 14:41
Compare
Choose a tag to compare

File Checksums

Extension SHA256 checksum
.tar.gz 239863f18a3c3bdaa3a7f16aa148871d295c6069932801f82967bae3c3ab130e
.zip 57b6b62e7007f61d6718b9898c951ee943b5df28a4af9362b718de7b6bc52cf3

Bigtable

  • Breaking change: Table::BulkApply now returns a
    std::vector<FailedMutation> instead of throwing an exception.
  • In the future we will remove all the google::cloud::bigtable::noex::*
    classes. We are moving the implementation to google::cloud::bigtable::*.
  • Continuing to implement more async APIs (Note: These are not yet stable):
    • InstanceAdmin::AsyncDeleteInstance
    • Table::AsyncCheckAndMutateRow
    • TableAdmin::AsyncDeleteTable
    • TableAdmin::AsyncModifyColumnFamilies
  • BulkMutator now returns more specific errors instead of generic UNKNOWN.
  • Improved install instructions, which are now tested with our CI builds.
  • CMake-config files now work without pkg-config.
  • Removed the googleapis submodule. The build system now automatically
    downloads all deps.
  • No longer throw exceptions from ClientOptions.

Storage

  • Added initial support for HMAC key-related functions.
  • Added support for V4 signed URLs.
  • Improved install instructions, which are now tested with our CI builds.
  • CMake-config files now work without pkg-config.
  • No longer throw exceptions from ClientOptions.
  • Handle object names with slashes.
  • Added ObjectMetadata::set_storage_class
  • Added support for policy documents.

Common

  • Removed the googleapis submodule. The build system now automatically
    downloads all deps.

v0.7.0 Release

06 Mar 20:17
Compare
Choose a tag to compare

File Checksums

Extension SHA256 checksum
.tar.gz 06bc735a117ec7ea92ea580e7f2ffa4b1cd7539e0e04f847bf500588d7f0fe90
.zip 21a7a03d48697450b300cedd346934831e324497d1a58b3ba2f4d19d9b69ead2

Bigtable

  • Breaking change: Return StatusOr<> from TableAdmin and InstanceAdmin
    operations to signal errors.
  • Add streaming to (Async)BulkMutator.
  • Implement a helper class (MutationBatcher) to automatically batch and manage
    outstanding bulk mutations.
  • Add bigtable::Cell constructors without labels argument.
  • Implementation of RowSet example using discontinuous keys.
  • List{Instances,Clusters} return failed_locations.
  • First version of async Apply batching.
  • Keep Apply callbacks in MutationData.

Storage

  • Properly handle subresources in V2 signed URLs.
  • Allow specifying non-default ServiceAccountCredentials scope and subject.
  • Add make install instructions.
  • Change the storage examples to throw a std::runtime_error on failure.
  • Add Bucket Policy Only samples.

Common

  • Breaking change: Make google::cloud::optional::operator bool() explicit.
  • Add google::cloud::optional value conversions that match std::optional.
  • Stop using grpc's DO_NOT_USE enum.
  • Remove ciso646 includes to force traditional spellings.
  • Change std::endl -> "\n".
  • Enforce formatting of .cc files.

v0.6.1 Release

13 Feb 17:55
e2d8dc2
Compare
Choose a tag to compare

File Checksums

Extension SHA256 checksum
.tar.gz 8e3a302d37f232dec041bf3f3916ca3fa5689216d42112898a4e36581f2f4ce5
.zip 7ec785a8e3f87e7e8a557377c3e72b615690c8fedce1154f2cf9b817cad28046

Bigtable

  • No changes from v0.6.0

Storage

  • The library is now Beta. We no longer expect changes to the API.
  • No other changes from v0.6.0

Common

  • No changes from v0.6.0

v0.6.0 Release

06 Feb 18:53
Compare
Choose a tag to compare

File Checksums

Extension SHA256 checksum
.tar.gz 09b496a647ef52cfab103fcf2fa5d0c963d654f8ed83aec5a299de6e5bd7ff91
.zip d229d331b2f78ef884de0f34c6ca9043a8e924bf63ba65178499c744d6b05c94

Bigtable

  • Moved repo organization from GoogleCloudPlatform -> googleapis.
  • Implemented several more async functions.
  • Breaking change: Started migrating functions to StatusOr and away from
    throwing exceptions.
  • Several fixes to bulk mutator (#1880)
  • Disabled make install for external projects.
  • Row now has a move constructor.
  • Increased default message length limit.
  • Now testing build with libc++ on Linux.
  • Fixed some bugs found by Coverity scans.

Storage

  • Breaking change: Removed almost all exception throwing in favor of
    StatusOr<T> return values.
  • Lots of cleanup to documentation and example code.
  • Avoids use of StatusOr::value() when the validity was already checked.
  • Client::ListBuckets() now directly returns ListBucketsReader, because it
    cannot fail so StatusOr was not needed.
  • Removed support for StatusOr<void>; changed usages to return Status
    instead.
  • 502s are now retryable errors from GCS.
  • Breaking change: LockBucketRetentionPolicy returns a BucketMetadata
    now instead of void.
  • Cleaned up documentation and example code.
  • Disabled make install for external projects.
  • Moved repo organization from GoogleCloudPlatform -> googleapis.
  • Moved some internal-only APIs out of public interfaces.
  • Fixed resuming uploads when the server responds with a 308.

Common

  • Fixed some documentation.
  • Breaking change: Removed StatusOr<void>.
  • Updated StatusOr documentation.
  • Fixed some (minor) issues found by coverity.

v0.5.0 Release.

03 Jan 04:04
0b55dc7
Compare
Choose a tag to compare

File Checksums

Extension SHA256 checksum
.tar.gz 886bcba3616d5f362838a2d86ae0198dd3670a84a84c82291cda6c30e14779fc
.zip b2cd3a745c0e24cda8349bd9defa701231252534ad776edbc3a58e4957986bc5

Bigtable

  • Restore support for gcc-4.8.
  • @remyabel cleaned up some hard-coded zone names in the examples.
  • More experimental asynchronous APIs, including AsyncReadRows. Note that we
    expect to change all these experimental APIs as described in
    #1543.
  • @remyabel contributed changes to disable the unit and integration tests. This
    can be useful for package maintainers.
  • New Bigtable filter wrapper that accepts a single column.
  • Breaking Change: remove the as_proto_move() member functions in favor
    of as_proto() &&. With the latter newer compilers will warn if the object
    is used after the destructive operation.

Storage

  • Try to use the exception mask in the IOStream classes
    (storage::ObjectReadStream and storage::ObjectWriteStream). This allows
    applications to check errors locally via rdstate(). Note that applications
    that disable exceptions altogether must check the status() member function
    for these IOStream classes. It is impossible to set the rdstate() for all
    failures when exceptions are disabled.
  • Support reading only a portion of a Blob.
  • Support building with gcc-4.8.
  • Many internal changes to better support applications that disable exceptions.
    A future release will include APIs that do not raise exceptions for error
    conditions.
  • @remyabel contributed changes to disable the unit and integration tests. This
    can be useful for package maintainers.
  • Implement a function to create signed URLs (Client::CreateV2SignedUrl).
  • Support resumable uploads in any upload operation.

Common

  • Support compiling with gcc-4.8.
  • Fix GCP_LOG() macro so it works on platforms that define a DEBUG pre-processor symbol.
  • Use different PRNG sequences for each backoff instance, previously all the clones of a backoff policy shared the same sequence.
  • Workaround build problems with Xcode 7.3.

v0.4.0 Release.

04 Dec 17:06
6efdd7e
Compare
Choose a tag to compare

Bigtable

  • More experimental asynchronous APIs, note that we expect to change all these
    experimental APIs as described in #1543.
  • Most of the admin operations now have asynchronous APIs.
  • All asynchronous APIs in noex::* return an object through which applications
    can request cancellation of pending requests.
  • Prototype asynchronous APIs returning a google::cloud::future<T>,
    applications can attach callbacks and/or block on a
    google::cloud::future<T>.

Storage

  • Use resumable uploads for large files in Client::UploadFile().
  • Implement support for the userIp optional query parameter.
  • BREAKING CHANGE Client::RewriteObject(), Client::CopyObject(), and
    Client::ComposeObject no longer require the ObjectMetadata argument.
    Instead use WithObjectMetadata(), which can be omitted if you do not need
    to set any metadata attributes in the new object.
  • When using OpenSSL-1.0.2 the client library needs to configure the
    locking callbacks
    for OpenSSL. However, the application may disable this behavior if the
    application developer is going to use their own locking callbacks.
  • When refreshing OAuth2 access tokens the client library uses the same retry
    and backoff policies as used for the request itself.
  • Applications can set object metadata attributes via the WithObjectMetadata
    optional argument to Client::InsertObjectMedia().
  • Applications can configure the library to only retry idempotent operations.
  • The client library can use Google Compute Engine credentials to access the
    service.

Common

  • Implement google::cloud::future<T> and google::cloud::promise<T> based on ISO/IEC TS 19571:2016, the "C++ Extensions for Concurrency" technical specification, also known as "futures with continuations".