Change Log¶
All notable changes to this project are documented in this file.
5.0.1 2019-06-26¶
Fixed¶
- Pass dependencies and other arguments to list decorator when decorating class
5.0.0 2019-05-06¶
Changed¶
- BACKWARD INCOMPATIBLE: Bump
Django
requirement to version2.2
- BACKWARD INCOMPATIBLE: Bump
Django REST framework
requirement to version3.9
Added¶
- Support Python 3.7
4.1.0 2019-03-28¶
Changed¶
- Use
django-filter
instead ofdjangorestframework-filters
- Bump
django-filter
requirement to version 2.0
Fixed¶
- Wrap
observable
decorator withfunctools.wraps
to preserve metadata
4.0.0 2019-03-19¶
Changed¶
- BACKWARD INCOMPATIBLE: Protocol has changed, including the names of Channels workers.
- BACKWARD INCOMPATIBLE: Observe changes in the queryset model only (by default). Other tables can be tracked by explicitly listing the dependencies in @observable decorator.
- BACKWARD INCOMPATIBLE: Ensure observers exist when subscribing. Subscribe
(and observer creation) was separated from the evaluation step. Subscribe
includes subscriber and observer creation if needed, and executes in single
query. Observer instances are not removed from database anymore. Observers
without subscribers are skipped to optimize performance. Observers and
subscribers can be deleted using
clearobservers
Django command. - BACKWARD INCOMPATIBLE: Overhaul Python source distribution (sdist)
- Support PostgreSQL 10
Added¶
- Observers with the same ID are throttled. The default throttle rate is 2 seconds.
3.0.9 2018-09-07¶
Fixed¶
- Retry taking the observer lock before evaluation on IntegrityError due to concurrent observer creation
3.0.8 2018-07-10¶
Fixed¶
- Do not mutate received update message in client consumer
- Use a bounded cache with LRU eviction policy for executors
3.0.4 2018-06-08¶
Added¶
- Add
clearobservers
management command which clears all observer state from the database.
Fixed¶
- Fix viewsets without dependencies returning no results
- Fix issues with handling observer subscribers
3.0.3 2018-06-08¶
Fixed¶
- Defer ordering unique constraints when updating items
- Dispatch observer evaluations to other workers instead of processing everything in the same worker
- Fix issues with query interceptor in multiple threads
- Cast primary keys in ORM signals to string to avoid JSON serialization failures
3.0.0 2018-05-15¶
Changed¶
- BACKWARD INCOMPATIBLE: Port to Django Channels 2.1 and add support for running multiple workers.
2.0.1 2018-02-05¶
Fixed¶
- Do not override primary key when an endpoint returns a single item and it already has a primary key set
- Fix Channels dependencies
1.0.0 2017-10-26¶
Changed¶
- BACKWARD INCOMPATIBLE: Bump Django requirement to version 1.11.x
Fixed¶
- Dependency detection when subqueries are used
- Reactivity when M2M relationships are modified
0.13.0 2017-08-24¶
Added¶
- Python 3 compatibility
- Improve logging for use with Sentry
Fixed¶
- Force evaluation when full results requested
0.12.0 2017-06-22¶
Added¶
- Logging of slow observers and automatic stopping of very slow observers (both are configurable)
- Status endpoint to track server status
- Configurable update batch delay
- Polling observers
Fixed¶
META
passthrough in requests- Correct passthrough of
request.method
- Improved observer concurrency
Changed¶
- More easily support different concurrency backends