Repository navigation
General Availability (GA)
Version 0.4.0 marks the General Availability of these libraries. These 0.x releases are supported for production use and will receive fixes as necessary, though we reserve the right to introduce minor breaking changes prior to releasing 1.0.
What's Changed
- fix(storage)!: move URL and Data convenience overloads to StorageProtocol extension by @chingor13 in #1102
- feat: reduce protocol bloat by @coryan in #1054
- chore: update lockfile circa 2026-09-23 by @coryan in #1105
- refactor(wkt)!: prefix all GoogleWKT types with WKT by @chingor13 in #1104
- fix(wkt): use struct for
WKTRecursiveby @coryan in #1113 - fix(gax)!: remove dangerous policy initializers by @coryan in #1111
- cleanup(storage)!: remove unusable methods by @coryan in #1110
- chore!: update librarian with new LRO helpers by @coryan in #1107
- fix(storage)!: dangerous
AlwaysResumeinitializer by @coryan in #1112 - chore!: update librarian with
ByItemspagination helpers by @coryan in #1108 - fix(gax): make PaginatedResponseSequence a Sendable struct by @chingor13 in #1114
- chore: update librarian with no streaming functions by @coryan in #1115
- feat: update librarian with Hashable generated enums by @chingor13 in #1125
- fix(compute)!: use
GoogleRpc.Codefor errors by @coryan in #1122 - chore!: update librarian w/ fewer LRO overloads by @coryan in #1116
- fix!: rename generated oneof enums by @nolanleastin in #1127
- feat: update librarian with strict-memory-safety in generated packages by @chingor13 in #1131
- refactor(storage)!: rename ReadObjectTask to ReadObjectHandle and integrate structured Task cancellation by @chingor13 in #1126
- refactor(storage): move ReadObjectHandle into its own file by @chingor13 in #1132
- chore(deps): bump github.com/apple/swift-log from 1.15.0 to 1.15.1 by @dependabot[bot] in #1161
- chore(deps): bump github.com/apple/swift-nio from 2.102.0 to 2.103.0 by @dependabot[bot] in #1160
- refactor(storage)!: remove legacy WriteObjectOptions.validation and ChecksumValidation by @chingor13 in #1157
- fix(storage)!: preserve RequestError in ReadObjectError.resumeFailed by @chingor13 in #1158
- fix(storage)!: remove unreachable WriteObjectError cases and rethrow CancellationError by @chingor13 in #1159
- docs(gax): update attempt timeout description by @coryan in #1163
- feat(gax,wkt)!: conform PollableOperation to Sendable and require Sendable ResponseType by @chingor13 in #1134
- cleanup(auth)!: remove
universeDomain()method by @coryan in #1171 - feat: enable
NonisolatedNonsendingByDefaultby @coryan in #1156 - refactor(gax)!: use
structfor policies by @coryan in #1169 - fix: missing
<name>PollingUntilDone()in protocol by @coryan in #1164 - fix(gax)!: nanoseconds are
Int32by @coryan in #1166 - cleanup(storage)!: prefer generated types by @coryan in #1173
- feat(wkt): make WKTFieldMask.paths mutable and default to empty by @chingor13 in #1174
- refactor(storage)!: use
enumforBucketNameby @coryan in #1172 - chore!: update librarian with discovery enum improvement by @coryan in #1165
- fix(storage)!: remove unvalidated CustomerEncryptionKeyOptions.init(algorithm:keyBase64:keyHashBase64:) by @chingor13 in #1178
- test(storage): deflake integration tests by @coryan in #1175
- refactor(storage)!: use
structfor retry policy by @coryan in #1170 - fix(auth): omit scopes field in user token refresh when scopes is empty by @chingor13 in #1181
- feat(wkt): duration, timestamp are hashable+comparable by @coryan in #1177
- chore: update librarian with docindex race fix by @coryan in #1183
- build: opt-in to -strict-memory-safety SE-0458 by @chingor13 in #1068
- chore!: update library with
some AsyncSequenceby @coryan in #1182 - refactor(auth)!: unify scopes parameter types across CredentialsConfiguration by @chingor13 in #1185
- cleanup(storage)!: consistent types for generation by @coryan in #1188
- cleanup(storage)!: consistent type for bytesRead by @coryan in #1189
- cleanup(storage)!: a safer
ReadObjectRangeby @coryan in #1191 - refactor(storage)!: introduce ReadObjectHandleProtocol for mockable readObject by @chingor13 in #1208
- docs: default package for compute by @coryan in #1209
- refactor(storage): simplify internals by @coryan in #1210
- chore: new skill to fix issues by @coryan in #1220
- fix!:
*PollingUntilDone()does the polling by @coryan in #1225 - docs: document generated code style by @coryan in #1219
- cleanup(wkt)!: remove redundant initializers by @coryan in #1222
- fix(wkt)!: gate conversion helpers behind SPI by @coryan in #1224
- fix(wkt)!: use URL instead of Url by @coryan in #1223
- chore: update librarian with auto-generated by @coryan in #1221
- ci: speed up unit tests by @coryan in #1229
- ci(gcb): speed up integration tests by @coryan in #1230
- refactor(storage)!: make WriteObjectOptions and ReadObjectOptions properties optional by @chingor13 in #1211
- fix(storage)!: align ReadObjectMetadata fields by @coryan in #1233
- feat(gax)!: add
PollingBackoffPolicyby @coryan in #1232 - chore!: redundant optional in oneofs by @coryan in #1231
- fix(auth)!: remove unsupported ExternalAccountConfig.targetPrincipal by @chingor13 in #1241
- refactor(auth)!: rename to .externalAccount by @chingor13 in #1242
- chore: update librarian with better READMEs by @coryan in #1228
- fix(auth)!: remove .adc environment parameter by @chingor13 in #1243
- refactor!: extract GoogleGaxGRPC and GoogleWKTConvert into separate packages by @chingor13 in #1234
- feat(auth)!: strongly-typed SubjectTokenType for external accounts by @nolanleastin in #1246
- docs: update local development guidelines by @coryan in #1247
- feat(gax): support headers in RequestOptions by @coryan in #1226
- feat(storage): idempotent admin operations by @coryan in #1227
- fix(auth)!: strongly typed client ID/secret pairs by @nolanleastin in #1245
- docs(storage): idempotency guide and workflows by @coryan in #1278
- chore: update googleapis SHA circa 2026-09-28 by @chingor13 in #1276
- fix(gax)!: make policy initializers internal by @coryan in #1280
- fix(gax)!: remove LinearBackoffPolicy by @chingor13 in #1282
- refactor(auth): remove ClientAuthentication typealias by @nolanleastin in #1279
- fix(gax)!: use HTTPHeaders in HTTPDetails by @chingor13 in #1283
- fix(gax)!: rename continueOnIoErrors() to continueOnIO() by @nolanleastin in #1286
- ci: fix docs shard 0 build by @coryan in #1290
- fix(gax)!: rename Aip194 to AIP194 by @coryan in #1281
- fix(auth)!: make accessSpecifier non-optional by @chingor13 in #1248
- fix(gax)!: make PaginatedResponseSequence SPI by @chingor13 in #1289
- fix(gax): use InProgressResult enum for PollingErrorPolicy.onInProgress by @nolanleastin in #1288
- fix(gax)!: make binding error types immutable by @coryan in #1292
- fix(gax)!: align RetryThrottlerError names by @coryan in #1287
- fix(gax)!: hide GoogleRpc.Code HTTP conversions by @coryan in #1284
- docs(wkt): add SPI shields and fix type names by @coryan in #1296
- docs(pkgs): add SPI shields to remaining pkgs by @coryan in #1293
- docs(auth): add SPI shields and expand overview by @coryan in #1295
- docs(gax): add SPI shields and expand overview by @coryan in #1294
- docs(storage): improve README with quickstart by @coryan in #1307
- chore(storage): regenerate conversions with internal GoogleGax SPI by @nolanleastin in #1291
- chore: release circa 2026-09-28 by @chingor13 in #1285
Full Changelog: 0.3.0...0.4.0