- Remove dependency on the sites framework everywhere. The sites framework is still automatically considered if an installed app.
- Do not store metadata in the request anymore but in a list on thread locals.
- Introduce class utils.Ultracache to subject arbitrary pieces of Python code to caching.
- Drop Django 1 support.
- Simpler class based decorator.
- Add Django 2.1 and Python 3.6 tests.
- Add a test for tasks.
- Ensure a working error message if pika is not found.
- cached_get now considers any object accessed in get_context_data and not just objects accessed in the view template.
- The original request headers are now sent to the purgers along with the path. This enables fine-grained proxy invalidation.
- Django 2.0 and Python 3 compatibility. Django 1.9 support has been dropped.
- Simplify the DRF caching implementation. It also now considers objects touched by sub-serializers.
- The DRF settings now accept dotted names.
- The DRF setting now accepts a callable whose result forms part of the cache key.
- Use pickle to cache DRF data because DRF uses a Decimal type that isn't recognized by Python's json library.
- Adjust the DRF decorator so it can be used in more places.
- Django Rest Framework caching does not cache the entire response anymore, only the data and headers.
- Move the twisted work to django-ultracache-twisted.
- Clearly raise exception if libraries are not found.
- Move the twisted directory one lower.
- Package the product properly so all directories are included.
- More defensive code to ensure we don't interfere during migrations in a test run.
- Introduce rabbitmq-url setting for use by broadcast_purge task.
- Django 1.11 support.
- Deprecate Django 1.6 support.
- Remove logic that depends on SITE_ID so site can also be inferred from the request.
- Add caching for Django Rest Framework viewsets.
- Django 1.10 compatibility.
- Add missing import only surfacing in certain code paths.
- Invalidate setting was not being loaded properly. Fixed.
- Handle content types RuntimeError when content types have not been migrated yet.
- Move to tox for tests.
- Django 1.9 compatibility.
- Honor the raw parameter send along by loaddata. It prevents redundant post_save handling.
- Revert the adding of the template name. It introduces a performance penalty in a WSGI environment.
- Further reduce the number of writes to the cache.
- Add template name (if possible) to the caching key.
- Reduce number of calls to set_many.
- Keep the metadata cache size in check to prevent possibly infinite growth.
- Prevent redundant sets.
- Work around an apparent Python bug related to di[k].append(v) vs di[k] = di[k] + [v]. The latter is safe.
- Handle case where one cached view renders another cached view inside it, thus potentially sharing the same cache key.
- The ultracache template tag now only caches HEAD and GET requests.
- Trivial release to work around Pypi errors of the day.
- Replace cache.get in for loop with cache.get_many.
- Do not automatically add request.get_full_path() if any of request.get_full_path(), request.path or request.path_info is an argument for cached_get.
- Also cache response headers.
- Explicitly check for GET and HEAD request method and cache only those requests.
- Rewrite decorator to be function based instead of class based so it is easier to use in urls.py.
- cached_get decorator now does not cache if request contains messages.
- Fix HTTPResponse caching bug.
- Handle case where a view returns an HTTPResponse object.
- Initial release.