2.2.1
- fixed thread local error
- fixed ops = 'all' both in config and .cache()

2.2
- switched to new CACHEOPS setting style
- added CACHEOPS_DEFAULTS setting
- work as LRU cache
- cache .exists() calls in Django 1.6+
- invalidate on .bulk_create()
- added no_invalidation context manager/decorator
- documented local_get and cache_on_save
- fixed saving objects with F-expression fields (Fedor Nasyrov)
- fixed queries with Django 1.7 transforms
- fixed binary fields in python 3
- stopped using simplejson
- simpler queryset key calculation,
  third party fields should be more compatible now
- removed bogus clone param from .nocache() call

2.1.1
- fixed bug in m2m invalidation
- fixed bug with null geometry fields
- fixed unpickling objects with BinaryFields

2.1
- support Django 1.7
- do not fetch from cache when doing .select_for_update() and similar,
  but do write to cache if it's enabled
- fixed inherited models exception in admin,
  multi-table models are still not really supported!
- fixed fake cacheops
- fixed deprecation warning in Django 1.6 admin

2.0
- conditions on related models will now invalidate queryset
- m2m invalidation is much more granular
- removed requirement that timeout should not be greater than default
- lua scripting is used to save and invalidate cache, making things faster
- better invalidation for complex and custom fields
- silent stringify of unknown objects by default
- support caching django.contrib.gis queries (koodjo)
- cacheops is now thread-safe
- added a way to no-op cacheops
- added @cached_view() and @cached_view_as()
- pass several samples for @cached_as() and @cached_view_as()
- fixed working with querysets created by non-patched constructor (#3 and dups)
- fixed invalidate_model() for proxy models
- fixed deepcopy(queryset) bug
- fixed possible collisions when cached functions passed complex structured arguments
- fixed StringifyError on timedelta (mpyatishev)
Backwards incompatible changes:
- filters on TextFields no longer affect invalidation
- @cached_as() cache key will now depend on function arguments
- @cached_as() and @cached() will now depend on function line in a code,
  permitting usage of lambdas and same named methods without passing extra
- @cached_as() and @cached() will now take timeout as first argument and extra as second.
  Anyway using them as keyword arguments is recommended
- Django 1.2 no longer supported
- Redis 2.6+ is required

1.3.1
- fixed bug with negating "some"-conditions
- fixed bug with schemes unsync when invalidating model
Backwards incompatible changes:
- reverted .cache(write_only=...) behaviour to enable caching for all ops
- .cache(timeout=...) call will enable caching for all ops

1.3.0
- support generic relations (erthalion)
- support filtering by time equality
- optimizations for python 3
Backwards incompatible changes:
- .cache(write_only=...) doesn't enable caching for all ops anymore (not really intended)

1.2.1
- set six minimum version right (crazyzubr)

1.2
- Python 3 support

1.1.1
- fixed Django 1.5- compatibility (aykutozat)

1.1
- Django 1.6+ support
- added Django template tags
- fixed caching querysets combined with | and & operators

1.0.3
- added db_agnostic option to cache profile
- partial support for Django 1.6+

1.0.2
- fixed cached_on_save
- fixed .inplace() altering cache key

1.0.1
- .delete() method for simple cache
- .invalidate() method for @cached() and file_cache.cached() functions

1.0.0
- defend against model changes corrupting cache (ttyS15)
- support F-expressions (Yuego)
- fixed local_get with unhashable arg TypeError
- fixed caching of raw queries (Yuego)

0.9.9
- fixed file cache md5 reference

0.9.8
- support isnull lookup for better invalidation
- fixed 'Query' has no len()
- dumped django.utils.hashcompat in favor of hashlib

0.9.7
- support for flex models
- support @cached_as(SomeModel)
- file cache default dir changed to /tmp/cacheops_file_cache
- better support for tuples in extra param in @cached and jinja2 tags

0.9.6
- support gracefull degradation on redis fail (Beres Botond)

0.9.5
- support for proxy models

0.9.4
- fixed occasional redis 100% cpu use (tumb1er)

0.9.3
- invalidate and cleanfilecache commands added to dist
- django 1.5 compatability (jhpinson)

0.9.2
- compatability with latest redis-py
- many other bug fixes
- minor optimizations
- better docs, including PERFORMANCE section
