Releases: procrastinate-org/procrastinate
0.17.0: Make migrations simpler & safer
Migrations
This version didn't actually add new migrations (but existing migrations were renamed)
A consequence of this, if you're using Django Migrations and ran migrations pre-0.17 is that one of the Django migrations was renamed, which confuses Django. Before running the Migrations for 0.17.0, you're invited to run the following Django code in the Django shell (manage.py shell
):
>>> from django.db.migrations.recorder import MigrationRecorder
>>> MigrationRecorder.Migration.objects.filter(app="procrastinate", name="0001_baseline").update(name="0001_initial")
Starting at this release, migrations can be run while the system runs, provided certain conditions are met.
See the migrations doc for more information.
Work on migrations:
- Use underscores in migration script names (#345)
- Document new rules for database migrations (#342)
- Rename SQL migrations (#347)
- Rename migration: wrong index number (#350)
- Django migrations: generate on the fly via import hooks (#340)
Breaking Changes
- Django migrations, see above.
procrastinate healthchecks
now doesn't report the number of jobs anymore. Useprocrastinate shell
for that.
Miscellaneous
- Adjust badges (#337)
- Rename Job Store > Job Manager (#335)
- Report test workflow success in Check API (#322)
- Don't test the PRs, just test the branches (#348)
- Ignore aiopg warnings that we can't do anything about (#338)
- Remove HealthCheckRunner, simplify healthchecks (#339)
Kudos:
0.16.0: Avoid Postgres deadlocks when deferring periodic jobs
Migrations
Features
- Auto-generating Django migrations using Django's own machinery (#298)
Bug Fixes
- Fix the procrastinate_defer_periodic_job SQL function (#329)
- Change name of short option for --listen-notifiy (#325)
- Fix the AppNotOpen exception message (#327)
Documentation
- Document how to make remove_old_jobs periodic (#326)
Miscellaneous
- Use setuptools-scm to get migration from Git (#319)
- Make test_run_log_current_job_when_stopping more robust (#317)
- Use postgres:12 image for faster tests (#315)
- Use migra instead of pum for the db migration tests (#308)
- Run the main workflow for other branches than master (#311)
- GitHub actions (#302)
- Simplify release-drafter PR process (#324)
Kudos:
@elemoine, @ewjoachim, @mgu and @thomasperrot
0.15.2: Fixing the release process again
Once again, this release is just a way for us to test the release process. Nothing changed in the code.
Migrations
None
Bugfixes
- Fix deployment in CI (#301)
Kudos:
0.15.1: Fixing the release process
OK, this release is just a way for us to test the release process. Nothing changed in the code.
Migrations
None
Bugfixes
- Trigger CI when publishing a new release (#300)
Kudos:
0.15.0: Improve periodic tasks
Migrations
Breaking changes
- It is now expected that connections are explicitly opened (and close): see documentation for the various ways of doing that. (#270)
Features
- You can now have a single periodic task be deferred multiple times on multiple queues (doc) (#296)
- Tasks (including periodic tasks) now accept default locks and queueing locks in the same way as it was accepting default queues (doc) (#296)
Bugfix
- Periodic tasks deferring won't be interrupted by long synchronous tasks (#296)
Miscellaneous
- Add github actions (#290)
- Badges (#299)
- Additional doc on periodic tasks - forgotten wording fix (#294)
Kudos:
0.14.0: Add Django support
Migrations
None
Features
- Django contrib app (#283)
Bug Fixes
- Fix the "every second periodic task" bug (#293)
Miscellaneous
Kudos:
Agate (ping @EliotBerriot), @t-eckert, @elemoine, @ewjoachim
0.13.0: Remove pendulum dependency
Migrations
None
Breaking changes
- Very slight possible breaking change: the code parsing dates when calling
procrastinate defer --at=<date>
has changed. If you were using ISO8601 strings, nothing changed. If you were using more exotic formats, we think that nothing changed, but we don't have a definitive proof of that, so here's a warning. See https://procrastinate.readthedocs.io/en/stable/howto/schedule.html?highlight=pendulum#from-the-code (#279)
Miscellaneous
- Use python-dateutil to parse date (#279)
Kudos:
0.12.1: Add missing SQL index
0.12.0: Periodic tasks
Migrations
Features
- Add a periodic task (cron) system (#240)
- Add task aliases, letting you safely rename a task without loosing existing backlog (#264)
Miscellaneous
Kudos:
0.11.0: Fix race condition, improve resource usage
Migrations
- https://github.com/peopledoc/procrastinate/blob/master/procrastinate/sql/migrations/delta_0.10.0_001_close_fetch_job_race_condition.sql
- https://github.com/peopledoc/procrastinate/blob/master/procrastinate/sql/migrations/delta_0.10.0_002_add_defer_job_function.sql
Breaking changes
- If you created an
AiopgConnector
withmaxsize=0
or1
, it used to change it to 2. Now it won't.0
should really be avoided.1
will disable the listen/notify feature. See doc.
Features
- Synchronous programs can now define a
Psycopg2Connector()
and have real synchronous I/Os, likely to work better with multithreaded programs. See doc. (#237) - Default log message contains task result. This means you can
return <something>
in your task to make this<something>
appear in your logs (#252) - Make listen/notify optional, through
listen_notify=False
in your worker configuration (#258)
Bug Fixes
- Close race condition in procrastinate_fetch_job (#231)
- Retry on "server closed connection unexpectedly" errors (#259)
- Synchronous closing for AiopgConnector (#263)
- Add task.defer as an explicit sync method (#257)
Miscellaneous
- Documentation "Quickstart" section was full of imprecisions (#254)
- Display test results & simplify Tox setup (#253)
- Add function procrastinate_defer_job (#232)
- CONTRIBUTING.rst: more precise wording on release automated steps (#248)
- Update release-drafter.yml (#245)
Kudos:
@elemoine and @ewjoachim