forked from jsocol/django-ratelimit
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGELOG
144 lines (107 loc) · 3.04 KB
/
CHANGELOG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
==========
Change Log
==========
UNRELEASED
==========
Breaking changes:
-----------------
- Renamed the package from ratelimit to django_ratelimit (#226)
Additions:
----------
- Add RATELIMIT_IP_META_KEY setting (#218)
Minor changes:
--------------
- Factor up _get_ip() logic into a single place (#218)
- Exception on empty REMOTE_ADDR is clearer (#220)
3.0.1
=====
Bug fixes
---------
- Fix import path values for rate= argument (#206)
3.0
====
Breaking changes:
-----------------
- Drop Python 2 support (#167)
- Drop Django < 2.1 support (#167, #198)
- @ratelimit no longer directly supports class methods, use
@method_decorator
- Drop RatelimitMixin in favor of @method_decorator
- Moved is_ratelimited to ratelimit.core from ratelimit.utils
- Moved ratelimit.utils.get_usage_count to ratelimit.core.get_usage
Additions:
----------
- Made ratelimit.core.get_usage a documented, public method.
- Add IP address masking (#178)
- Add "Recipes" section to documentation
Minor changes:
--------------
- Update RatelimitMiddleware to modern style (#168)
- Refactor is_ratelimited and get_usage so is_ratelimited is a thinner
wrapper
v2.0.0
======
- A number of docs fixes
- Fail open when cache is unavailable
- Drop support for Django 1.8, 1.9, and 1.10
- Fix Django 2.0 compatibility and update documentation
- Test Django 2.1 support
v1.1.0
======
- Test against Django 1.11 and 2.0b
- Fix #85, explicitly set cache expiration slightly longer than cache
window.
- Add Django version classifiers.
v1.0.1
======
- Added Django 1.10 support.
v1.0.0
======
- Allow requests through when cache backend is unavailable.
- Add support for Django 1.9, drop support for Django <=1.7.
- Fix several small documentation issues.
- Fix support for missing headers.
v0.6
====
- Fix CBV inheritance.
- Better Django 1.8 support, fixing deprecation warnings and testing.
- Clean up some out-of-date docs.
- Fix counting behavior around increment and new cache keys.
- Correctly pass `group` to callable `key`s.
v0.5
====
- Rates are now counted in fixed—instead of sliding—windows, except for
per-second limits. See the Upgrade Notes.
- Mixin renamed to `RatelimitMixin` (lowercase `l`) for consistency.
- Dramatic rewrite.
- `ip`, `field`, and `keys` arguments replaced with `key`.
- well-known "key" values support.
- Custom callable rate functions.
- Support for "not limited" rate.
- Replaces ``skip_if`` argument.
v0.4
====
- (Sort of) make @ratelimit decorators stack.
- Add RateLimitMixin for CBVs.
- Fixes for Python <2.7.
- Clean up Travis and tox tests.
v0.3
====
- Drop the 'Backend' concept.
- Add settings: RATELIMIT_USE_CACHE and RATELIMIT_CACHE_PREFIX.
- Allow custom key functions.
- Tests with Django 1.4.x and 1.5.x.
- Refactor to simplify tests and development requirements.
v0.2
====
- Added real docs.
- Fix unicode field values.
- Add real tests.
- Use the Ratelimited exception, RatelimitMiddleware, and
RATELIMIT_VIEW setting.
- Add RATELIMIT_ENABLE setting.
- Add the skip_if argument.
- Always add request.limited.
v0.1
====
- Initial release.