What's Changed
- We stabilized the APIs for all client libraries. This required a number of breaking changes.
- Our serialization and deserialization code now passes the ProtoJSON conformance tests.
- For the most part this required accepting a number of messages that may be generated by other ProtoJSON implementations, but not by Google Cloud.
- We ran a test performing over 1 billion calls to GCP without errors, leaks, or crashes.
- The
gax::error::Errortype is stabilized and supports adding new kinds of errors without breaking applications.- We introduced specific error types where needed.
- To query the error "kind" you can use predicates on the error, such as
err.is_timeout() - We included troubleshooting guides with each error kind.
- The auth library gained support for service account impersonation.
- The auth library is gaining support for workload identity federation.
- We disabled the default features in all our dependencies and only enable the features we use.
- A number of new libraries.
- feat(dataform): generate library by @suzmue in #2176
- feat(cloudquotas/v1): generate library by @coryan in #2258
- feat(managedkafka/v1): generate library by @coryan in #2449
- feat(devicestreaming): generate library by @coryan in #2500
- feat(storagebatchoperations/v1): enable publication by @coryan in #2502
- cleanup!: errors do not need to be
PartialEqby @coryan in #2158 - docs: improve request builder examples by @coryan in #2143
- feat!: split setters for optional fields by @coryan in #2157
- cleanup!: do not re-export
lro::Pollerby @coryan in #2164 - doc(wkt): improve docs for
Structand friends by @coryan in #2169 - fix(wkt)!: preserve sources of errors by @coryan in #2168
- docs(wkt): add more examples by @coryan in #2170
- docs(wkt): call out feature flags in
Durationby @dbolduc in #2179 - feat(wkt)!:
Timestampcan implementCopyby @coryan in #2190 - feat(wkt)!:
Durationcan implementCopyby @coryan in #2189 - feat!: make errors
#[non_exhaustive]by @coryan in #2191 - feat(wkt): implement
TryFrom<&String>by @coryan in #2188 - cleanup(wkt)!: rename
Any::functions by @coryan in #2196 - cleanup!: better mapping for enum value names by @coryan in #2192
- cleanup(wkt)!:
Timestampalways serialize by @coryan in #2195 - docs(gax): improve some examples by @coryan in #2207
- cleanup(deps)!: disable default features by @coryan in #2225
- cleanup(gax)!: use builder for
ServiceErrorby @coryan in #2227 - cleanup(gax)!: use
HeaderMapfor headers by @coryan in #2229 - docs(gax)!: hide policy functions by @coryan in #2241
- fix(auth): Improve Error Msg when no MDS is present by @sai-sunder-s in #2187
- fix(auth): allow token exchange without auth info by @alvarowolfx in #2218
- docs: fix typos in README document by @chrischiedo in #2257
- fix(gax): correct
source()inCredentialsErrorby @coryan in #2268 - cleanup(auth)!: separate type for build errors by @coryan in #2264
- fix(gax): handle unknown error details by @coryan in #2271
- feat!: use
gax::client_builder::Errorby @coryan in #2281 - cleanup(gax)!: split policy error types by @coryan in #2265
- cleanup(gax)!: hide
CredentialsErrordetails by @coryan in #2290 - cleanup(gax)!: new error type by @coryan in #2267
- feat: different error kind for timeouts by @coryan in #2301
- feat(auth): Enable quota project setting via env variable by @harkamaljot in #2304
- feat(auth): add external account for workload identity federation by @alvarowolfx in #2294
- docs(gax): improve
Errordocumentation by @coryan in #2329 - docs: avoid private functions in user guide by @coryan in #2332
- feat: new error kind for deserialization by @coryan in #2331
- impl(generator/rust): support
boolkeys in maps by @coryan in #2345 - feat(gax): new error kind for serialization by @coryan in #2336
- feat(auth): handle external account from credentials builder by @alvarowolfx in #2319
- fix(wkt):
FieldMaskserialization by @coryan in #2348 - refactor(gax): capture prev error in retry loop by @dbolduc in #2351
- fix(gax): do not sleep past overall timeout by @dbolduc in #2353
- docs: improve LRO policy guide by @coryan in #2333
- impl(wkt): better validation for
Anyby @coryan in #2359 - cleanup(generator/rust): use
Error::ser()by @coryan in #2358 - impl(wkt): parse floats from strings by @coryan in #2344
- feat(auth): add support for executable sourced credentials by @alvarowolfx in #2356
- fix(auth): exec source cred not being detected properly by @alvarowolfx in #2420
- feat(gax): error kind for exhausted policies by @coryan in #2424
- feat: split libraries with more than 15 clients by @coryan in #2444
- feat(auth): Impersonated Service Account Credentials by @sai-sunder-s in #2452
- feat(gax): introduce
BindingErrorby @dbolduc in #2487 - feat(gax)!: preserve retry loop errors by @coryan in #2456
- refactor!: rename
gax::loop_state::LoopStateby @coryan in #2498
Full Changelog: v0.5.0...v0.6.0