Skip to content

Latest commit

 

History

History
674 lines (472 loc) · 44.6 KB

File metadata and controls

674 lines (472 loc) · 44.6 KB

Change Log

Full Changelog

What's Changed

  • Added realtime and rest support for Annotations API #667

Full Changelog

What's Changed

  • Added realtime publish support for publishing messages to channels over the realtime connection #648
  • Added realtime presence support, allowing clients to enter, leave, update presence data, and track presence on channels #651
  • Added mutable messages API with support for editing, deleting, and appending to messages #660, #659
  • Added publish results containing serial of published messages #660, #659
  • Deprecated environment, rest_host, and realtime_host client options in favor of endpoint option #590

Breaking change

The 3.0.0 version of ably-python introduces several breaking changes to improve the realtime experience and align the API with the Ably specification. These include:

  • The realtime channel publish method now uses WebSocket connection instead of REST
  • ably.realtime.realtime_channel module renamed to ably.realtime.channel
  • ChannelOptions moved to ably.types.channeloptions
  • REST publish returns publish result with message serials instead of Response object
  • Deprecated environment, rest_host, and realtime_host client options in favor of endpoint option

For detailed migration instructions, please refer to the Upgrading Guide.

Full Changelog

What's Changed

  • Got rid of methoddispatch dependency in #639
  • Upgraded internal build tools

Full Changelog

What's Changed

  • Support methoddispatch version 5 #634
  • Support pyee version 13 #635

Full Changelog

What's Changed

  • Added missed sync folder to the wheel package

Full Changelog

What's Changed

  • Added support for VCDiff delta-compressed messages. If VCDiff compression is enabled in the client options, and deltas are provided by the Ably service, the SDK reconstructs full message payloads from the base content and the received delta, reducing bandwidth usage without requiring changes to your application code. #620

Full Changelog

What's Changed

  • Removed await from sync connect() function call by @kavindail in #605
  • Upgraded websockets dependency to support 15+ by @ttypic in #612

Full Changelog

Closed issues:

  • The REST client’s retry mechanism doesn’t follow the spec and doesn’t retry when it should #597

Full Changelog

Closed issues:

  • Support websockets version 13 #591

Fixed sync version of the library

Full Changelog

Fixed bugs:

  • Fix the inability to pass a JSON string value for a capability parameter when creating a token #579

Closed issues:

  • Support pyee 12 #580

Full Changelog

Fixed bugs:

  • Fix TypeError: '>' not supported between instances of 'float' and 'NoneType' in http #573

Full Changelog

Fixed bugs:

  • Decoding issue for 40010 Error (Invalid Channel Name) #569

Full Changelog

Closed issues:

  • Support httpx 0.26, 0.27 and so on #560

Merged pull requests:

Full Changelog

Closed issues:

  • Question: Bump websockets version #556
  • "RuntimeError: no running event loop" exception when connecting to Realtime #555

Merged pull requests:

Full Changelog

Merged pull requests:

Full Changelog

Closed issues:

  • Support for python 3.12 #546

Merged pull requests:

  • Support latest python versions #547 (sacOO7)
  • Update README.md to add in 'publish message to channel including metadata' #545 (cameron-michie)

Full Changelog

Implemented enhancements:

  • Add synchronous AblyRest client (for more info see the docs) #537

Closed issues:

  • Update httpx dependency to version 0.24.1 or higher #523

Merged pull requests:

Full Changelog

Closed issues:

  • Implement / Add tests for TM1,TM2,TM3 Message spec #516

Merged pull requests:

  • [SDK-3807] Implement and test empty inner message fields #517 (sacOO7)

New ably-python realtime client: This new release features our first ever python realtime client! Currently the realtime client only supports realtime message subscription. Check out the README for usage examples. There have been some minor breaking changes from the 1.2 version, please consult the migration guide for instructions on how to upgrade to 2.0.

