-
Notifications
You must be signed in to change notification settings - Fork 190
/
CHANGELOG
168 lines (125 loc) · 3.59 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
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
==========
Change Log
==========
UNRELEASED
==========
v4.1
====
Additions:
----------
- Add RATELIMIT_HASH_ALGORITHM setting (#282, #285)
Minor changes:
--------------
- Fixed links in docs (#277)
- Test on Django 4.2 (#284)
v4.0
====
Breaking changes:
-----------------
- Renamed the package from ratelimit to django_ratelimit (#226)
- Changed the default value of the decorator's block kwarg to True (#271)
- Dropped support for Django versions < 3.2 (#263)
- Dropped support for Python versions < 3.7 (#263, #254, #266)
Additions:
----------
- Add RATELIMIT_IP_META_KEY setting (#218)
- Add RATELIMIT_EXCEPTION_CLASS setting (#247)
- Add a system check for cache configuration (#268)
Minor changes:
--------------
- Factor up _get_ip() logic into a single place (#218)
- Exception on empty REMOTE_ADDR is clearer (#220)
- Moved CI process to GitHub Actions (#219, #225)
- Automated release process (#273)
v3.0.1
======
Bug fixes
---------
- Fix import path values for rate= argument (#206)
v3.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.