Update changelog
[inboxen.git] / CHANGELOG.md
blobfff184ca0b233628360d711e09c77bba12703b3f
1 # Changelog
3 ## Releases
5 ### Deploy for 2019-11-11
7 * Filter out deleted emails when calculating `Inbox.last_activity` (#484)
8 * Fire user login signal when cycling session keys (#444)
9 * Add missing decorator to download email view (#488)
11 ### Deploy for 2019-11-07
13 * Remove Watson completely and remove unused table (#412)
14 * Reset inbox flags when deleting emails (#391)
15 * Remove sed commands from update-py-requirements Make rule
17 ### Deploy for 2019-10-18
19 * Restore `update_last_login signal` in preparation for future work (#444)
20 * Prevent attachments from over-expanding (#458)
21 * Include source maps for JS and CSS assets (#462)
22 * Remove redundant lambda functions
23 * Move add inbox button (#467)
24 * Simplify `find_bodies` code (#465)
25 * Implement new search view (#412)
27 ### Deploy for 2019-08-06
29 * Remove WebAssets, we now use GruntJS to build static assets (#447)
30 * Switch from ruby-sass to dart-sass (#399)
31 * Fix issue where a single admin would cause a configuration error (#455)
33 ### Deploy for 2019-06-09
35 * Fix error in the way the password change view redirects (#441)
37 ### Deploy for 2019-06-04
39 * Rate limit single email download (#433)
40 * Improve cleaning of HTML parts to improve how they are displayed (#404)
41 * Fix attachment download (#437)
43 ### Deploy for 2019-05-24
45 * Update to Django 2.2 (#367)
46 * Add feature to download a single email (#176)
47 * Reduce pagination size from 100 to 25. This is still more than a screen full. (#423)
48 * Make console commands for interacting with Salmon nicer (#216)
49 * Set Inbox flags to their default state when disowning (#335)
50 * Add feature to download backup tokens (#332)
51 * Remove old dependencies required for Python 2.7 and Django 1.11
53 ### Deploy for 2019-05-01
55 * Fix liberation bug due to user having a prefered domain (#418)
56 * Add migrations required by latest release of django-mptt
57 * Update versioneer config to display git tags correctly
59 ### Deploy for 2019-03-04
61 * Remove mock dependency (#414)
62 * Add new search index columns in preparation for removing django-watson (#412)
64 ### Deploy for 2019-02-24
66 * Django security release
68 ### Deploy for 2019-01-22
70 * Prevent Salmon from emailing errors to admins, spamming their inbox (#410)
72 ### Deploy for 2019-01-10
74 * Completely removed all traces of django-bitfield (#358)
75 * Make Inboxen a proper Python package (#163)
76 * Add a check for Domains and a console command to allow creating domains (#393)
77 * Fix issue with exporting broken emails (#370)
78 * Allow users to delete their inboxes (#373)
80 ### Deploy for 2018-10-29
82 * HOTFIX ``ADMINS`` should be a list, not a generator (#385)
84 ### Deploy for 2018-06-12
86 * Change code to use new boolfields - requires downtime (#325)
87 * Allow users to auto-delete emails after 30 days (#83)
88 * Implement a quota system to avoid users eating all of our disk space (#359)
89   * This system is entirely optional and not enabled by default
91 ### Deploy for 2018-05-22
93 * Add boolean fields to replace bitfields in various models (#325)
94 * Make sure cache keys generated for ratelimiting are URL-safe (#354)
96 ### Deploy for 2018-05-11
98 * Rate limit inbox creation and remove inbox requests feature (#350)
99 * Proper search (#45)
100   * Pagination for search results
101   * Slimmer indexing, which should also make for faster searching
103 ### Deploy for 2018-04-14
105 * Proper Python 3 support (#261)
106 * Upgrade to Celery 4 (#222)
107 * Do lint checks as part of normal testing
108 * Add a copy button to each inbox (#100)
109 * Rate limit user registration (#342)
110 * Change "X big units, Y small units" times to just "X big units" (#337)
111 * Fix button column width on home view (#338)
112 * Fix responsiveness of stats charts (#341)
113   * This will also mean that the stats page will have `'unsafe-inline'` on the stats page
115 ### Deploy for 2018-03-23
117 * Fix username change form to actually change the username (#327)
119 ### Deploy for 2018-03-15
121 * Tests for OTP views (#283)
122 * Buttons should give some visual feedback that they're doing something (#279)
123 * Initial JS tests (#303)
124 * Move from django-sudo to django-elevate (#282)
125 * Reduce static asset sizes
126   * Use UglifyJS to mangle our JS reducing each of our JS bundles by about 50KB
127   * Only import the parts of Bootstrap that we actually use, reducing our CSS bundle by about 40KB
128 * Add favicons for various devices (#181)
130 ### Deploy for 2018-02-18
132 * Improve keyboard accessibility on home and inbox pages (#278)
133 * Add work-around for Django-Two-Factor-Auth bug in LoginView (#292)
134 * Set X-XSS-Protection to something other than its dangerous default (#297)
135 * Set HSTS headers in Django - this makes HSTS no longer optional (#298)
136 * Test security features (#298)
137 * Used Sixer to make source code compatible with Python 3
138   * This is just a first step ot make Inboxen work on Python 3
139 * Use labels on admin lists for better readability (#263)
140 * Change text on error pages to be slightly more verbose (#302)
141 * Change referrer policy on email view to same-origin (#307)
142 * Use a more secure method to produce the random part of inboxes (#312)
143 * Cleaned up our use of datetime to make sure we're always using timezone away
144   datetime objects
145 * Removed single delete button from inbox view (#76)
146   * Those buttons are too easy to hit accidentally for an not-undoable action
147     like deleting an email
149 ### Deploy for 2018-01-18
151 * Hotfix: Fix misconfiguration of CSRF
153 ### Deploy for 2018-01-16
155 * Prevent storing NULL in char and text fields (#274)
156 * Update to the latest release of Salmon
157 * Allow HTML headings in HelpPage bodies
158 * Make sure user creation and username change forms use the same validation (#281)
159 * Handle attachment name overflow properly (#273)
160 * Update log config to include rate limit
161 * Use system fonts to avoid issues with bad substitutions of named fonts (#294)
163 ### Deploy for 2017-12-04
165 * Fix issue with header names not being stored in the correct format (#275)
167 ### Deploy for 2017-12-01
169 * Update stats task
170   * Display a running total of emails processed on stats page
171   * Remove standard deviation stat, it didn't actually mean anything for our dataset
172   * Store join date of oldest user in stats
173   * Calculate disowned inboxes
174   * Calculate `new` & `with_inboxes` via aggregate
175 * Update to the latest Salmon (#233)
176 * Properly remove Wagtail as a dependency (#254)
177 * Pin Python dependencies with `pip-tools` (#251)
178 * Increase default Inbox length (#226)
179 * Make sure we have valid HTML when displaying emails (#269)
181 ### Deploy for 2017-11-13
183 * New admin! (#254)
184   * Remove Wagtail admin
185   * User-facing part of CMS is complete
186   * Admin-facing part of CMS is a bit bare-bones
188 ### Deploy for 2017-09-24
190 * Cycle session key to help protect against session hijacking on long lived sessions (#187)
191 * Update JQuery to 3.0 (#183)
192 * Update ChartJS to a newer version (#184)
193 * Update Font Awesome to 4.7.x (#185)
194 * Update to Django 1.11 (#165)
195   * Upgrade to Wagtail 1.11
196   * Fix incorrect `select_related` use
197   * Removed `django-session-csrf`as it is no longer needed for Django 1.11
198 * Replace Javascript used to collapse navigation on smaller screens with a pure CSS solution (#241)
199 * Fix issue with HTML parsing around `<meta>`, sometimes it doesn't have the attributes we want
201 ### Deploy for 2017-08-19
203 * Fix some corner cases in `inboxen.utils.emails.find_bodies` (#243)
205 ### Deploy for 2017-08-16
207 * Wrap long lines in plain text emails (#227)
208 * Change how MIME parts and headers are fetched to be more generic (#109)
209 * Search and email view now use the same function when walking the MIME tree (#109)
211 ### Deploy for 2017-08-05
213 * Pass attachment name to template for email view (#229)
214 * Implement a styleguide
215 * Don't email admins every time there's an issue with HTML emails (#235)
216 * Remove last vestiges of django-extensions' UUID field (#230)
217 * Fix `FutureWarning` being raised by LXML (#232)
218 * Fix translations in template tags not being lazy (#239)
220 ### Deploy for 2017-06-17
222 * Display the text version of the 2FA secret code at the same time as the QR code (#190)
223 * Change error message feeder command gives when inbox does not exit
224 * Fix non-ASCII filename handling in attachment download (#206)
225 * Drop Sqlite support (#214)
226 * Remove "view" button from attachments (#202)
227 * Stop proxying non-HTTP URIs (e.g. mailto:) (#211)
228 * Tests are now run with the test settings module by default
230 ### Deploy for 2017-05-20
232 * Fix ratelimit warnings in tests (#197)
233 * Disable certain actions in the admin interface (e.g. disable deleting Domains (#193))
234 * Fix 500 error on questions form error (#204)
235 * Add missing copyright headers (#194)
237 ### Deploy for 2017-04-14
239 * Added Wagtail CMS (#162)
240 * Added periodic task to clear stale sessions (#186)
241 * Refactor liberation utils (#189)
243 ### Deploy for 2017-02-25
245 * Order disabled inboxes to the end of the inbox list (#177)
246 * Add target=\_blank back to email links. Reverts #131 (#174)
247 * Update Django-twofactor-auth usage to reflect API changes (#178)
249 ### Deploy for 2016-10-16
251 * Detect bounced emails sent to support@ (#172)
252 * Fix CSP headers for Django 1.9 admin pages (#171)
254 ### Deploy for 2016-10-02
256 * Emails to support@ will now be routed to admins correctly (#169)
257 * "Super user" mode has been implemented (#164)
258 * More errors to be caught when CSS transformations fail (#159)
259 * Fixes for CSP and IE Edge (#167)
260 * Use the latest Django-CSP (#158)
262 ### Deploy for 2016-08-30
264 * Apply hotfix-20160830
266 ### Deploy for 2016-07-10
268 * Fix bug where JS was not applied to forms after an error (#156)
269 * Fix bug in search where a variable wasn't properly initialised (#157)
270 * Add a pin inbox button to user home page (#147)
272 ### Deploy for 2016-06-13
274 * Tickets app is more mobile friendly (#127)
275 * Don't rely on Content-Type containing a charset in HTML bodies (#155)
276 * Add icons to buttons (#152)
277 * Remove hover styles from inline forms (#154)
278 * Inline add inbox form - add an inbox from anywhere! (#49)
279 * Make subject/description boxes of honeydew sections clickable areas (#149)
280 * Remove CBV cruft (#153)
281 * Improved stats/charts (#148)
282 * Replace non-freeish Glyphicons with Font Awesome (#143)
284 ### Deploy for 2016-05-08
286 * Bypass Premailer if HTML part has no body (#151)
287 * Fix next/previous page buttons
289 ### Deploy for 2016-04-24
291 * Pin inboxes #129
292 * Use `django.contrib.humanize` #139
293 * List total possible inboxes on stats page #103
294 * Add charts to stats page #141
295 * Tighen up URLConf to avoid over-matching #142
297 ### Deploy for 2016-03-29
299 * Improve admin site #135 #136
300 * Fix logging, specifically notying admins when something goes wrong #138
301 * Prompt users to create backup devices when they enable 2FA #72
302 * A minor collection of styling bug fixes
304 ### Deploy for 2016-03-21
306 * Remove separate admin settings #134
307 * Improve home view CSS on mobile #133
308 * Fix alignment issues on small screens on inbox view #132
310 ### Deploy for 2016-03-20
312 * Fix `window.opener` issue #131
313 * Edit inbox from email list view #84
314 * Enable Django's security middleware #123
315 * Switch to Bootstrap's grid system for inbox and email lists #71
316 * Switch to whitelisting HTML tags and attributes #121
317 * Django 1.9 #124
318 * Use AppConfig #117
319 * Test coverage for management commands #128
321 ### Deploy for 2015-12-24
323 * Improve the UI for tickets #119
324 * Rolling session #104
325 * Simplified queryset building in InboxView
326 * Unbundle front-end libraries #120
327 * Minifiers now respect copyright headers in JS and CSS #120 #118
328 * Turn off CSP report-only mode #116
329 * Fix logging #87
331 ### Deploy for 2015-12-13
333 * Fixed error when attachment not found #110
334 * Blog posts now have a slug, old posts use their PK as their slug #113
335 * New placeholder image for HTML emails #115
336 * Users now get a message when they log out #112
338 * Revert brand link behaviour
339 * Ensure all body parts are escaped properly
341 ### Deploy for 2015-12-06
343 * Major upgrade to Django 1.8
344 * Go back to storing liberation data on filesystem
345 * Reorganise apps to be more logical - no more "website" app
346 * Use version 3 of the Celery API
347 * View more than one body in an email under certain rules
348 * Updated front page - now the default home page even for logged in users
349 * A bunch of other changes that I've forgotten about
351 ### Deploy for 2015-09-17
353 * Use session based CSRF tokens #80
354 * Change the way attachments are displayed #91
355 * Remove "import" script, it was mostly useless
356 * Change search form to not violate our CSP settings #86
357 * Links from blog and emails now open a new tab #92
359 ### Deploy for 2015-09-06
361 * CSP is now enabled, only in reporting mode for now #81
362 * Added copyright headers to assets, webassets strips them out #79
363 * Block browers from sending Referer headers #62
364 * Remove inline JS #82
365 * Don't use the latest version of d2fa, they've dropped Django 1.6 support
366 * Blacklist buggy version of django-model-utils #78
367 * Remove footer from maintenance page, those links won't work if the site is down
369 ### Deploy for 2015-06-30
371 * Fix ordering issue from last deploy
373 ### Deploy for 2015-06-29
375 * Replace "created" with "last activity"
376 * Display Inbox link on Unified view
377 * Skip fewer unit tests due to old bugs
378 * Stop assets randomly failing during tests
379 * Clean up search task a bit - see 5c7cb64145cf2a411a89ae0caad4430f11336ad0
380 * Fix possible data leak - see f705ad373c2f99c976fd153b92d3aac305632442
382 ### Deploy for 2015-06-18
384 * Webassets and such!
386 ### Deployments before 2015-06-18
388 Sorry, we didn't keep a changelog before this date