2.0.0b1
Pre-release
Pre-release
This release refactors the Django integration completely. Head to the Django section in the doc to discover how it works.
Here's a summary of the changes:
- When using Procrastinate with Django, you don't need to define a Procrastinate App anymore. As long as Procrastinate is in your
INSTALLED_APPS
, you can useprocrastinate.contrib.django.app
. This special app uses the Django connection and doesn't need opening or closing. - Tasks defined under the
tasks
submodule of any app inINSTALLED_APPS
are loaded by default. This is configurable (you can add paths to load, or change the name of the module containing your tasks in every app) - Some settings can be defined as
PROCRASTINATE_*
in your Django settings. See the complete doc for details (but there are no mandatory settings) - You can run the CLI with
./manage.py procrastinate
(if you use that, you won't have to configure anApp
either) - Procrastinate now exposes 2 models and the corresponding
ModelAdmins
in your Django Admin. Those models are read-only. The Admin panels are very very basic for now. - Procrastinate is tested with Django tasks that call the classic django ORM and the new async ORM methods.
What's Changed
Breaking changes
- Much better Django integration, implemented in #906
Kudos
While Procrastinate is mainly developed by myself, multiple contributors helped shaping this release over the last 2 years that it's been slowly boiling:
- @michaszcz for the original Django Connector PR, and @wgordon17, @mecampbellsoup, @adriangb for helpful comments
- @ignaciocabeza, and especially @turicas in #363 for submitting clear and actionable design directions that were very useful in deciding how to do this
- @paulzakin and @ponas for sharing ideas & feedback over on Discord (by the way, we now have a Discord server)
Full Changelog: 1.1.2...2.0.0