Full Changelog

  • refactor!: add mandatory version param to Rest.request #500
  • bump api_version to 2.0, add DeviceDetails.deviceSecret #507
  • Include cause in AblyException.str result #508
  • feat!: use api v3 and untyped stats #505
  • Implement add_request_ids client option #399
  • Improve logger output upon disconnection #492
  • Fix an issue where in some cases the client was unable to recover after loss of connectivity #493
  • Remove soft-deprecated APIs #482
  • Improve realtime client typings #476
  • Improve REST client typings #477
  • Stop raising KeyError when releasing a channel which doesn't exist #474
  • Allow token auth methods for realtime constructor #425
  • Send AUTH protocol message when Auth.authorize called on realtime client #427
  • Reauth upon inbound AUTH protocol message #428
  • Handle connection request failure due to token error #445
  • Handle token ERROR response to a resume request #444
  • Handle DISCONNECTED messages containing token errors #443
  • Pass clientId as query string param when opening a new connection #449
  • Validate clientId in ClientOptions #448
  • Apply Auth#clientId only after a realtime connection has been established #409
  • Channels should transition to INITIALIZED if Connection.connect called from terminal state #411
  • Calling connect while CLOSING should start connect on a new transport #410
  • Handle realtime channel errors #455
  • Resend protocol messages for pending channels upon resume #347
  • Attempt to resume connection when disconnected unexpectedly #346
  • Handle CONNECTED messages once connected #345
  • Implement maxIdleInterval #344
  • Implement realtime connectivity check #343
  • Use fallback realtime hosts when encountering an appropriate error #342
  • Add fallbackHosts client option for realtime clients #341
  • Implement connectionStateTtl #340
  • Implement disconnectedRetryTimeout #339
  • Handle recoverable connection opening errors #338
  • Implement channelRetryTimeout #442
  • Queue protocol messages when connection state is CONNECTING or DISCONNECTED #418
  • Propagate connection interruptions to realtime channels #417
  • Spec compliance: Realtime.connect should be sync #413
  • Emit update event on additional ATTACHED message #386
  • Set the ATTACH_RESUME flag on unclean attach #385
  • Handle fatal resume error #384
  • Handle invalid resume response #383
  • Handle clean resume response #382
  • Send resume query param when reconnecting within connectionStateTtl #381
  • Immediately reattempt connection when unexpectedly disconnected #380
  • Clear connection state when connectionStateTtl elapsed #379
  • Refactor websocket async tasks into WebSocketTransport class #373
  • Send version transport param #368
  • Clear Connection.error_reason when Connection.connect is called #367
  • Fix a bug with realtime_host configuration #358
  • Create Basic Api Key connection #311
  • Send Ably-Agent header in realtime connection #314
  • Close client service #315
  • Implement EventEmitter interface on Connection #316
  • Finish tasks gracefully on failed connection #317
  • Implement realtime ping #318
  • Realtime channel attach/detach #319
  • Add auto_connect implementation and client option #325
  • RealtimeChannel subscribe/unsubscribe #326
  • ConnectionStateChange #327
  • Improve realtime logging #330
  • Update readme with realtime documentation [#334](334](#334)
  • Use string-based enums #351
  • Add environment client option for realtime #335
  • EventEmitter: allow signatures with no event arg #350

Full Changelog

  • Improve logger output upon disconnection #492
  • Fix an issue where in some cases the client was unable to recover after loss of connectivity #493

The latest beta release of ably-python 2.0 makes some minor breaking changes, removing already soft-deprecated features from the 1.x branch. Most users will not be affected by these changes since the library was already warning that these features were deprecated. For information on how to migrate, please consult the migration guide.

Full Changelog

  • Remove soft-deprecated APIs #482
  • Improve realtime client typings #476
  • Improve REST client typings #477
  • Stop raising KeyError when releasing a channel which doesn't exist #474

This new beta release of the ably-python realtime client implements token authentication for realtime connections, allowing you to use all currently supported token options to authenticate a realtime client (auth_url, auth_callback, jwt, etc). The client will reauthenticate when the token expires or otherwise becomes invalid.

Full Changelog

  • Allow token auth methods for realtime constructor #425
  • Send AUTH protocol message when Auth.authorize called on realtime client #427
  • Reauth upon inbound AUTH protocol message #428
  • Handle connection request failure due to token error #445
  • Handle token ERROR response to a resume request #444
  • Handle DISCONNECTED messages containing token errors #443
  • Pass clientId as query string param when opening a new connection #449
  • Validate clientId in ClientOptions #448
  • Apply Auth#clientId only after a realtime connection has been established #409
  • Channels should transition to INITIALIZED if Connection.connect called from terminal state #411
  • Calling connect while CLOSING should start connect on a new transport #410
  • Handle realtime channel errors #455

This new beta release of the ably-python realtime client implements a number of new features to improve the stability of realtime connections, allowing the client to reconnect during a temporary disconnection, use fallback hosts when necessary, and catch up on messages missed while the client was disconnected.

Full Changelog

  • Resend protocol messages for pending channels upon resume #347
  • Attempt to resume connection when disconnected unexpectedly #346
  • Handle CONNECTED messages once connected #345
  • Implement maxIdleInterval #344
  • Implement realtime connectivity check #343
  • Use fallback realtime hosts when encountering an appropriate error #342
  • Add fallbackHosts client option for realtime clients #341
  • Implement connectionStateTtl #340
  • Implement disconnectedRetryTimeout #339
  • Handle recoverable connection opening errors #338
  • Implement channelRetryTimeout #442
  • Queue protocol messages when connection state is CONNECTING or DISCONNECTED #418
  • Propagate connection interruptions to realtime channels #417
  • Spec compliance: Realtime.connect should be sync #413
  • Emit update event on additional ATTACHED message #386
  • Set the ATTACH_RESUME flag on unclean attach #385
  • Handle fatal resume error #384
  • Handle invalid resume response #383
  • Handle clean resume response #382
  • Send resume query param when reconnecting within connectionStateTtl #381
  • Immediately reattempt connection when unexpectedly disconnected #380
  • Clear connection state when connectionStateTtl elapsed #379
  • Refactor websocket async tasks into WebSocketTransport class #373
  • Send version transport param #368
  • Clear Connection.error_reason when Connection.connect is called #367

Full Changelog

  • Fix a bug with realtime_host configuration #358

New ably-python realtime client: This beta release features our first ever python realtime client! Currently the realtime client only supports basic authentication and realtime message subscription. Check out the README for usage examples.

Full Changelog

  • Create Basic Api Key connection #311
  • Send Ably-Agent header in realtime connection #314
  • Close client service #315
  • Implement EventEmitter interface on Connection #316
  • Finish tasks gracefully on failed connection #317
  • Implement realtime ping #318
  • Realtime channel attach/detach #319
  • Add auto_connect implementation and client option #325
  • RealtimeChannel subscribe/unsubscribe #326
  • ConnectionStateChange #327
  • Improve realtime logging #330
  • Update readme with realtime documentation [#334](334](#334)
  • Use string-based enums #351
  • Add environment client option for realtime #335
  • EventEmitter: allow signatures with no event arg #350

Full Changelog

Implemented enhancements:

  • Add support to get channel lifecycle status #271
  • Migrate project to poetry #305

Breaking API Changes: Please see our Upgrade / Migration Guide for notes on changes you need to make to your code to update it to use the new API introduced by version 1.2.0.

Full Changelog

Implemented enhancements:

  • Respect content-type with charset #256
  • Release a new version for python 3.10 support #249
  • Support HTTP/2 #197
  • Support Async HTTP #171
  • Implement RSC7d (Ably-Agent header) #168
  • Defaults: Generate environment fallbacks #155
  • Clarify string encoding when sending push notifications #119
  • Support for environments fallbacks #198 (d8x)

Fixed bugs:

  • Channel.publish sometimes returns None after exhausting retries #160
  • Token issue potential bug #54

Closed issues:

  • Conform ReadMe and create Contributing Document #199
  • Add support for DataTypes TokenParams AO2g #187
  • Add support for TO3m [#172](#172
  • Using a clientId should no longer be forcing token auth in the 1.1 spec #149

Merged pull requests:

Full Changelog

Implemented enhancements:

Closed issues:

  • Remove develop branch #151

Merged pull requests:

Full Changelog

Closed issues:

  • Idempotent publishing is not enabled in the upcoming 1.1 release #132
  • forward slash in channel name #130
  • Refactor tests setup #109

Implemented enhancements:

  • Add support for remembered REST fallback host #131
  • Ensure request method accepts UPDATE, PATCH & DELETE verbs #128
  • Add idempotent REST publishing support #121
  • Allow to configure logger #107

Merged pull requests:

  • Fix flake8 #142 (jdavid)
  • Rsc15f Support for remembered REST fallback host #141 (jdavid)
  • Add patch #135 (jdavid)
  • Idempotent publishing #129 (jdavid)
  • Push #127 (jdavid)
  • RSH1c5 New push.admin.channel_subscriptions.remove_where #126 (jdavid)
  • RSH1c4 New push.admin.channel_subscriptions.remove #125 (jdavid)
  • RSH1c2 New push.admin.channel_subscriptions.list_channels #124 (jdavid)
  • RSH1c1 New push.admin.channel_subscriptions.list #120 (jdavid)
  • RSH1c3 New push.admin.channel_subscriptions.save #118 (jdavid)
  • RHS1b5 New push.admin.device_registrations.remove_where #117 (jdavid)
  • RHS1b4 New push.admin.device_registrations.remove #116 (jdavid)
  • RSH1b2 New push.admin.device_registrations.list #114 (jdavid)
  • Rsh1b1 New push.admin.device_registrations.get #113 (jdavid)
  • RSH1b3 New push.admin.device_registrations.save #112 (jdavid)
  • Document how to configure logging #110 (jdavid)
  • Rsh1a New push.admin.publish #106 (jdavid)

v1.0.3 (2019-01-18)

Full Changelog

Closed issues:

  • Travis failures with Python 2 in the 1.0 branch #138

Fixed bugs:

  • Authentication with auth_url doesn't accept camel case #136

Merged pull requests:

v1.0.2 (2018-12-10)

Full Changelog

Fixed bugs:

  • HTTP connection pooling #133
  • Timeouts when publishing messages #111
  • AWS lambda packaging #97
  • Rate limit requests to sandbox app #68

Closed issues:

  • TokenRequest ttl unit discrepancy #104
  • Python subscribe? #100

Merged pull requests:

v1.0.1 (2017-12-20)

Full Changelog

Implemented enhancements:

  • Fix HttpRequest & HttpRetry timeouts #86
  • Cast TTL to integer #71
  • Make PyCrypto optional #65

Fixed bugs:

  • Travis random failures #88

Closed issues:

  • pycrypto --> pycryptodome #96
  • ably module seems to be broken / empty in some circumstances #95
  • installing via pip installs a more restrictive version of requests #91
  • Add test coverage to prevent possible MsgPack regression #89
  • 1.0 spec review #84
  • When using python2 with msgpack, dicts are not encoded correctly #72

Merged pull requests:

  • Fix unit tests #99 (jdavid)
  • Switch to cryptodome #98 (jdavid)
  • ttl: use isinstance instead of type #94 (jdavid)
  • Fix Flake8 warnings regarding spacing #93 (sginn)
  • Bumped upper limit on requests library, and removed websocket #92 (sginn)
  • Fix #65, #71, #72, #86 and #89 #90 (jdavid)

v1.0.0 (2017-03-07)

Full Changelog

v1.0 release and upgrade notes from v0.8

Implemented enhancements:

  • RSC19*, HP* - New REST #request method + HttpPaginatedResponse type #78
  • Update REST library for realtime platform to v1.0 specification #77

Closed issues:

  • requests version pin too strict? #66

Merged pull requests:

  • Issue#84 TP4, RSC15a (test), RSC19e (test), .. #87 (jdavid)
  • Fix issue 72 #85 (jdavid)
  • Fix README, now using pytest instead of nose #83 (jdavid)
  • RSA5, RSA6, RSA10, RSL*, TM*, TE6, TD7 #82 (jdavid)

v0.8.2 (2017-02-17)

Full Changelog

Implemented enhancements:

  • PaginatedResult attributes #70
  • 0.8.x finalisation #48

Fixed bugs:

  • Do not persist authorise attributes force & timestamp #52

Closed issues:

  • Publish on PyPI #50

Merged pull requests:

  • RSC7, RSC11, RSC15, RSC19 #81 (jdavid)
  • Several python code repo improvements #73 (txomon)
  • updated reqests version in requirements #67 (essweine)

v0.8.1 (2016-03-22)

Full Changelog

Implemented enhancements:

  • Don't require get_default_params for encryption #56
  • Consistent README #8

Closed issues:

  • when msgpack enabled, python 2 string literals are encoded as binaries #60

Merged pull requests:

v0.8.0 (2016-03-10)

Implemented enhancements:

  • Switch arity of auth methods #42
  • API changes Apr 2015 #7
  • Change of repository name imminent #4

Fixed bugs:

  • Switch arity of auth methods #42
  • Use sandbox not staging #38
  • API changes Apr 2015 #7

Closed issues:

  • AblyException does not have __str__ #32
  • Add a requirements-test.txt #29
  • Fix message on test #23
  • Rename test_channels_remove to test_channels_release #20
  • Add comments in Python 2/3 code at ably/rest/channel.py #19
  • Support for 2.6 #10
  • Spec validation #9

Merged pull requests:

* This Change Log was automatically generated by github_changelog_generator