Commit graph

2320 commits

Author SHA1 Message Date
Thomas Steen Rasmussen 8a76d58211 trying to fix weird migration issue 2020-06-22 18:15:21 +02:00
Thomas Steen Rasmussen 56c05e039c add content team in bootstrap script, and create teams before adding content 2020-06-22 17:54:06 +02:00
Thomas Steen Rasmussen bd53f64208 add responsible_team to most emails, while here run pre-commit run --all-files 2020-06-22 17:25:08 +02:00
Thomas Steen Rasmussen a789569fdc fix migration name 2020-06-22 15:46:05 +02:00
Thomas Steen Rasmussen bd36e70bc3 add hold function to OutgoingEmail, set hold=True to delay sending emails 2020-06-22 15:45:02 +02:00
Thomas Steen Rasmussen daefd62f96 add duration to eventsession constraints 2020-06-22 10:54:09 +02:00
Thomas Steen Rasmussen 9fce167c7c show event uuid in admin 2020-06-22 09:10:10 +02:00
Thomas Steen Rasmussen 8b239e1812 rework migration, remove unique from event.uuid for now 2020-06-22 02:14:02 +02:00
Thomas Steen Rasmussen 7b435ace42 add constraint to prevent adjacent eventsessions for the same eventtype and location, and add some missing migrations 2020-06-22 02:02:29 +02:00
Thomas Steen Rasmussen 8efac62f62 remove references to eventinstance.event_slot, that future does not exist anymore 2020-06-22 01:18:25 +02:00
Thomas Steen Rasmussen fdc92ec7f2 take location into consideration when finding adjacent eventsessions 2020-06-22 01:09:45 +02:00
Thomas Steen Rasmussen 36fef3b4ea forgot .when. 2020-06-22 00:52:27 +02:00
Thomas Steen Rasmussen 4aeb1b566d handle cases where a speaker has three events in a row 2020-06-22 00:49:02 +02:00
Thomas Steen Rasmussen fc7761e315 add eventinstance migration script 2020-06-22 00:21:23 +02:00
Thomas Steen Rasmussen 582a006cf1 fix pg version and typo in README.md 2020-06-19 06:25:55 +02:00
Thomas Steen Rasmussen f859f82b9c fixup facility maps a bit and add backoffice management of facilities 2020-06-17 21:38:07 +02:00
Víðir Valberg Guðmundsson 1451874ba7
Tests are not ready for parallel 2020-06-05 10:09:56 +02:00
Víðir Valberg Guðmundsson 0e1bf598c3
Update .travis.yml 2020-06-05 10:03:16 +02:00
Víðir Valberg Guðmundsson 22da6e50b9
Travis should have postgresql 10 installed already 2020-06-05 09:54:44 +02:00
Víðir Valberg Guðmundsson 1ba3d0a618
Update .travis.yml 2020-06-05 09:44:53 +02:00
dependabot-preview[bot] b02ba87834
Bump django-taggit from 1.2.0 to 1.3.0 in /src/requirements (#548)
Bumps [django-taggit](https://github.com/jazzband/django-taggit) from 1.2.0 to 1.3.0.
- [Release notes](https://github.com/jazzband/django-taggit/releases)
- [Changelog](https://github.com/jazzband/django-taggit/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/jazzband/django-taggit/compare/1.2.0...1.3.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-04 08:57:25 +02:00
dependabot-preview[bot] b06725e1a4
Bump hypothesis from 5.8.0 to 5.16.0 in /src/requirements (#549)
Bumps [hypothesis](https://github.com/HypothesisWorks/hypothesis) from 5.8.0 to 5.16.0.
- [Release notes](https://github.com/HypothesisWorks/hypothesis/releases)
- [Commits](https://github.com/HypothesisWorks/hypothesis/compare/hypothesis-python-5.8.0...hypothesis-python-5.16.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-04 08:57:11 +02:00
dependabot-preview[bot] 8c5b282e7e
Bump django from 3.0.6 to 3.0.7 in /src/requirements (#550)
Bumps [django](https://github.com/django/django) from 3.0.6 to 3.0.7.
- [Release notes](https://github.com/django/django/releases)
- [Commits](https://github.com/django/django/compare/3.0.6...3.0.7)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-04 08:56:54 +02:00
Thomas Steen Rasmussen 0ba8ee4916 remove unique for now 2020-06-03 23:52:52 +02:00
Thomas Steen Rasmussen 2e969ac116 add null=True for now 2020-06-03 23:39:15 +02:00
Thomas Steen Rasmussen 99bc1cf0a1 add null=True for now 2020-06-03 23:36:30 +02:00
Thomas Steen Rasmussen 341fa7394d add null=True for now 2020-06-03 22:20:12 +02:00
Thomas Flummer 944a42b597
Added header row and public or not column (#512)
Also changed to show all numbers, and not only public ones, since this for adding to the phone system and all numbers need to be added
2020-06-03 21:31:01 +02:00
Thomas Flummer 1c88ed8073
Added title blocks to templates that did not have one (#511)
In most cases this mirrors the primary header on the page, but in some cases the title is simplified and/or nested to reflect the depth of the current page

Co-authored-by: Thomas Steen Rasmussen <tykling@bornhack.org>
2020-06-03 21:30:10 +02:00
Thomas Steen Rasmussen eff4bfaf1c
SpeakerAvailability, EventSession, autoscheduler, and other goodies (#497)
* fix old bug where the get_days() method would return the wrong number of days, this was not discovered because our bootstrap script has been creating 9 day camps instead of 8 day camps (this has been fixed in a different commit)

* remove stray debug print

* output camp days in local timezone (CEST usually), not UTC

* speakeravailability commit of doom, originally intended for #385 but goes a bit further than that. Adds SpeakerAvailability and EventSession models, and models for the new autoscheduler. Update bootstrap script and more. New conference_autoscheduler dependency. Work in progress, but ready for playing around!

* add conference-scheduler to requirements

* rework migrations, work at bit with postgres range fields and bounds, change how speakeravailability is saved (continuous ranges instead of 1 hour chunks), add tests for utils/range_fields.py including adding hypothesis to requirements/dev.txt, add a test which runs our bootstrap script

* catch name collision in the right place, and load missing postgres extension in the migration

* add some verbosity to see what the travis issue might be

* manually create btree_gist extension in postgres, not sure why the BtreeGistExtension() operation in program/migrations/0085... isn't working in travis?

* create extension in the right database maybe

* lets try this then

* ok so the problem is not that the btree_gist extension isn't getting loaded, the problem is that GIST indexes do not work with uuid fields in postgres 9.6, lets take another stab at getting pg10 with postgis to work with in travis

* lets try normal socket connection

* add SPEAKER_AVAILABILITY_DAYCHUNK_HOURS=3 to travis environment_settings.py

* rework migrations, change so an autoschedule can work with multiple eventtypes, change AutoSlot model to use a DateTimeRangeField so we can use the database for more efficient lookups, add 'conflicts' self m2m for EventLocation to indicate when a room conflicts with another room, add a support_autoscheduling bool to EventType, add workshops to bootstrap script, add timing output to bootstrap script

* update README a bit, move some functionality to model methods, update jquery and jquery.datatables, include datatables in base.html instead of in each page, start adding backoffice schedule management views (unfinished), yolo commit so I can show valberg something

* Switch to a more simple way of using the autoscheduler, meaning we can remove the whole autoscheduler app and all models. All autoscheduler code is now in program/autoscheduler.py and a bit in backoffice views. Add more backoffice CRUD views for schedule management. Add datatables moment.js plugin to help table sorting of dates. Add Speaker{Proposal}EventConflict model to allow speakers to inform us which events they want to attend so we dont schedule them at the same time. Add EventTag model. New models not hooked up to anything yet.

* handle cases where there is no solution without failing, also dont return anything here

* wrong block kiddo

* switch from EventInstance to EventSlot as the way we schedule events. Finish backoffice content team views (mostly). Many small changes. Prod will need data migration of EventInstances -> EventSlots when the time comes.

* keep speakeravailability stuff a bit more DRY by using the AvailabilityMatrixViewMixin everywhere, add event_duration_minutes to EventSession create/update form, reverse the order we delete/create EventSlot objects when updating an EventSession

* go through all views, fix various little bugs here and there

* add missing migration

* add django-taggit, add tags for Events, add tags in bootstrap script, make AutoScheduler use tags. Add tags in forms and templates.

* fix taggit entry in requirements

* Fix our iCal view: Add uuid field to Event, add uuid property to EventSlot which calculates a consitent UUID for an event at a start time at a location. Use this as the schedule uuid. While here fix so our iCal export is valid, a few fields were missing, the iCal file now validates 100% OK.

* fix our FRAB xml export view

* comment the EventSlot.uuid property better

* typo in comment

* language

Co-Authored-By: Benjamin Balder Bach <benjamin@overtag.dk>

* language

Co-Authored-By: Benjamin Balder Bach <benjamin@overtag.dk>

* Update src/backoffice/templates/autoschedule_debug_events.html

Co-Authored-By: Benjamin Balder Bach <benjamin@overtag.dk>

* add a field to make this form look less weird. No difference in functionality.

* remove stray print and refactor this form init a bit

* fix ScheduleView

* only show slots where all speakers are available when scheduling events manually in backoffice

* make event list sortable by video recording column

* update description on {speaker|event}proposal models reason field

* remove badge showing number of scheduled slots for each event in backoffice eventlist. it was unclear what the number meant and it doesn't really fit

* remember to consider events in the same location when deciding whether a slot is available or not

* add is_available() method to EventLocation, add clean_location() method to EventSlot, call it from EventSlot.clean(), update a bit of text in eventslotunschedule template

* fix EventSession.get_available_slots() so it doesnt return busy slots as available, and since this means we can no longer schedule stuff in the lunchbreak lower the number of talks in the bootstrap script a bit so we have a better chance of having a solvable problem

* fix the excludefilter in EventSession.get_available_slots() for real this time, also fix an icon and add link in event schedule template in backoffice

* show message when no slots are available for manual scheduling in backoffice

* add event_conflicts to SpeakerUpdateView form in backoffice

* fix link to speaker object in speakerproposal list in backoffice

* allow blank tags

* make duration validation depend on the eventtype event_duration_minutes if we have one. fix help_text and label and placeholder for all duration fields

* allow music acts up to 180 mins in the bootstrap data

* fix wrong eventtype name for recreational events in speakerproposalform

* stretch the colspan one cell more

* save event_conflicts m2m when submitting speaker and event together

* form not self, and add succes message

* move js function toggleclass() to bornhack.js and rename to toggle_sa_form_class(), function is used in several templates and was missing when submitting combined proposals

* move the no-js removal to the top of ready() function

This will allow other javascript initialization (eg. DataTable) to see the elements and initialize accordingly (eg. column width for tables)

* Fixed problem with event feedback detail view

* Fixed problem with event feedback list view

* introduce a get_tzrange_days() function and use that to get the relevant days for the matrix instead of camp.get_days(), thereby fixing some display issues when eventsessions cross dates

* show submitting user and link to proposal on backoffice event detail page, change User to Submitter in backoffice speaker list table

* show warning by the buttons when a proposal cannot be approved, and show better text on approve/reject buttons

* disable js schedule, save m2m, prefetch some stuff

* fix broken date header in table

* remove use of djangos regular slugify function, use the new utils.slugs.unique_slugify() instead

Co-authored-by: Thomas Steen Rasmussen <tykling@bornhack.org>
Co-authored-by: Benjamin Balder Bach <benjamin@overtag.dk>
Co-authored-by: Thomas Flummer <tf@flummer.net>
2020-06-03 21:18:06 +02:00
dependabot-preview[bot] d00b0d8154
Bump coverage from 4.5.4 to 5.1 in /src/requirements (#508)
Bumps [coverage](https://github.com/nedbat/coveragepy) from 4.5.4 to 5.1.
- [Release notes](https://github.com/nedbat/coveragepy/releases)
- [Changelog](https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst)
- [Commits](https://github.com/nedbat/coveragepy/compare/coverage-4.5.4...coverage-5.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-03 17:54:18 +02:00
dependabot-preview[bot] bbaa7e947a
Bump django-oauth-toolkit from 1.2.0 to 1.3.2 in /src/requirements (#494)
Bumps [django-oauth-toolkit](https://github.com/jazzband/django-oauth-toolkit) from 1.2.0 to 1.3.2.
- [Release notes](https://github.com/jazzband/django-oauth-toolkit/releases)
- [Changelog](https://github.com/jazzband/django-oauth-toolkit/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jazzband/django-oauth-toolkit/compare/1.2.0...1.3.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-03 17:53:19 +02:00
dependabot-preview[bot] b6c8c98b19
Bump codecov from 2.0.22 to 2.1.4 in /src/requirements (#547)
Bumps [codecov](https://github.com/codecov/codecov-python) from 2.0.22 to 2.1.4.
- [Release notes](https://github.com/codecov/codecov-python/releases)
- [Changelog](https://github.com/codecov/codecov-python/blob/master/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-python/compare/v2.0.22...v2.1.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-03 17:52:07 +02:00
dependabot-preview[bot] b5edda8371
Bump irc3 from 1.1.5 to 1.1.6 in /src/requirements (#535)
Bumps [irc3](https://github.com/gawel/irc3) from 1.1.5 to 1.1.6.
- [Release notes](https://github.com/gawel/irc3/releases)
- [Changelog](https://github.com/gawel/irc3/blob/master/CHANGES.rst)
- [Commits](https://github.com/gawel/irc3/compare/1.1.5...1.1.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-03 17:51:45 +02:00
dependabot-preview[bot] 3305e604b3
Bump django-cors-headers from 3.2.1 to 3.3.0 in /src/requirements (#537)
Bumps [django-cors-headers](https://github.com/adamchainz/django-cors-headers) from 3.2.1 to 3.3.0.
- [Release notes](https://github.com/adamchainz/django-cors-headers/releases)
- [Changelog](https://github.com/adamchainz/django-cors-headers/blob/master/HISTORY.rst)
- [Commits](https://github.com/adamchainz/django-cors-headers/compare/3.2.1...3.3.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-03 17:51:28 +02:00
dependabot-preview[bot] 053716fae6
Bump graphene-django from 2.10.0 to 2.10.1 in /src/requirements (#538)
Bumps [graphene-django](https://github.com/graphql-python/graphene-django) from 2.10.0 to 2.10.1.
- [Release notes](https://github.com/graphql-python/graphene-django/releases)
- [Commits](https://github.com/graphql-python/graphene-django/compare/v2.10.0...v2.10.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-03 17:47:31 +02:00
dependabot-preview[bot] 939cad0f86
Bump lxml from 4.5.0 to 4.5.1 in /src/requirements (#540)
Bumps [lxml](https://github.com/lxml/lxml) from 4.5.0 to 4.5.1.
- [Release notes](https://github.com/lxml/lxml/releases)
- [Changelog](https://github.com/lxml/lxml/blob/master/CHANGES.txt)
- [Commits](https://github.com/lxml/lxml/compare/lxml-4.5.0...lxml-4.5.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-03 17:46:48 +02:00
dependabot-preview[bot] 45fbd0ef75
Bump codecov from 2.0.22 to 2.1.3 in /src/requirements (#542)
Bumps [codecov](https://github.com/codecov/codecov-python) from 2.0.22 to 2.1.3.
- [Release notes](https://github.com/codecov/codecov-python/releases)
- [Changelog](https://github.com/codecov/codecov-python/blob/master/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-python/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-03 17:45:57 +02:00
dependabot-preview[bot] 57b90f5623
Bump django-allauth from 0.41.0 to 0.42.0 in /src/requirements (#543)
Bumps [django-allauth](https://github.com/pennersr/django-allauth) from 0.41.0 to 0.42.0.
- [Release notes](https://github.com/pennersr/django-allauth/releases)
- [Changelog](https://github.com/pennersr/django-allauth/blob/master/ChangeLog.rst)
- [Commits](https://github.com/pennersr/django-allauth/compare/0.41.0...0.42.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-03 17:45:38 +02:00
dependabot-preview[bot] 6a7def3aa8
Bump flake8 from 3.7.9 to 3.8.2 in /src/requirements (#544)
Bumps [flake8](https://gitlab.com/pycqa/flake8) from 3.7.9 to 3.8.2.
- [Release notes](https://gitlab.com/pycqa/flake8/tags)
- [Commits](https://gitlab.com/pycqa/flake8/compare/3.7.9...3.8.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-03 17:45:19 +02:00
dependabot-preview[bot] 77692fdda7
Bump ipython from 7.14.0 to 7.15.0 in /src/requirements (#545)
Bumps [ipython](https://github.com/ipython/ipython) from 7.14.0 to 7.15.0.
- [Release notes](https://github.com/ipython/ipython/releases)
- [Commits](https://github.com/ipython/ipython/compare/7.14.0...7.15.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-03 17:44:55 +02:00
Thomas Steen Rasmussen b23ac270d3 remove old pdf letterheads 2020-05-31 19:36:09 +02:00
dependabot-preview[bot] d841dcf930
Bump pillow from 6.2.1 to 7.1.2 in /src/requirements (#521)
Bumps [pillow](https://github.com/python-pillow/Pillow) from 6.2.1 to 7.1.2.
- [Release notes](https://github.com/python-pillow/Pillow/releases)
- [Changelog](https://github.com/python-pillow/Pillow/blob/master/CHANGES.rst)
- [Commits](https://github.com/python-pillow/Pillow/compare/6.2.1...7.1.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-17 13:44:28 +02:00
dependabot-preview[bot] 2b96333f96
Bump django-bootstrap3 from 12.0.3 to 12.1.0 in /src/requirements (#527)
Bumps [django-bootstrap3](https://github.com/dyve/django-bootstrap3) from 12.0.3 to 12.1.0.
- [Release notes](https://github.com/dyve/django-bootstrap3/releases)
- [Changelog](https://github.com/dyve/django-bootstrap3/blob/master/HISTORY.rst)
- [Commits](https://github.com/dyve/django-bootstrap3/compare/v12.0.3...v12.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-17 12:44:02 +02:00
dependabot-preview[bot] 6f5ea77780
Bump ipython from 7.13.0 to 7.14.0 in /src/requirements (#528)
Bumps [ipython](https://github.com/ipython/ipython) from 7.13.0 to 7.14.0.
- [Release notes](https://github.com/ipython/ipython/releases)
- [Commits](https://github.com/ipython/ipython/compare/7.13.0...7.14.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-17 12:43:17 +02:00
dependabot-preview[bot] 199bbc2d05
Bump django from 3.0.5 to 3.0.6 in /src/requirements (#529)
Bumps [django](https://github.com/django/django) from 3.0.5 to 3.0.6.
- [Release notes](https://github.com/django/django/releases)
- [Commits](https://github.com/django/django/compare/3.0.5...3.0.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-17 12:36:14 +02:00
dependabot-preview[bot] 00700c10e3
Bump python-magic from 0.4.15 to 0.4.18 in /src/requirements (#530)
Bumps [python-magic](https://github.com/ahupp/python-magic) from 0.4.15 to 0.4.18.
- [Release notes](https://github.com/ahupp/python-magic/releases)
- [Commits](https://github.com/ahupp/python-magic/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-17 12:35:55 +02:00
dependabot-preview[bot] 93b5ab2e30
Bump icalendar from 4.0.5 to 4.0.6 in /src/requirements (#531)
Bumps [icalendar](https://github.com/collective/icalendar) from 4.0.5 to 4.0.6.
- [Release notes](https://github.com/collective/icalendar/releases)
- [Changelog](https://github.com/collective/icalendar/blob/master/CHANGES.rst)
- [Commits](https://github.com/collective/icalendar/compare/4.0.5...4.0.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-17 12:35:35 +02:00
dependabot-preview[bot] ae02d22e27
Bump graphene-django from 2.9.0 to 2.10.0 in /src/requirements (#532)
Bumps [graphene-django](https://github.com/graphql-python/graphene-django) from 2.9.0 to 2.10.0.
- [Release notes](https://github.com/graphql-python/graphene-django/releases)
- [Commits](https://github.com/graphql-python/graphene-django/compare/v2.9.0...v2.10.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-17 12:35:14 +02:00
dependabot-preview[bot] 26bd05f940
Bump pre-commit from 2.1.1 to 2.4.0 in /src/requirements (#533)
Bumps [pre-commit](https://github.com/pre-commit/pre-commit) from 2.1.1 to 2.4.0.
- [Release notes](https://github.com/pre-commit/pre-commit/releases)
- [Changelog](https://github.com/pre-commit/pre-commit/blob/master/CHANGELOG.md)
- [Commits](https://github.com/pre-commit/pre-commit/compare/v2.1.1...v2.4.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-17 12:34:53 +02:00