Releases: googleapis/google-cloud-cpp
v1.15.0 Release
Bigtable
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 1to refresh sessions (#4377) - fix(spanner): use correct name for test (#4373)
Common libraries
v1.14.0 Release
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
v1.13.0 Release
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
v0tov1, moving all the
symbols fromgoogle::cloud::v0togoogle::cloud::v1. Applications that
explicitly referred to the inlined namespace would be affected by this change.
That is, code that usesgoogle::cloud::v0::Fooinstead of
google::cloud::Foowould 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)
Thegoogle/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 fromgoogle::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 alongnow 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)
Thegoogle/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
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 thegoogle::cloud::storage::v0namespace may need to switch
togoogle::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 thegoogle::cloud::bigtable::v0namespace may need to switch
togoogle::cloud::bigtable(the recommended approach) or
google::cloud::bigtable::v1. We apologize if this causes you inconvenience.
Other Changes
- None
v0.20.0 Release
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
v0.18.0 Release
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
File Checksums
| Extension | SHA256 checksum |
|---|---|
| .tar.gz | d67fed328d82aa404c3ab8f52814914f419a673573e3bbd98b4e6c405ca3cd06 |
| .zip | b2fc2091ecb7393294dfdbeb8ecc4751f313e6f0e68b911c32646edba7ddc489 |
-
Bigtable changes
- feat: new functions to create
ChainandInterleavefilters from ranges ofFilterobjects
- feat: new functions to create
-
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)
- BREAKING CHANGE
v0.16.0 Release
File Checksums
| Extension | SHA256 checksum |
|---|---|
| .tar.gz | e86a7190e87371259083595d756399f494b2257706a2b773c2917ec796f41d9a |
| .zip | 69b3340116d21e9f59b93d174a2a11ef107c66f7b5d71704e329f4daf6b9a9ae |
-
Bigtable changes
-
GCS changes
v0.15.0 Release
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.
- BREAKING CHANGE: The common libraries have been moved
-
Dependency updates
-
Bigtable changes
- Pass along error message in
Table::Applyretry loop #3208
- Pass along error message in
-
GCS changes