Releases: googleapis/google-cloud-cpp
v2.2.0
New Libraries
We are introducing 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.
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
- fix(bigtable):
DataConnectionrefreshes channels (#9718) - fix(bigtable): Use retry policy on all streams with failing mutations (#9706)
- feat(bigtable): per-operation Options (#9627) (#9623)
Dataproc
- feat(dataproc): mark the dataproc services as location dependent (#9722)
Spanner
- feat(spanner): fine-grained access control (#9669)
- feat(spanner): equality for copyable classes (#9648)
Storage
- We have a new implementation for HTTP requests. This new implementation
provides comparable download performance, and improves some uploads. See
[#9659] for details. We have rigorously tested this new implementation. In the
unlikely event that this new implementation breaks your application, we have
included an environment variable to revert to the legacy implementation. Set
GOOGLE_CLOUD_CPP_STORAGE_USE_LEGACY_HTTPto any value to use the legacy
implementation. We are planning to remove the legacy code and the
GOOGLE_CLOUD_CPP_STORAGE_USE_LEGACY_HTTPenvironment variable by 2022-12. - feat(storage): improve error messages on stalled uploads (#9744)
- feat(storage): equality for Native IAM types (#9649)
- feat(storage): SA credentials default to self-signed JWTs (#9629)
Common Libraries
v2.1.0
New Libraries
We are introducing 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.
Assured Workloads
- fix(assuredworkloads): reenable on windows (#9467)
Bigtable
- fix(bigtable): the mocks library is no longer header-only (#9568)
Cloud Asset
- fix(asset): reenable on macOS (#9468)
Pub/Sub
- fix(pubsub): missing subscription name in lease extensions (#9523)
- feat(pubsub): exactly-once delivery (#9436)
Spanner
- fix(spanner): avoid evaluation-order issue in function arguments (#9452)
Stackdriver Debugger
- doc(debugger): announce deprecation (#9552)
Storage
- feat(storage): experimental options to tune stall timeouts (#9593)
- feat(storage): add debugging headers to
ObjectWriteStream(#9580) - fix(storage): no char for
std::uniform_int_distribution(#9509) - feat(storage): support Bucket custom placement config (#9481)
Common Libraries
v2.0.1
v2.0.0
BREAKING CHANGES
As previously announced, google-cloud-cpp now requires C++ >= 14. This is
motivated by similar changes in our dependencies, and because C++ 14 has been
the default C++ version in all the compilers we support for several years.
We think this change is large enough that deserves a major version bump to
signal the new requirements.
If you are already using C++ >= 14 you need to make no changes. If you are
using C++11: please consider updating as soon as possible. To ease your
transition to C++ >= 14 we will, if requested, backport critical fixes to
v1.42.0 until 2023-07-01. After 2023-07-01 we will drop all support to v1.42.0
and earlier versions.
Debian 9 (Stretch) is EOL
Debian 9 (Stretch) reached EOL on 2022-06-30. Therefore, we have stopped testing
or supporting this distribution. This was the last distribution we supported
that required GCC < 7.3, and/or CMake < 3.10. Starting with this release we
require CMake >= 3.10, and only test with GCC >= 7.3.
OTHER CHANGES
Bigtable
We introduced a new constructor for Table which accepts a
DataConnection instead of a DataClient. The DataConnection is a new
interface that more closely matches the client surface of Table. Read more
about *Connection classes in our
Architecture Design document.
What are the benefits of DataConnection?
The new API greatly simplifies mocking. Every Table::Foo(..) call has an
associated DataConnection::Foo(...) call. This allows you to set expectations
on the exact values returned by the client call. See
Mocking the Cloud Bigtable C++ Client for a complete
example on how to mock the behavior of Table with
bigtable_mocks::MockDataConnection.
The new DataConnection API offers more consistency across our libraries. It
also enables the use of some common library features, such as our
UnifiedCredentialsOption. Also, any new features will be added to
the DataConnection API first.
Do I need to update my code?
No. If the benefits are not appealing enough, you do not need to update your
code. All code that currently uses DataClient will continue to function as
before. This includes uses of testing::MockDataClient.
However, if you are using testing::MockDataClient to mock the behavior of
Table in your tests:
- Be aware that we have announced our intention to remove classes derived from
DataClienton or around 2023-05. Your tests will break then. - Please consider using
bigtable_mocks::MockDataConnection. It will greatly
simplify your tests.
How do I update existing DataClient code?
See Migrating from DataClient to DataConnection.
- doc(bigtable): how to mock the Data API (#9415)
- feat(bigtable): modern
Tableconstructor (#9403) - feat(generator): support explicit routing headers (#9368)
- fix(bigtable)!: pass app profile id to connection as options (#9388)
- feat(bigtable): add
AppProfileIdOption(#9382) - feat(bigtable): table resource name as a class (#9377)
- feat(bigtable): instance name as a class (#9374)
- feat(bigtable): introduce
MockDataConnectionandMakeTestRowReader(#9335) - feat(bigtable): introduce
DataConnection(#9323) - feat(bigtable): modern Data API policy options (#9320)
Pub/Sub
- doc(pubsub): improve documentation for
*AckHandler(#9404) - feat(pubsub): update subscription builders (#9326)
Common Libraries
- fix(generator): handle explicit routing params for nested fields (#9408)
- feat(common): truncation support for plain strings in the RPC log (#9351)
New Libraries
We are introducing a new client library. While we do not anticipate any API
changes to this library before declaring it GA, we are releasing it early in
case it elicits some feedback that requires changes.
v1.42.0
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.
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
v1.41.0
Bigtable
- fix(bigtable): remove unnecessary sleeps from BulkApply (#9091)
- feat(bigtable): configure
*Clients withEndpointOption(#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
HmacKeyrequests acceptUserProject(#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 anyEndpointOptionset 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
ConnectionOptionsmember 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
v1.39.2
v1.40.1
v1.40.0
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.