Changelog

PyPI History

2.33.0 (2025-10-30)

Features

  • Add AwsKinesisFailureReason.ApiViolationReason (ac68093)

  • Add tags to Subscription, Topic, and CreateSnapshotRequest messages for use in CreateSubscription, CreateTopic, and CreateSnapshot requests respectively (ac68093)

  • Annotate some resource fields with their corresponding API types (ac68093)

Bug Fixes

  • Deprecate credentials_file argument (ac68093)

Documentation

  • A comment for fieldreceived_messages in message.google.pubsub.v1.StreamingPullResponse is changed (ac68093)

2.32.0 (2025-10-28)

Features

Bug Fixes

2.31.1 (2025-07-28)

Bug Fixes

  • Change Log Severities for Terminated Streams (#1433) (3a3aa79)

  • Propagate Otel Context to Subscriber Callback if Provided (#1429) (b0f6f49)

2.31.0 (2025-06-26)

Features

  • Add MessageTransformationFailureReason to IngestionFailureEvent (#1427) (8ab13e1)

Bug Fixes

  • Surface Fatal Stream Errors to Future; Adjust Retryable Error Codes (#1422) (e081beb)

2.30.0 (2025-06-07)

Features

  • Add SchemaViolationReason to IngestionFailureEvent (#1411) (c046ca2)

2.29.1 (2025-05-23)

Bug Fixes

  • Remove setup.cfg configuration for creating universal wheels (#1376) (60639c4)

Documentation

  • sample: Add samples for topic and subscription SMTs (#1386) (4d072e0)

  • Update documentation for JavaScriptUDF to indicate that themessage_id metadata field is optional instead of required (#1380) (be90054)

  • Update readme links (#1409) (77ba05d)

2.29.0 (2025-03-19)

Features

  • Add REST Interceptors which support reading metadata (4363179)

  • Add support for opt-in debug logging (4363179)

  • Deprecateenabled field for message transforms and adddisabled field (4363179)

Bug Fixes

  • Allow logs to propagate upstream for caplog testing (#1374) (fa39b0e)

  • Allow Protobuf 6.x (#1369) (c95b7a5)

  • Fix typing issue with gRPC metadata when key ends in -bin (4363179)

Documentation

  • A comment for fieldcode in message.google.pubsub.v1.JavaScriptUDF is changed (4363179)

  • Add samples and test for ingestion from Kafka sources (#1354) (820f986)

  • Deprecateenabled field for message transforms and adddisabled field (4363179)

  • samples: Increase example max_bytes setting for cloud storage subscriptions to encourage more performant subscribe (#1324) (cb760a7)

2.28.0 (2025-01-30)

Features

  • Add support for message transforms to Topic and Subscription (#1274) (e5e2f3f)

Bug Fixes

2.27.3 (2025-01-24)

Bug Fixes

  • Stop using api_core default timeouts in publish since they are broken (#1326) (ba2c2ee)

2.27.2 (2025-01-06)

Bug Fixes

  • Handle TransportError Exceptions thrown from gapic_publish (#1318) (0e058c7)

2.27.1 (2024-11-08)

Bug Fixes

2.27.0 (2024-11-02)

Features

Bug Fixes

  • Mark test_streaming_pull_max_messages flaky (#1288) (d6635a0)

2.26.1 (2024-10-10)

Documentation

2.26.0 (2024-10-09)

Features

  • Add ingestion Cloud Storage fields and Platform Logging fields to Topic (#1248) (a7a4caa)

2.25.2 (2024-09-30)

Documentation

  • Add command line args for OpenTelemetry Subscribe sample (#1265) (0ff7f2a)

2.25.1 (2024-09-29)

Bug Fixes

  • Update the requirements.txt for samples directory (#1263) (5cce8b1)

2.25.0 (2024-09-28)

Features

2.24.0 (2024-09-24)

Features

Bug Fixes

2.23.1 (2024-09-09)

Bug Fixes

  • Replace asserts with None checks for graceful shutdown (#1244) (ced4f52)

2.23.0 (2024-07-29)

Features

  • Add max messages batching for Cloud Storage subscriptions (#1224) (91c89d3)

2.22.0 (2024-07-06)

Features

  • Add service_account_email for export subscriptions (ec0cc34)

  • Add use_topic_schema for Cloud Storage Subscriptions (ec0cc34)

2.21.5 (2024-06-20)

Bug Fixes

2.21.4 (2024-06-18)

Documentation

  • samples: Add code sample for optimistic subscribe (#1182) (d8e8aa5)

2.21.3 (2024-06-10)

Bug Fixes

  • Race condition where future callbacks invoked before client is in paused state (#1145) (d12bac6)

  • Suppress warnings caused during pytest runs (#1189) (cd51149)

  • Typecheck errors in samples/snippets/subscriber.py (#1186) (3698450)

2.21.2 (2024-05-30)

Bug Fixes

2.21.1 (2024-04-04)

Bug Fixes

  • Set timeout to infinite for publishing with ordering keys enabled (#1134) (67daf3c)

2.21.0 (2024-03-26)

Features

  • Add custom datetime format for Cloud Storage subscriptions (#1131) (4da6744)

2.20.3 (2024-03-21)

Documentation

2.20.2 (2024-03-15)

Documentation

  • samples: Add Create Topic with Kinesis IngestionDataSourceSettings Sample (#1120) (83dc9ff)

  • samples: Update Topic with Kinesis Ingestion Settings (#1123) (e0e2d83)

2.20.1 (2024-03-06)

Bug Fixes

2.20.0 (2024-03-05)

Features

  • Add include_recaptcha_script for as a new action in firewall policies (#1109) (54041a5)

Documentation

  • samples: Correct type and description oftimeout parameter in subscriber quickstart (#1051) (141a473)

2.19.8 (2024-03-05)

Bug Fixes

  • deps: Exclude google-auth 2.24.0 and 2.25.0 (#1102) (165c983)

2.19.7 (2024-02-24)

Bug Fixes

2.19.6 (2024-02-23)

Bug Fixes

2.19.5 (2024-02-22)

Bug Fixes

2.19.4 (2024-02-09)

Bug Fixes

  • diregapic: S/bazel/bazelisk/ in DIREGAPIC build GitHub action (#1064) (d56ad12)

2.19.3 (2024-02-08)

Bug Fixes

2.19.2 (2024-02-08)

Bug Fixes

2.19.1 (2024-02-02)

Documentation

  • samples: Swap writer and reader schema to correct places (265f410)

2.19.0 (2023-12-10)

Features

Bug Fixes

  • Useretry_async instead ofretry in async client (#1030) (05dd571)

2.18.4 (2023-09-09)

Documentation

2.18.3 (2023-08-18)

Bug Fixes

  • Make retry policy back off more aggressively for RPCs that retry RESOURCE_EXHAUSTD (#979) (4073b3d)

2.18.2 (2023-08-07)

Bug Fixes

  • Change retry multiplier from 1.3 to 4, for requests that retry Resour… (#971) (e4364d2)

2.18.1 (2023-07-26)

Documentation

  • Clarified where ordering_key will be written if write_metadata is set (#965) (3d95034)

2.18.0 (2023-07-12)

Features

Bug Fixes

  • Add async context manager return types (#944) (a3b2061)

Documentation

  • Tightened requirements on cloud storage subscription filename suffixes (#938) (f54dcd0)

  • Update Community section in README.rst (#945) (dea258c)

2.17.1 (2023-05-23)

Documentation

2.17.0 (2023-05-12)

Features

2.16.1 (2023-05-05)

Bug Fixes

Documentation

2.16.0 (2023-04-06)

Features

  • Enable “rest” transport in Python for services supporting numeric enums (#863) (a80c1d1)

Documentation

  • Fix formatting of request arg in docstring (#894) (ee2ea73)

2.15.2 (2023-03-20)

Documentation

2.15.1 (2023-03-14)

Bug Fixes

  • Set x-goog-request-params for streaming pull request (#884) (0d247e6)

2.15.0 (2023-02-22)

Features

  • Add google.api.method.signature to update methods (3dd43d6)

  • Add temporary_failed_ack_ids to ModifyAckDeadlineConfirmation (3dd43d6)

Bug Fixes

  • Add service_yaml_parameters to py_gapic_library BUILD.bazel targets (3dd43d6)

  • Move global import in publisher sample (#866) (271a46d)

  • Port proto changes (#871) (3dd43d6)

Documentation

  • Clarify BigQueryConfig PERMISSION_DENIED state (3dd43d6)

  • Clarify subscription description (3dd43d6)

  • Fix Pull description (3dd43d6)

  • Fix PullResponse description (3dd43d6)

  • Replacing HTML code with Markdown (3dd43d6)

  • Update Pub/Sub topic retention limit from 7 days to 31 days (3dd43d6)

2.14.1 (2023-02-08)

Bug Fixes

  • Add context manager return types (4f690b9)

Documentation

  • Add documentation for enums (4f690b9)

  • Mark revision_id in CommitSchemaRevisionRequest as deprecated (#861) (09b846d)

2.14.0 (2023-01-18)

Features

  • Add schema evolution methods and fields (9479356)

  • Add support for python 3.11 (9479356)

2.13.12 (2023-01-06)

Bug Fixes

  • deps: Require google-api-core >=1.34.0, >=2.11.0 (060f00b)

  • Drop usage of pkg_resources (060f00b)

  • Fix timeout default values (060f00b)

Documentation

  • samples: Snippetgen should call await on the operation coroutine before calling result (060f00b)

2.13.11 (2022-11-11)

Bug Fixes

  • Remove suboptimal logic in leasing behavior (#816) (f067af3)

2.13.10 (2022-10-14)

Bug Fixes

  • Batch at most 1,000 ack ids per request (#802) (4361e67)

  • deps: Allow protobuf 3.19.5 (#801) (fa23503)

  • Silence invalid_ack_id warnings for receipt modacks (#798) (17feea5)

Miscellaneous Chores

2.13.8 (2022-10-03)

Bug Fixes

2.13.7 (2022-09-22)

Bug Fixes

2.13.6 (2022-08-11)

Bug Fixes

  • deps: allow protobuf < 5.0.0 (#762) (260bd18)

  • deps: require proto-plus >= 1.22.0 (260bd18)

  • set stream_ack_deadline to max_duration_per_lease_extension or 60 s, set ack_deadline to min_duration_per_lease_extension or 10 s (#760) (4444129)

  • Update stream_ack_deadline with ack_deadline (#763) (e600ad8)

2.13.5 (2022-08-10)

Documentation

2.13.4 (2022-07-15)

Bug Fixes

  • Remove bidi modacks on StreamingPull initial request (#738) (1e7d469)

2.13.3 (2022-07-13)

Bug Fixes

  • deps: require google-api-core>=1.32.0,>=2.8.0 (#735) (a5624fb)

2.13.2 (2022-07-08)

Bug Fixes

  • deps: require google-api-core >= 2.8.0 (#726) (c80ad41)

2.13.1 (2022-07-07)

Bug Fixes

2.13.0 (2022-06-06)

Features

  • add BigQuery configuration for subscriptions (#685) (6fa03be)

Bug Fixes

  • add info log for bidi streaming pull ack_deadline requests (#692) (fcb67dd)

  • deps: require protobuf <4.0.0dev (#699) (dcdf013)

Documentation

  • fix changelog header to consistent size (#700) (93f2b62)

2.12.1 (2022-05-11)

Bug Fixes

  • Add emulator support to schema service (#658) (1a07d7c)

  • Handle duplicate acks with streaming pull (#662) (219491e)

  • set min snooze on lease management to .01 sec (#678) (91c6e69)

Documentation

2.12.0 (2022-04-06)

Features

  • increase GRPC max metadata size to 4 MB (#623) (54b9e07)

Bug Fixes

  • mypy errors (#622) (dab13d5)

  • process ErrorInfo / GRPC errors for ack/modack only when exactly-once delivery is enabled (#626) (cc1953b)

2.11.0 (2022-03-09)

Features

  • retry temporary GRPC statuses for ack/modack/nack when exactly-once delivery is enabled (#607) (a91bed8)

  • return singleton success future for exactly-once methods in Message (#608) (253ced2)

Bug Fixes

  • deps: require google-api-core>=1.31.5, >=2.3.2 (#600) (1608b7f)

  • deps: require proto-plus>=1.15.0 (1608b7f)

2.10.0 (2022-03-04)

Features

Bug Fixes

  • deps: move libcst to extras (#585) (0846762)

  • refactor client classes for safer type checking (#552) (7f705be)

  • resolve DuplicateCredentialArgs error when using credentials_file (8ca8cf2)

Samples

Documentation

  • add autogenerated code snippets (aa3754c)

  • Docs have inconsistent default values for max_latency and max_bytes (#572) (d136dfd)

2.9.0 (2021-11-10)

Features

Bug Fixes

  • add ‘dict’ annotation type to ‘request’ (b72522a)

  • deps: drop packaging dependency (290b9c5)

  • deps: require google-api-core >= 1.28.0 (290b9c5)

  • improper types in pagers generation (2ad639d)

Documentation

2.8.0 (2021-09-02)

Features

  • closed subscriber as context manager raises (#488) (a05a3f2)

Documentation

  • clarify the types of Message parameters (#486) (633e91b)

2.7.1 (2021-08-13)

Bug Fixes

2.7.0 (2021-07-24)

Features

  • Addalways_use_jwt_access. (1f30ef7)

  • Add method signature forSubscriber.Pull without the deprecatedreturn_immediately field. (1f30ef7)

  • Add Pub/Sub topic retention fields. (#456) (911829d)

  • Add subscription properties to streaming pull response. (1f30ef7)

  • Support self-signed JWT flow for service accounts. (1f30ef7)

Bug Fixes

  • Add async client to%name_%version/init.py. (1f30ef7)

  • Disablealways_use_jwt_access. (1f30ef7)

  • Enable self signed JWT for gRPC. (#458) (c6e0ff6)

Dependencies

  • Addpackaging requirement. (1f30ef7)

  • Requiregoogle-api-core >= 1.26.0. (1f30ef7)

2.6.1

07-05-2021 10:33 PDT

Dependencies

  • Fix possible crash by requiringgrpcio >= 1.38.1. (#414) (7037a28)

Documentation

  • Adjust samples for publishing with error handler and flow control. (#433)

Internal / Testing Changes

  • Fix flaky sync pull sample test. (#434)

  • Mitigate flaky snippets tests. (#432)

2.6.0 (2021-06-17)

Features

  • support customizable retry and timeout settings on the publisher client (#299) (7597604)

Bug Fixes

  • ACK deadline set for received messages can be too low (#416) (e907f6e)

  • threads can skip the line in publisher flow controller (#422) (ef89f55)

Documentation

  • block until the streaming pull shuts down (#424) (d0d0b70)

  • explain that future.cancel() is non-blocking (#420) (c825789)

2.5.0 (2021-05-18)

Features

  • Make publish futures compatible withconcurrent.futures.as_completed(). (#397) (e29a2c0)

Bug Fixes

  • Scheduler errors when executor in shutdown. (#399) (39a83d3)

2.4.2

05-06-2021 23:50 PDT

Implementation Changes

  • Fix memory leak when publishing messages. (#406)

  • Do not crash if distribution cannot be found when extracting semantic version. (#393)

  • Emit a warning ifreturn_immediately is set with synchronous pull. (#355)

  • Regenerate GAPIC layer with latest changes, use explicit default timeouts. (#345)

Documentation

  • Add additional info onuse_legacy_flow_control parameter. (#301)

  • Remove EXPERIMENTAL tag for ordering keys inpublisher/client.py. (#324)

  • Fixcreate_topic() call in README. (#360)

  • Generate PyPI token in secrets manager, fix spacing in docs (via synth). (#384)

  • AddSECURITY.md. (#401)

Internal / Testing Changes

  • Require 100% unit test coverage (via synth). (#359)

  • Bump test coverage to 100%. (#364)

  • Fix streaming pull close unit test flakiness. (#361)

  • Pass explicit credentials in all unit tests creating clients. (#369)

  • Fix flaky test for blocking pull shutdown. (#378)

  • Add missing licence header. (#377)

2.4.1 (2021-03-30)

Bug Fixes

  • Moveawait_msg_callbacks flag tosubscribe() method, fixing a regression in Pub/Sub Lite client.(#320) (d40d027)

  • SSL error when using the client with the emulator. (#297) (83db672)

Implementation Changes

  • (samples) Bump the max_time to 10 minutes for a flaky test. (#311) (e2678d4), closes#291

  • (samples) Mark delivery attempts test as flaky. (#326) (5a97ef1)

  • (samples) Mitigate flakiness in subscriber_tests. (#304) (271a385)

  • (samples) RetryInternalServerError in dead letter policy test. (#329) (34c9b11), closes#321

Documentation

  • Remove EXPERIMENTAL tag for ordering keys intypes.py. (#323) (659cd7a)

  • Remove EXPERIMENTAL tag fromSchema service (via synth). (#307) (ad85202)

2.4.0

02-22-2021 05:02 PST

Implementation Changes

New Features

  • Add graceful streaming pull shutdown. (#292)

Documentation

  • Update samples with using the subscriber client as a context manager. (#254)

2.3.0 (2021-02-08)

Features

  • surface SchemaServiceClient in google.cloud.pubsub (#281) (8751bcc)

Bug Fixes

  • client version missing from the user agent header (#275) (b112f4f)

  • Don’t open the google.cloud package by adding pubsub.py (#269) (542d79d)

  • flaky samples tests (#263) (3d6a29d)

  • Modify synth.py to update grpc transport options (#266) (41dcd30)

  • pass anonymous credentials for emulator (#250) (8eed8e1)

  • remove grpc send/recieve limits (#259) (fd2840c)

2.2.0 (2020-11-16)

Features

  • Add dead lettering max delivery attempts argument (#236) (7687ae5)

  • Enable server side flow control by default with the option to turn it off (#231) (94d738c)

Bug Fixes

  • fix mtls issue in handwritten layer (#226) (09a409c)

  • make fixup script consistent with migration docs (#208) (b64e218)

Documentation

  • document potentially unexpected blocking behavior of publish() method (#214) (b6d9bd7)

  • fix get topic_path in subscriber sample (#210) (7228f6c)

2.1.0

09-21-2020 02:19 PDT

Implementation Changes

  • Convert all RPC error types to exceptions. (#163) (#170)

  • Pass client options to publisher and subscriber clients. (#166) (#190)

New Features

  • Regenerate the client lib to pick new mtls env (via synth). (#197)

Documentation

  • Add subscription detachment sample. (#152)

  • Use new call syntax in subscriber docs. (#198) (#203)

Internal / Testing Changes

  • Update CODEOWNERS. (#193)

2.0.0

09-11-2020 05:03 PDT

Implementation Changes

  • Transition the library to microgenerator. (#158)This is abreaking change that introduces severalmethod signature changes anddrops supportfor Python 2.7 and 3.5.

Documentation

  • Add samples for using ordering keys. (#156)

  • Remove extra white space in delivery attempt sample. (#159)

Internal / Testing Changes

  • Fix flaky sequencer unit tests. (#187)

1.7.0 (2020-07-13)

This is the last release that supports Python 2.7 and 3.5.

New Features

  • Add support for server-side flow control. (#143) (04e261c)

Dependencies

  • Update samples dependencygoogle-cloud-pubsub tov1.6.1. (#144) (1cb6746)

Documentation

  • Add pubsub/cloud-client samples from the common samples repo (with commit history). (#151)

  • Add flow control section to publish overview. (#129) (acc19eb)

  • Add a link to Pub/Sub filtering language public documentation topubsub.proto. (#121) (8802d81)

1.6.1 (2020-06-30)

Documentation

1.6.0 (2020-06-09)

Features

  • Add flow control for message publishing (#96) (06085c4)

Bug Fixes

  • Fix PubSub incompatibility with api-core 1.17.0+ (#103) (c02060f)

Documentation

  • Clarify that Schedulers shouldn’t be used with multiple SubscriberClients (#100) (cf9e87c)

  • Fix update subscription/snapshot/topic samples (#113) (e62c38b)

Internal / Testing Changes

  • Re-generated service implementaton using synth: removed experimental notes from the RetryPolicy and filtering features in anticipation of GA, added DetachSubscription (experimental) (#114) (0132a46)

  • Incorporate will_accept() checks into publish() (#108) (6c7677e)

1.5.0 (2020-05-04)

Features

  • add methods for listing snapshots (via synth) (#66) (4ce898e)

  • send client id with StreamingPullRequest (#58) (9f8acfa), closes#62

1.4.3 (2020-04-16)

Bug Fixes

  • fix docs warnings in Sphinx 3.0+ (#70) (21e761e)

  • restrict api-core dependency to < 1.17.0 (#76) (191b051)

1.4.2 (2020-03-25)

Bug Fixes

  • update generated retry timings for publish and pull rpcs via synth (#43) (4f7fe85)

  • use client_options.api_endpoint parameter instead of ignoring it (#59) (56b8d7b), closes#61

1.4.1 (2020-03-23)

Bug Fixes

  • Don’t assert on unordered publishes after publish error. (#49) (ea19ce6)

1.4.0 (2020-03-06)

Features

  • pubsub: implement max_duration_per_lease_extension option (#38) (d911a2d)

1.3.1 (2020-02-28)

Bug Fixes

  • shutdown error on streaming pull callback error (#40) (552539e)

1.3.0 (2020-02-20)

Features

1.2.0 (2020-02-05)

Features

  • pubsub: add delivery attempt property to message object received by user code (#10205) (a0937c1)

  • addStreamingPullRequest.client_id field (via synth) (199d56a)

Bug Fixes

  • pubsub: handle None in on response callback (#9982) (6596c4b)

  • replace unsafe six.PY3 with PY2 for better future compatibility with Python 4 (#10081) (975c1ac)

1.1.0

12-09-2019 18:51 PST

Implementation Changes

  • Update client configurations (via synth). (#9784)

  • Include request overhead when computing publish batch size overflow. (#9911)

  • Split large (mod)ACK requests into smaller ones. (#9594)

  • Fix messages delivered multiple times despite a long ACK deadline. (#9525)

  • Update batching and flow control parameters to be same as the other client libraries. (#9597)

  • AddStreamingPullManager._should_terminate. (#9335)

New Features

Dependencies

  • Add Python 2 sunset banner to documentation. (#9036)

Documentation

  • Change spacing in docs templates (via synth). (#9759)

Internal / Testing Changes

  • Refactor fake leaser test helper. (#9632)

  • Add subscriber role test for streaming. (#9507)

1.0.2

09-30-2019 11:57 PDT

Implementation Changes

  • Streaming pull shouldn’t needsubscriptions.get permission (#9360).

1.0.1

09-27-2019 07:01 PDT

Implementation Changes

  • Set default stream ACK deadline to subscriptions’. (#9268)

Documentation

  • Fix intersphinx reference to requests. (#9294)

  • Link to correct TimeoutError in futures docs. (#9216)

Internal / Testing Changes

  • Adjust messaging RPC timeout settings (via synth).#9279

1.0.0

08-29-2019 09:27 PDT

Implementation Changes

  • Add ‘ReceivedMessage.delivery_attempt’ field (via synth). (#9098)

  • Remove send/recv msg size limit, update docstrings (via synth). (#8964)

Documentation

  • Update docstrings for client kwargs and fix return types uris (#9037)

  • Remove CI for gh-pages, use googleapis.dev for api_core refs. (#9085)

  • Remove compatability badges from READMEs. (#9035)

Internal / Testing Changes

  • Add dead-letter-policy field in preparation for its implementation (via synth) (#9078)

0.45.0

07-31-2019 02:03 PDT

Implementation Changes

  • Remove deprecated methods and settings (#8836)

Documentation

  • Use double backticks for ReST correctness. (#8829)

  • Update intersphinx mapping for requests. (#8805)

0.44.0

07-29-2019 04:28 PDT

Implementation Changes

  • PubSub: Deprecate several FlowControl settings and things in Message class (#8796)

Documentation

  • Pub/Sub: document regional endpoint (#8789)

0.43.0

07-24-2019 17:13 PDT

Implementation Changes

  • Accomodate new location of ‘IAMPolicyStub’ (via synth). (#8680)

  • Use kwargs in test_subscriber_client (#8414)

New Features

  • Addoptions_ argument to clients’get_iam_policy; pin black version (via synth). (#8657)

  • Add ‘client_options’ support, update list method docstrings (via synth). (#8518)

Dependencies

  • Bump minimum version for google-api-core to 1.14.0. (#8709)

  • Update pin for ‘grpc-google-iam-v1’ to 0.12.3+. (#8647)

Documentation

  • Link to googleapis.dev documentation in READMEs. (#8705)

  • Add compatibility check badges to READMEs. (#8288)

  • Fix typo in publisher index. (#8619)

  • Document how to choose the PubSub auth method (#8429)

  • Document different PuSub received message types (#8468)

  • PubSub: Document batch settings, make synth operations idempotent (#8448)

  • Add custom docstrings for FlowControl enum and values (via synth). (#8426)

Internal / Testing Changes

  • Add docs job to publish to googleapis.dev. (#8464)

  • Add system tests for PubSub clients (#8277)

0.42.1

06-18-2019 15:14 PDT

Implementation Changes

  • Increase the minimum allowed version for api core. (#8419)

  • Allow kwargs to be passed to create_channel. (#8399)

0.42.0

06-18-2019 11:32 PDT

Implementation Changes

  • Core: Mitigate busy reopen loop in ResumableBidiRpc consuming 100% CPU (#8193)

  • Pub/Sub: Increase initial_rpc_timeout for messaging (via synth). (#8219)

  • PubSub: Release the state lock before calling the publish api (#8234)

  • Pub/Sub: Expose publish retry settings (#8231)

  • Prevent unhandled background error on SPM shutdown (#8111)

  • Update timeouts, blacken noxfile.py, setup.py (via synth). (#8128)

  • PubSub: Fix streaming pull incorrectly handling FlowControl max_messages setting (#7948)

Documentation

  • Document PubSub FlowControl settings (#8293)

  • Replace readthedocs links with links to github docs. (#8291)

  • Pub/Sub: surface publish future in documentation (#8229)

  • Pubsub: Separate subscriber and publish future documentation. (#8205)

  • Drop mention of long-removed ‘policy’ object. (#8081)

Internal / Testing Changes

  • Pub/Sub: staticmethod check (#8091)

  • Add empty lines (via synth). (#8067)

0.41.0

05-15-2019 13:57 PDT

New Features

  • Addkms_key_name arg tocreate_topic; remove BETA warnings (via synth). (#7936)

  • Add message ordering (via synth). (#7551)

Implementation Changes

  • Propagate subscribe callback errors to main thread (#7954)

  • Fix pubsub Streaming Pull shutdown on RetryError (#7863)

  • Make PubSub subscriber Scheduler inherit from ABC (#7690)

  • Add routing header to method metadata (via synth). (#7623)

Internal / Testing Changes

  • Remove classifier for Python 3.4 for end-of-life. (#7535)

  • Add nox sessiondocs (via synth). (#7778)

  • Pub/Sub (nit): wrong var name in sample (#7705)

0.40.0

03-15-2019 14:09 PDT

Implementation Changes

  • Propagate ‘RetryError’ in ‘PublisherClient.publish’. (#7071)

  • Protoc-generated serialization update.. (#7091)

New Features

  • Add ‘authentication_method’ to ‘PushConfig’ (via synth). (#7512)

  • Add protos as an artifact to library (#7205)

  • Pub/sub: pass transport w/ custom channel to GAPIC API clients. (#7008)

Dependencies

Documentation

  • Updated client library documentation URLs. (#7307)

  • Update copyright headers

  • Fix broken docstring cross-reference links. (#7132)

  • Docstring changes from updates to .proto files. (#7054)

  • Pick up stub docstring fix in GAPIC generator. (#6978)

Internal / Testing Changes

  • Copy proto files alongside protoc versions.

0.39.1

12-17-2018 16:57 PST

Implementation Changes

  • InitializeStreamingPullFuture._cancelled as True. (#6901)

  • Importiam.policy fromgoogle.api_core. (#6741)

Documentation

  • Document Python 2 deprecation (#6910)

  • Emphasize that returned futures may differ from stdlib futures. (#6875)

Internal / Testing Changes

  • Add baseline for synth.metadata

  • Update noxfile.

  • blacken all gen’d libs (#6792)

  • omit local deps (#6701)

  • Run black at end of synth.py (#6698)

  • Run Black on Generated libraries (#6666)

  • Add templates for flake8, coveragerc, noxfile, and black. (#6642)

0.39.0

11-27-2018 13:32 PST

Implementation Changes

  • Pick up fixes to GAPIC generator. (#6503)

  • Override client classmethod factories inherited from GAPIC. (#6453)

  • Fix imports for hand-written client docstring examples. (#6345)

  • Fix path for patch of ‘bidi’ elements. (#6243)

  • Move bidi to api-core. (#6211)

  • Re-generate library using pubsub/synth.py (#6059)

  • Re-generate library using pubsub/synth.py (#5978)

New Features

  • Add ‘expiration_policy’ to subscriber client. (#6223)

Dependencies

  • Bump minimum ‘api_core’ version for all GAPIC libs to 1.4.1. (#6391)

  • Update IAM version in dependencies. (#6362)

  • Bump minimum ‘api_core’ version to ‘1.4.1’. (#6134)

Documentation

  • Fix client_info bug, update docstrings. (#6418)

  • Fix docstring reference to wrong future class. (#6382)

  • Normalize use of support level badges. (#6159)

  • Update subscriber example in README to current patterns. (#6194)

  • Prep pubsub docs for repo split. (#6001)

Internal / Testing Changes

  • Fix error from new flake8 version. (#6346)

  • Use new Nox. (#6175)

0.38.0

Implementation Changes

  • Fix race condition in recv()’s usage of self.call. (#5935)

  • Re-generate the underlying library from protos. (#5953)

  • Change ‘BatchSettings.max_bytes’ default. (#5899)

  • Fix race condition where pending Ack IDs can be modified by another thread. (#5929)

Internal / Testing Changes

  • Nox: use inplace installs (#5865)

0.37.2

Implementation Changes

  • Fix classmethod wrapping (#5826)

Documentation

  • Fix Sphinx rendering for publisher client. (#5822)

Internal / Testing Changes

  • Re-generate library, removing obsolete synth modifications. (#5825)

  • Add test for testing invoking a wrapped class method on the class itself (#5828)

0.37.1

Implementation Changes

  • Make get_initial_request more resilient to race conditions. (#5803)

0.37.0

Implementation Changes

  • Make Publisher batch-related interfaces private (#5784)

0.36.0

Implementation Changes

  • Pubsub: Make ‘Message.publish_time’ return datetime (#5633)

  • Ensure SPM methods check that ‘self._consumer’ is not None before use. (#5758)

New Features

  • PubSub: add geo-fencing support (#5769)

  • Add ‘Message.ack_id’ property. (#5693)

0.35.4

Implementation Changes

  • Recover streams during the gRPC error callback. (#5446)

  • Use operational lock when checking for activity on streams. (#5445)

0.35.3

Implementation Changes

  • Add additional error handling to unary RPCs (#5438)

0.35.2

Implementation Changes

  • Add heartbeating to the streaming pull manager (#5413)

  • Fix retrying of bidirectional RPCs and closing the streaming pull manager (#5412)

0.35.1

Implementation Changes

  • Catch errors when re-retying send() or recv() in addition to open() (#5402)

0.35.0

Implementation Changes

  • Send requests during streaming pull over a separate unary RPC (#5377)

  • Initialize references to helper threads before starting them (#5374)

  • Make leaser exit more quickly (#5373)

  • Make re-open failures bubble to callbacks (#5372)

  • Avoid overwriting ‘module’ of messages from shared modules. (#5364)

  • Normalize overflow handling for max count and bytes (#5343)

New Features

  • Restore the synchronous pull method (#5379)

  • Promote subscribe_experimental() to subscribe(), remove old subscriber implementation. (#5274)

  • Wire up scheduler argument for subscribe() (#5279)

Documentation

  • Add link to streaming pull behavior documentation (#5378)

  • Fix example in subscribe’s documentation (#5375)

Internal / Testing Changes

  • Add Test runs for Python 3.7 and remove 3.4 (#5295)

  • Modify system tests to use prerelease versions of grpcio (#5304)

0.34.0

Implementation Changes

  • Lower the flow control defaults. (#5248)

New Features

  • A new implementation of the subscriber has been added. This is available asSubscriberClient.subscribe_experimental. In the next release, this will be replace the currentsubscribe method. If you use this, please report your findings to us on GitHub. (#5189, #5201, #5210, #5229, #5230, #5237, #5256)

Dependencies

  • Remove psutil dependency. (#5248)

0.33.1

Implementation changes

  • Surface publish RPC errors back to the publish futures (#5124)

  • Make the pausable response iterator aware of the RPC state to prevent deadlock (#5108)

  • Properly handle graceful stop in request generator (#5097)

0.33.0

Implementation changes

  • Drop leased messages after flow_control.max_lease_duration has passed. (#5020)

  • Fix mantain leases to not modack messages it just dropped (#5045)

  • Avoid race condition in maintain_leases by copying leased_messages (#5035)

  • Retry subscription stream on InternalServerError, Unknown, and GatewayTimeout (#5021)

  • Use the rpc’s status to determine when to exit the request generator thread (#5054)

  • Fix missing iter on request stream (#5078)

  • Nack messages when the subscriber callback errors (#5019)

Testing

  • pubsub nox.py cleanup (#5056)

  • Fix test that checks for retryable exceptions (#5034)

0.32.1

Dependencies

  • Update dependency range for api-core to include v1.0.0 releases (#4944)

Testing and internal changes

  • Install local dependencies when running lint (#4936)

  • Re-enable lint for tests, remove usage of pylint (#4921)

0.32.0

Implementation changes

  • Added support for streaming pull receipts. (#4878)

0.31.0

New features

  • Added the ability for subscriber to batch requests. (#4895)

  • Added pending request backpressure for subscriber. (#4892)

Implementation changes

  • RaiseValueError when a message is too large for a batch. (#4872)

  • Updated the default batch size to 10 MB. (#4857)

  • Allow a customEvent type in Pub / Sub futures. (#4643)

Documentation

  • Clarify thatmodify_ack_deadline resets the deadline. (#4822)

Testing

  • Fix unit test for defaultmax_bytes value. (#4860)

0.30.1

Notable Implementation Changes

  • Moving lock factory used in publisher client to the Batchimplementation (#4628).

  • Use a UUID (rather than a sentinel object) onFuture (#4634).

  • Apply scopes to explicitly provided credentials if needed (#4594).Fixes #4479. This feature comes as part ofgoogle-api-core==0.1.3.

Dependencies

  • Upgrading togoogle-api-core==0.1.3 which depends on the latestgrpcio==1.8.2 (#4642). This fixes #4600. For details, see relatedgRPCbug andfix.

PyPI:https://pypi.org/project/google-cloud-pubsub/0.30.1/

0.30.0

Notable Implementation Changes

  • Dropping redundantPolicy._paused data member (#4568).

  • Removing redundant “active” check in policy (#4603).

  • Adding aConsumer.active property (#4604).

  • Making it impossible to callPolicy.open() on an already openedpolicy (#4606).

  • Bug fix (#4575): Fix bug with async publish for batches. Therewere two related bugs. The first: if a batch exceeds themax_messagesfrom the batch settings, then thecommit() will fail. The second:when a “monitor” worker callscommit() aftermax_latency seconds,a failure can occur if a new message is added to the batchduringthe commit. To fix, the following changes were implemented:

    • Adding a “STARTING” status forBatch.commit() (#4614). Thisfixes the issue when the batch exceedsmax_messages.

    • Adding extra check inBatch.will_accept for the number ofmessages (#4612).

    • Movingwill_accept() check out ofPublisherClient.batch()factory (#4613).

    • CheckingBatch.will_accept in thread-safe way (#4616).

  • Breaking API change: As part of #4613, changingPublisherClient.batch()to no longer accept amessage (since thewill_accept check needs tohappen in a more concurrency friendly way). In addition, changing thecreate argument so that it means “create even if batch already exists”rather than “create if missing”.

Documentation

  • Add more explicit documentation forMessage.attributes (#4601).

  • MakeMessage.__repr__ a bit prettier / more useful (#4602).

PyPI:https://pypi.org/project/google-cloud-pubsub/0.30.0/

0.29.4

Notable Implementation Changes

  • Bug fix: Restore previous behavior of the subscription leasemaintenance worker. This was accidentally “stopped” in0.29.3due to a change in implementation that went from anactiveboolean to an “inactive” /stopped boolean, soTrue becameFalse and vice-versa (#4564).

PyPI:https://pypi.org/project/google-cloud-pubsub/0.29.4/

0.29.3

Notable Implementation Changes

  • In subscription consumer thread: Making sure the request generatorattached to an inactive bidirectional streaming pull is stopped beforespawning a new request generator. This way we have a (fairly strong)guarantee that requests in the queue don’t get sent into an inactivestream (#4503, #4554).

  • Addingpause /resume to subscription consumer thread and using thesemethods during flow control. The previous implementation tried to close thesubscription (which involved 3 worker threads and 10 executors in a threadpool) and then re-open a new subscription. But, this was not entirelypossible to shut down correctly fromwithin one of the worker threads.Instead, we only pause the worker (of the 3) that is pulling new responsesfrom the bidirectional streaming pull (#4558).

  • Bug fix (#4516): Usingmax wheremin was used by mistake toensure the number of bytes tracked for subscription flow controlremained non-negative (#4514).

  • RaisingTypeError ifSubscriberClient.subscribe receives anon-callable callback (#4497).

  • Shutting down thread pool executor when closing a subscriberpolicy (#4522).

  • RenamingPolicy.on_callback_request toPolicy.dispatch_callbackand making the behavior much less dynamic (#4511).

  • Make sure subscription consumer thread doesn’t try to join itselfwhen exiting in error (#4540).

Dependencies

  • Upgradinggoogle-api-core dependency to latest revision (0.1.2)since we rely on the latest version of theconcurrent.futures backportto provide thethread_name_prefix argument for thread poolexecutor (#4521, #4559).

PyPI:https://pypi.org/project/google-cloud-pubsub/0.29.3/

0.29.2

Notable Implementation Changes

  • Bug fix (#4463): Making a subscription consumer actually stoprunning after encountering an exception (#4472, #4498). This bugis theonly reason for the0.29.2 release.

  • Thread Changes

    • Added names to all threads created directly by Pub / Sub (#4474,#4476, #4480). Also removing spaces and colons from threadnames (#4476).
  • Logging changes

    • Adding debug logs when lease management exits (#4484)

    • Adding debug logs whenQueueCallbackThread exits (#4494).Instances handle the processing of messages in asubscription (e.g. toack).

    • Using a named logger inpublisher.batch.thread (#4473)

    • Adding newlines before logging protobuf payloads (#4471)

PyPI:https://pypi.org/project/google-cloud-pubsub/0.29.2/

0.29.1

Notable Implementation Changes

  • Bug fix (#4234): Adding retries for connectionUNAVAILABLE. Thisbug made the Pub / Sub client mostly unusable for subscribers to topicsthat don’t have a steady stream of messages. After ~2 minutes of inactivity,the gRPC connection would timeout and raiseUNAVAILABLE locally, i.e. notdue to a response from the backend. (#4444)

  • Updating autogenerated packages (#4438)

Documentation

  • Fixing broken examples in quick start (#4398)

  • Fixing broken example in README (#4402, h/t to @mehmetboraezer)

  • Updating old/dead link to usage doc in README (#4406, h/t to @mehmetboraezer)

Dependencies

  • Dropping dependency ongoogle-cloud-core in exchange forgoogle-api-core (#4438)

PyPI:https://pypi.org/project/google-cloud-pubsub/0.29.1/

0.29.0

Notable Implementation Changes

  • Honormax_messages always (#4262)

  • Add futures for subscriptions (#4265)

  • Set gRPC message options and keepalive (#4269)

Documentation

  • Added link to “Python Development Environment Setup Guide” inproject README (#4187, h/t to @michaelawyu)

Dependencies

  • Upgrading togoogle-cloud-core >= 0.28.0 and adding dependencyongoogle-api-core (#4221, #4280)

  • Deferring togoogle-api-core forgrpcio andgoogleapis-common-protos dependencies (#4096, #4098)

PyPI:https://pypi.org/project/google-cloud-pubsub/0.29.0/

Except as otherwise noted, the content of this page is licensed under theCreative Commons Attribution 4.0 License, and code samples are licensed under theApache 2.0 License. For details, see theGoogle Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Last updated 2025-10-30 UTC.