Releases: googleapis/google-cloud-cpp
v2.6.0
BigQuery
The library has been expanded to include the following services:
IAM
- The library has been expanded to include the IAM v2 API. This API includes
support for IAM Deny policies.
Pub/Sub
- fix: add missing includes (#10421)
Speech
- fix: remove duplicate protos (#10486)
Storage
- fix(storage): better error code for CreateBucket() and 409 errors (#10480)
- fix: add missing includes (#10421)
- fix(storage): scopes should disable self-signed JWTs (#10369)
- doc(storage): document all
oauth2
names as deprecated (#10352)
Text-to-Speech
- fix: remove duplicate protos (#10486)
Trace
- fix: remove duplicate protos (#10486)
Common Libraries
v2.5.0
NOTE
- feat!: We have dropped the experimental marker from bidirectional streaming APIs (#10340). The APIs in question are:
bigquery::BigQueryWriteClient::AsyncAppendRows()
dialogflow_cx::SessionsClient::AsyncStreamingDetectIntent()
dialogflow_es::ParticipantsClient::AsyncStreamingAnalyzeContent()
dialogflow_es::SessionsClient::AsyncStreamingDetectIntent()
logging::LoggingServiceV2Client::AsyncTailLogEntries()
speech::SpeechClient::AsyncStreamingRecognize()
If you use any of these APIs, you must drop the ExperimentalTag
in your code, accordingly.
New Libraries
We are happy to announce the following GA library. Unless specifically noted,
the APIs in these libraries are stable, and are ready for production use.
Bigtable
- samples(bigtable): build admin samples with cmake (#10246)
- doc(bigtable): create page for configuration options (#10197)
Logging
- feat(logging): generate
AsyncWriteLogEntries()
(#10194)
Pub/Sub
- feat(pubsub): add option to override subscription (#10327)
- feat(pubsub): blocking pulls (#10317)
- doc(pubsub): create page for configuration options (#10198)
Spanner
- doc(spanner): deprecate old MakeConnection() overloads (#10284)
- fix(spanner): tweak the tag name of a FGAC sample (#10266)
- samples(spanner): build admin samples with cmake (#10247)
- feat(spanner): tests and samples for DML RETURNING (#10233)
- doc(spanner): create page for configuration options (#10199)
Speech
- feat(speech): generate speech v2 (#10228)
Storage
- doc(storage): create page for configuration options (#10200)
Common Libraries
- doc: another pass on authentication components (#10300)
- fix(common): create default gRPC credentials only if needed (#10280)
- doc: group client functions (#10268)
- doc: use qualified client name in samples (#10241)
- fix(common): avoid globals for easier DLLs (#10212)
- feat: support a pre-release component of the version string (#10181)
- doc(common): add Doxygen group for common options (#10192)
- doc(common): add overview section (#10193)
- doc: better guidance for authentication samples (#10184)
v2.4.0
New Libraries
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.
In addition, these existing libraries are now GA:
BigQuery
- doc: add endpoint override snippets to generated libs (#10129)
- feat(bigquery): add migration service (#10034)
Bigtable
- doc(bigtable): add
*Client
samples (#10149) - feat(bigtable): support
GOOGLE_CLOUD_ENABLE_DIRECT_PATH
(#9978)
IAM
- doc: add endpoint override snippets to generated libs (#10129)
Pub/Sub
- doc(pubsub): samples for endpoint and auth (#10136)
- feat(pubsub): install pubsub_mocks pkg (#10008)
- feat(pubsub): implement blocking publisher (#10055)
- feat(pubsub): implement per-call options for
Subscriber
(#10043) - fix(pubsub): limit
ModifyAckDeadlineRequest
size (#10032) - fix(pubsub): faster shutdowns for
Publisher
(#9991)
Spanner
- doc(spanner): add
*Client
samples (#10145) - feat(spanner): add support for RowStream::RowsModified() (#10102)
- feat(spanner): support for the PG.JSONB data type (#10098)
Storage
- doc(storage): common initialization examples (#10107)
- fix(rest): too many debug headers (#10054)
- fix(rest): return complete payloads for errors (#10051)
- feat(storage): support
Autoclass
feature (#10003) - feat(storage): faster
InsertObject()
uploads (#9997) - fix(storage): respect MIME message boundary size limits (#9965)
Common Libraries
- feat(generator): generate authentication example (#10138)
- doc: workaround Doxygen formatting quirk (#10137)
- doc: add endpoint override snippets to generated libs (#10129)
- feat(generator): generate simple samples for
*Client
(#10118) - feat: add mock library w/ StreamRange (#9998)
- doc(common): make authentication docs easier to find (#10110)
- fix: configure context in async retries (#10100)
- doc: document when GrpcNumChannelsOption applies (#10000)
- feat(generator): make idempotency policy non-abstract (#9981)
- fix(common): preserve
ErrorInfo
on retry errors (#9971)
v2.3.0
New Libraries
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.
BigQuery
The library has been expanded to include Analytics Hub, an API that facilitates data sharing within and across organizations. (#9882)
Spanner
- fix(spanner): remove session from pool upon "not found" refresh failure (#9954)
- feat(spanner): add support for Customer Managed Multi-Region (CMMR) read-only replicas at instance creation time (#9872)
Storage
- feat(storage): easier mocks for
HmacKeyMetadata
(#9949) - feat(storage): easier mocks for
*AccessControl
(#9910) - feat(storage): easier mocks with
ObjectMetadata
(#9899) - fix(storage): decay type before testing supported-options membership (#9893)
- feat(storage): easier mocks with
BucketMetadata
(#9886) - fix(storage): error message for resumable uploads (#9855)
- feat(storage): release
*StallMinimumThroughputOption
(#9813) - fix(storage): no workaround needed with libc++ and MSVC (#9768)
Common Libraries
- fix(common): better defaults for curl initialization (#9798)
v1.42.1 Release
What's Changed
- Update Protobuf version in Bazel configuration to v21.6 (#9863)
Full Changelog: v1.42.0...v1.42.1
v2.2.1 Release
What's Changed
- Update Protobuf version in Bazel configuration to v21.6 (#9856)
Full Changelog: v2.2.0...v2.2.1
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):
DataConnection
refreshes 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_HTTP
to any value to use the legacy
implementation. We are planning to remove the legacy code and the
GOOGLE_CLOUD_CPP_STORAGE_USE_LEGACY_HTTP
environment 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
DataClient
on 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
Table
constructor (#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
MockDataConnection
andMakeTestRowReader
(#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.