As of January 1, 2020 this library no longer supports Python 2 on the latest released version. Library versions released prior to that date will continue to be available. For more information please visit Python 2 support on Google Cloud.

Changelog

PyPI History

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 of timeout 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

  • deps: Require google-api-core>=1.34.1 (#1080) (1a5a134)

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

  • Unit test failures in https://github.com/googleapis/python-pubsu… (#1074) (3c6d128)

2.19.1 (2024-02-02)

Documentation

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

2.19.0 (2023-12-10)

Features

  • Add use_table_schema field to BigQueryConfig (#1035) (ac6d912)

  • Add support for Python 3.12 (#1025) (660b8ea)

  • Introduce compatibility with native namespace packages (#1024) (0432420)

Bug Fixes

  • Use retry_async instead of retry 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

  • Add cloud storage subscription fields (#918) (6e262da)

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

  • samples: create subscription with filtering enabled #580

  • samples: handle empty response in sync pull samples #586

  • samples: sample for receiving messages with exactly-once delivery enabled #588

  • samples: create subscription with exactly once delivery #592 (https://github.com/googleapis/python-pubsub/pull/588

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

  • Add always_use_jwt_access. (1f30ef7)

  • Add method signature for Subscriber.Pull without the deprecated return_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)

  • Disable always_use_jwt_access. (1f30ef7)

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

Dependencies

  • Add packaging requirement. (1f30ef7)

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

2.6.1

07-05-2021 10:33 PDT

Dependencies

  • Fix possible crash by requiring grpcio >= 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 with concurrent.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 if return_immediately is set with synchronous pull. (#355)

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

Documentation

  • Add additional info on use_legacy_flow_control parameter. (#301)

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

  • Fix create_topic() call in README. (#360)

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

  • Add SECURITY.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

  • Move await_msg_callbacks flag to subscribe() 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) Retry InternalServerError in dead letter policy test. (#329) (34c9b11), closes #321

Documentation

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

  • Remove EXPERIMENTAL tag from Schema 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 a breaking change that introduces several method signature changes and drops support for 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 dependency google-cloud-pubsub to v1.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 to pubsub.proto. (#121) (8802d81)

1.6.1 (2020-06-30)

Documentation

  • added Python2 sunset notice (synth) (#140) (c8f6378)

  • explain how to nack a sync pull message (#123) (f2eec65)

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

  • pubsub: ordering keys (#26) (cc3093a)

  • add context manager capability to subscriber (#32) (b58d0d8)

1.2.0 (2020-02-05)

Features

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

  • add StreamingPullRequest.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)

  • Add StreamingPullManager._should_terminate. (#9335)

New Features

  • Add stop method. (#9365)

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 need subscriptions.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

  • Add options_ 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

  • Add kms_key_name arg to create_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 session docs (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

  • Initialize StreamingPullFuture._cancelled as True. (#6901)

  • Import iam.policy from google.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 as SubscriberClient.subscribe_experimental. In the next release, this will be replace the current subscribe 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

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

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

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

Documentation

  • Clarify that modify_ack_deadline resets the deadline. (#4822)

Testing

  • Fix unit test for default max_bytes value. (#4860)

0.30.1

Notable Implementation Changes

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

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

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

Dependencies

  • Upgrading to google-api-core==0.1.3 which depends on the latest grpcio==1.8.2 (#4642). This fixes #4600. For details, see related gRPC bug and fix.

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

0.30.0

Notable Implementation Changes

  • Dropping redundant Policy._paused data member (#4568).

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

  • Adding a Consumer.active property (#4604).

  • Making it impossible to call Policy.open() on an already opened policy (#4606).

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

    • Adding a “STARTING” status for Batch.commit() (#4614). This fixes the issue when the batch exceeds max_messages.

    • Adding extra check in Batch.will_accept for the number of messages (#4612).

    • Moving will_accept() check out of PublisherClient.batch() factory (#4613).

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

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

Documentation

  • Add more explicit documentation for Message.attributes (#4601).

  • Make Message.__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 lease maintenance worker. This was accidentally “stopped” in 0.29.3 due to a change in implementation that went from an active boolean to an “inactive” / stopped boolean, so True became False 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 generator attached to an inactive bidirectional streaming pull is stopped before spawning a new request generator. This way we have a (fairly strong) guarantee that requests in the queue don’t get sent into an inactive stream (#4503, #4554).

  • Adding pause / resume to subscription consumer thread and using these methods during flow control. The previous implementation tried to close the subscription (which involved 3 worker threads and 10 executors in a thread pool) and then re-open a new subscription. But, this was not entirely possible to shut down correctly from within one of the worker threads. Instead, we only pause the worker (of the 3) that is pulling new responses from the bidirectional streaming pull (#4558).

  • Bug fix (#4516): Using max where min was used by mistake to ensure the number of bytes tracked for subscription flow control remained non-negative (#4514).

  • Raising TypeError if SubscriberClient.subscribe receives a non-callable callback (#4497).

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

  • Renaming Policy.on_callback_request to Policy.dispatch_callback and making the behavior much less dynamic (#4511).

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

Dependencies

  • Upgrading google-api-core dependency to latest revision (0.1.2) since we rely on the latest version of the concurrent.futures backport to provide the thread_name_prefix argument for thread pool executor (#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 stop running after encountering an exception (#4472, #4498). This bug is the only reason for the 0.29.2 release.

  • Thread Changes

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

  • Logging changes

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

    • Adding debug logs when QueueCallbackThread exits (#4494). Instances handle the processing of messages in a subscription (e.g. to ack).

    • Using a named logger in publisher.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 connection UNAVAILABLE. This bug made the Pub / Sub client mostly unusable for subscribers to topics that don’t have a steady stream of messages. After ~2 minutes of inactivity, the gRPC connection would timeout and raise UNAVAILABLE locally, i.e. not due 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 on google-cloud-core in exchange for google-api-core (#4438)

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

0.29.0

Notable Implementation Changes

  • Honor max_messages always (#4262)

  • Add futures for subscriptions (#4265)

  • Set gRPC message options and keepalive (#4269)

Documentation

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

Dependencies

  • Upgrading to google-cloud-core >= 0.28.0 and adding dependency on google-api-core (#4221, #4280)

  • Deferring to google-api-core for grpcio and googleapis-common-protos dependencies (#4096, #4098)

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