Skip to content

Releases: googleapis/google-cloud-cpp

v1.15.0 Release

01 Jul 16:52
8a0d62b

Choose a tag to compare

Bigtable

  • feature: add bigtable backup API support (#4407)
  • fix: deadlock in MutationBatcher (#4327)

Storage

  • fix: support ObjectReadStream::tellg() (#4402)
  • fix(storage): treat 408 errors as retryable (#4397)
  • fix(GCS+gRPC): simplify DirectPath configuration (#4388)
  • feat(GCS+gRPC): DirectPath can be manually configured (#4379)
  • fix: warnings with MSVC 2019 16.6 (aka 19.26 akak 14.26) (#4365)
  • feat(storage/benchmarks): compare to raw downloads (#4362)
  • feat(storage/benchmark): experiment integration test (#4360)
  • feat(storage/benchmarks): control CRC32C/MD5 options (#4326)

Spanner

  • fix: incorrect metadata key string (#4431)
  • doc(spanner): add CreateInstance() example (#4405)
  • fix(spanner): examples on how to delete data (#4401)
  • feat: use SELECT 1 to refresh sessions (#4377)
  • fix(spanner): use correct name for test (#4373)

Common libraries

  • fix: CompletionQueue::RunAsync is always async (#4448)
  • fix: broken builds on Windows+CMake+Release (#4442)
  • fix: test with correct MockCompletionQueue (#4427)
  • fix: make potential narrowing cast of nanoseconds explicit (#4391)
  • fix: memory stomping in CompletionQueue::RunAsync (#4330)

v1.14.0 Release

01 Jun 15:06
a09f135

Choose a tag to compare

General Notices

  • This is the first release that includes the Spanner library, which previously
    lived at github.com/googleapis/google-cloud-cpp-spanner. All future releases
    of the Spanner library will be from this repo, and the other repo will be
    archived.
  • In this release we take a dependency on the [Abseil]
    (https://github.com/abseil/abseil-cpp) C++ library.
  • In this release we dropped our dependency on
    https://github.com/googleapis/cpp-cmakefiles. We moved the CMake rules to
    compile and install the googleapis protos into this repo in the
    external/googleapis/ directory.

Bigtable

  • feat: more bigtable data filter samples (#4315)
  • feat: add rvalue reference overloads to Row (#4239)
  • feat: implemented an efficient SetCell(Cell) overload to copy an existing cell to a mutation
  • feat: remove dep on cpp-cmakefiles, integrating the CMake rules into this repo (#4245)
  • feat: add absl crash handler support for bigtable examples (#4150)
  • feat: more bigtable data filter samples (#4141)
  • fix: warning options exported in library interface (#4134)
  • fix: proper routing headers for longrunning ops (#4099)
  • feat: add bigtable data filter samples (#4069)
  • fix: bigtable's random_mutation_test missing from build (#4058)
  • chore: bigtable, storage quickstarts use top-level build targets (#4050)

Storage

  • feat: support X-Upload-Content-Length header (#4284)
  • feat(storage/benchmark): cleanup storage benchmarks
  • feat(storage/benchmark): support GCS+gRPC plugin in storage benchmarks
  • feat: EXPERIMENTAL introduced an optional gRPC plugin to the GCS client library.
  • feat: support XML vs. JSON in throughput_vs_cpu_benchmark (#4277)
  • fix: fix off-by-one in uploading streams to GCS (#4250)
  • feat: proto conversions for BucketAccessControl (#4247)
  • feat: remove dep on cpp-cmakefiles, integrating the CMake rules into this repo (#4245)
  • feat: implement To/FromProto for CustomerEncryption (#4242)
  • fix: warning options exported in library interface (#4134)
  • fix: C2593 'operator =' is ambiguous (#4059)
  • chore: bigtable, storage quickstarts use top-level build targets (#4050)

🌟 Spanner

  • This is the first release of this repo that contains the Cloud Spanner C++
    Client Library. Previously, this library lived in a separate repo
    (https://github.com/googleapis/google-cloud-cpp-spanner). That old repo will
    be archived, and all future Cloud Spanner C++ Client Library releases will
    come from this repo.

Common libraries

  • feat: remove dep on cpp-cmakefiles, integrating the CMake rules into this repo (#4245)
  • fix: warning options exported in library interface (#4134)
  • fix: use correct variable for SOVERSION (#4131)

v1.13.0 Release

01 May 15:36
7ea2b7a

Choose a tag to compare

NOTICE: This release aligns all the version numbers for Bigtable, Storage,
the common libraries, and the repository itself. From this point on all
releases will include a single version number. Note that there is a gap in the
version numbers for Bigtable and the repository changes from v0.21.0 to
v1.13.0

BREAKING CHANGES

  • The common library inlined namespace changed to v0 to v1, moving all the
    symbols from google::cloud::v0 to google::cloud::v1. Applications that
    explicitly referred to the inlined namespace would be affected by this change.
    That is, code that uses google::cloud::v0::Foo instead of
    google::cloud::Foo would need to be modified. We apologize if this has
    impacted you, and recommend that applications do not refer to the inlined
    namespace in the future.

Bigtable

BREAKING CHANGES

See above regarding the common library inlined namespace.

OTHER CHANGES

  • cleanup: the library now links against the common libraries included in this
    repository, applications developers should not install the standalone common
    libraries in the (now archived) google-cloud-cpp-common repository.
  • feat: compile bigtable benchmarks with Bazel (#3884)
  • feat: implement table level IAM policy for bigtable(async) (#3829)
  • feat: implement table level IAM policy for bigtable (#3751)
  • refactor: synchronize version numbers for all libraries (#3710)
  • feat: change READMEs and quickstart programs (#3690)
    The google/cloud/bigable/quickstart/ directory contains a sample project
    for CMake and Bazel that uses the Cloud Bigtable C++ client library as we
    expect application developers would.

Storage

BREAKING CHANGES

See above regarding the common library inlined namespace.

  • fix!: use correct type for generation numbers (#3870) This changes the type of
    two fields from google::cloud::optional<long> to
    google::cloud::optional<std::int64_t>. With MSVC this is not a backwards
    compatible change (storing the result of .value() into a long now loses
    precision). However, on that platform the fields were not usable, they could
    not store the values that are typically generated by the production
    environment. We apologize to any customers affected by this change, but we
    think it is unlikely that anybody used the field on that platform.

OTHER CHANGES

  • cleanup: the library now links against the common libraries included in this
    repository, applications developers should not install the standalone common
    libraries in the (now archived) google-cloud-cpp-common repository.
  • feat: implement POST policy signatures. Applications can use the Google Cloud
    Storage C++ client library to create
    POST objects,
    which allow uploading using HTML forms.
  • feat: change READMEs and quickstart programs (#3690)
    The google/cloud/bigable/quickstart/ directory contains a sample project
    for CMake and Bazel that uses the Cloud Bigtable C++ client library as we
    expect application developers would.
  • fix: use network to check if running inside Google (#3959) With this change
    applications running on Google App Engine Flex (GAEF), Google Kubernetes
    Engine (GKE), or Cloud Run can use the Google Default Credentials.
  • fix: build problems on MSVC x86 (#3916)
  • fix: do not use CURL_SHARE features (#3860)
  • chore: upgrade libcurl to v7.69.1 (#3851)

Common Libraries

BREAKING CHANGES

See above regarding the common library inlined namespace.

OTHER CHANGES

No other interesting changes in the common libraries with this release.

v0.21.0 Release

01 Apr 18:54
00adf2e

Choose a tag to compare

NOTICE: This repo will soon contain the code for all the other related google-cloud-cpp-* repos. As a new monorepo (#3612), the versioning of this repo will be changing to have a single per-repo version. The per-library version numbers will be removed in favor of the repo version. See #3615 for more info.

Storage Changes

BREAKING CHANGES

  • fix!: moved IAM-related symbols to the correct inlined namespace (#3453)
    Most users should not notice any difference, but those that explicitly referenced
    symbols through the google::cloud::storage::v0 namespace may need to switch
    to google::cloud::storage (the recommended approach) or
    google::cloud::storage::v1. We apologize if this causes you inconvenience.

Other Changes:

  • feat: add support for iam conditions (#3497)
  • bug: express libcurl version in hex (#3487)
  • bug: check curl connection before unpausing (#3485)
  • feat: allow domain named buckets in signed URLs v4 (#3463)
  • feat: implement virtual hostname V4 signatures
  • feat: add configuration options to set the SSL root of trust (#3455)
  • doc: add doxygen comments for ParallelUploadFile (#3448)
  • feat: support x-goog-content-sha256 for V4 signed URLs (#3435)

Bigtable Changes

BREAKING CHANGES

  • fix!: moved IAM-related symbols to the correct inlined namespace (#3453)
    Most users should not notice any difference, but those that explicitly referenced
    symbols through the google::cloud::bigtable::v0 namespace may need to switch
    to google::cloud::bigtable (the recommended approach) or
    google::cloud::bigtable::v1. We apologize if this causes you inconvenience.

Other Changes

  • None

v0.20.0 Release

02 Mar 17:54
52b4edc

Choose a tag to compare

Storage Changes

  • feat: implement resumable parallel file uploads (#3389) - allow applications
    to use multiple threads to upload large files, achieving throughput in excess
    of 1GiB/s. With this change applications can restart such uploads even if the
    application restarts.
  • chore: upgrade testbench to Python 3 (#3402) - you will need to have Python 3
    installed to run the integration tests.

Bigtable Changes

  • No changes to the Bigtable client in this release.

v0.19.0 Release

12 Feb 04:13
394fe02

Choose a tag to compare

Bigtable changes

  • fix: correct environment handling in client_options_test (#3374)
  • chore: update g-c-cpp-common to v0.19.0 (#3384)
  • chore: upgrade to cpp-cmakefiles v0.4.1 (#3372)

GCS changes

  • chore: update g-c-cpp-common to v0.19.0 (#3384)
  • feat: implement ParallelUploadPersistentState (#3382)
  • refactor: create ParallelUploadStateImpl (#3379)
  • refactor: ScopedDeleter doesn't require metadata (#3380)

v0.18.0 Release

05 Feb 21:42
281c442

Choose a tag to compare

Bigtable changes

  • docs: add examples of different credential classes for bigtable
  • feat: use Bigtable direct path if configured (#3338)

GCS changes

BREAKING CHANGE

  • fix!: insert logging layer only if requested (#3349)

Other Changes:

  • fix: handle completed uploads in UploadChunk (#3348)
  • fix: use ::testing::TempDir for test files (#3345)
  • fix: remove debug log from benchmark output (#3341)
  • test: allow specifying dir in parallel upload BM (#3339)
  • feat: generate plots for parallel upload benchmark (#3336)
  • doc: some fixes for storage client docs (#3332)
  • feat: improve storage_throughput_benchmark (#3330)
  • cleanup: remove tmpnam (#3325)
  • test: don't build benchmarks without tests (#3322)
  • feat: implement Delimiter option for ListObjects (#3320)
  • docs: document parallel uploads design (#3321)
  • test: implement a benchmark for parallel uploads (#3302)
  • fix: handle CURLE_GOT_NOTHING as retryable (#3316)
  • feat: benchmark reading many small chunks (#3313)

v0.17.0 Release

07 Jan 19:34
f3e9df6

Choose a tag to compare

File Checksums

Extension SHA256 checksum
.tar.gz d67fed328d82aa404c3ab8f52814914f419a673573e3bbd98b4e6c405ca3cd06
.zip b2fc2091ecb7393294dfdbeb8ecc4751f313e6f0e68b911c32646edba7ddc489
  • Bigtable changes

    • feat: new functions to create Chain and Interleave filters from ranges of Filter objects
  • GCS changes

    • BREAKING CHANGE
      • feat: move creating prefix marker to ComposeMany (#3306)
    • feat: implement parallel uploads. For large files this can improve the upload
      bandwidth by a factor of 20. Note that in this release such uploads cannot be
      resumed after a program restart. (#3279)
    • feat: support optionsRequestedPolicyVersion query parameter in
    • fix: setting options in requests accepts crefs (#3287)

v0.16.0 Release

05 Dec 23:49
53acefa

Choose a tag to compare

File Checksums

Extension SHA256 checksum
.tar.gz e86a7190e87371259083595d756399f494b2257706a2b773c2917ec796f41d9a
.zip 69b3340116d21e9f59b93d174a2a11ef107c66f7b5d71704e329f4daf6b9a9ae
  • Bigtable changes

    • feat: implement Bigtable sync vs. async benchmark (#3276)
    • fix: detect duplicate cluster ids in bigtable::InstanceConfig (#3262)
    • bug: use CalculateDefaultConnectionPoolSize in set_connection_pool_size (#3261)
  • GCS changes

    • fix: add logic to ObjectWriteStreambuf for handling jumps in upload ranges to fix #3280 (#3283)
    • bug: fix error messages in resumable sessions (#3263)

v0.15.0 Release

05 Nov 19:47
e60c67a

Choose a tag to compare

File Checksums

Extension SHA256 checksum
.tar.gz 23602261630556e6c6283fea300075b40d4711e47ad9627423b01258784247ca
.zip 43312d3c6bbca6f8e4d39ae5a805c7d597915dfd478c360dae3029a13094a59d
  • Build changes

    • BREAKING CHANGE: The common libraries have been moved
      to the google-cloud-cpp-common repository.
      While this may not be a technically breaking change (the API and ABI
      remain unchanged, the include paths are the same), it will require
      application developers to change their build scripts.
    • Submodule builds no longer supported.
  • Dependency updates

    • Upgraded cmake-format to 0.6.0. #3211
    • Upgraded gRPC to 1.24.3 #3217
    • Upgraded googletest to 1.10.0 #3201
  • Bigtable changes

    • Pass along error message in Table::Apply retry loop #3208
  • GCS changes

    • Implement ComposeMany to efficiently compose more than 32 GCS objects #3016
    • Implement a function to delete all the objects that match a given prefix #3016
    • Support uniform bucket level access #3186
    • Use separate policy instances for each UploadChunk request #3213