Releases: procrastinate-org/procrastinate
0.24.1: Fix deploy workflow
0.24.0
Migrations
This PR doesn't add a new migration, however, it fixes an issue with a previous release where a migration was created and didn't have the proper name, ending up not being advertised in the changelog.
This is the migration:
If you're unsure whether you need to apply the migration or not, here's a rundown:
- If you are currently anywhere between 0.23 and 0.24 included and there is no newer version at the time you read this, you can safely apply the migration. Even if it has already been applied, it will be a noop.
- If you're working up versions and will continue to apply migrations after 0.24, you can safely apply the migration as long as it's in order (so if there is a migration 0.25, apply this one and then 0.25)
- If you have already applied migrations for 0.25 or above... well it depends :) Either analyze the migrations that you have applied and see if there could be a clash, or open an issue and we'll look at it together.
Breaking changes
- Harmonize periodic logs with other job logs (#507)
If your workflow depend on exact log messages, then you may want to experiment with the new version. The messages are more consistent. - Renamed old improperly named migration (#576)
Dependencies
- Bump attrs, black, croniter, django, dunamai, importlib-metadata, mypy, psycopg2-binary, pytest-asyncio, pytest-click, pytest-mock, sphinx-github-changelog, tomlkit, types-croniter, types-psycopg2, types-python-dateutil (#508, #509, #514, #516, #515, #513, #523, #522, #526, #530, #529, #528, #527, #538, #537, #536, #541, #542, #547, #548, #549, #550, #551, #553, #552, #558, #556, #555, #562, #561, #565, #567, #566, #570, #572, #571, #573)
- [pre-commit.ci] pre-commit autoupdate (#505, #519, #525, #545, #569)
- update deps (#559, #517)
Miscellaneous
Workflows, CI, etc
- Fix publish workflow (#520, #518)
- Switch to main branch (#531)
- Switch to python-coverage-comment-action (#532, #533, #534)
- Auto-merge dependabot PRs when they pass the CI (#539)
- Change how the dependabot PRs are automerged (#543)
- Delete dependabot-auto-merge.yml (#544)
Kudos
0.23.0: Arguments for periodic tasks
Migrations
The following migration should have been part of the 0.23 release, but due to a naming error, it wasn't originally displayed as such.
Here is a link to the migration as it was when the tag was issued:
Breaking changes
- Arguments for periodic tasks 436 (#471): If you configured multiple periodic scheduling based on the same task, you now need to define them with explicitely different
periodic_id
: https://procrastinate.readthedocs.io/en/latest/howto/cron.html#scheduling-a-job-multiple-times-with-multiple-arguments . Also, if you relied on the fact that periodic schedules configures on the same task but with different queues were seen as independent schedules (https://github.com/procrastinate-org/procrastinate/blob/0.22.0/docs/howto/cron.rst#queue-lock-queuing-lock or #289), you will probably need to update your code and define uniqueperiodic_ids
in addition to the queues.
Features
- Arguments for periodic tasks 436 (#471)
Bugfixes
- Fix problem with AsyncMock (#504) (only impacted tests)
Misc
- Bump mypy from 0.910 to 0.920 (#503)
- Bump pytest-django from 4.5.1 to 4.5.2 (#499)
- Bump django from 3.2.9 to 3.2.10 (#500)
- Bump black from 21.11b1 to 21.12b0 (#501)
- [pre-commit.ci] pre-commit autoupdate (#498)
Kudos:
0.22.0: Blueprints, with_connector, list_locks, py3.10 etc.
Migrations
None (TODO: replace if there are migrations)
https://github.com/procrastinate-org/procrastinate/tree/master/procrastinate/sql/migrations
Breaking changes & news
This release officially adds Blueprints with their supported API. See the documentation for details. Note that if you used blueprints from Procrastiate 0.21, this is a breaking change.
Also, starting with this version, when the worker cannot function correctly (e.g. when it looses access to the database), it will crash instead of entering a half-broken state. This way, you get to define your own restart strategy, with back-off etc, the way you want.
App.with_connector
lets you create multiple synchronized apps with different connectors, in case you need to support both a sync and an async app.
In procrastinate shell
, a new list_locks
command lets you find out about task locks that are currently set, to simplify the hunting for longstanding locks.
Support for python3.6 has been removed, support for python3.10 has been added.
Documentation has been updated regarding where you should place your app. In particular, in case you put your app in the module whose __name__
is __main__
, a warning is now emitted, because this could lead to issues.
Periodic tasks used to all share a lock, so no 2 periodic tasks could run at the same time. This is now fixed.
And finally, did you notice ? The repository moved to the procrastinate-org
organization, yay !
Features
- Second pass on blueprints (#428)
- App.with_connector (#463)
- Add list_locks (#401)
- Remove support for Python 3.6, add support for 3.10 (#470)
Bugfixes
- Stop the whole worker process when a coroutine raises (#494)
- Add a stack check (#442)
- Null locks are ignored (#402)
Misc
- Fix longstanding Mypy issues (#490)
- Add croniter-types (#476)
- First wave of CODEOWNERS update (#462)
- Update dev-env (#475)
- Tweaks in the contribution doc (#472)
- Remove a bit of repetition in docs/requirements.txt by using extras (#457)
- Add empty setup.py to counter dependabot bug. (#458)
- Switch org to procrastinate-org (#459)
Bots
- Bump typing-extensions from 4.0.0 to 4.0.1 (#496)
- Bump pytest-django from 4.4.0 to 4.5.1 (#495)
- [pre-commit.ci] pre-commit autoupdate (#492)
- [pre-commit.ci] pre-commit autoupdate (#489)
- [pre-commit.ci] pre-commit autoupdate (#485)
- Bump importlib-resources from 5.2.2 to 5.4.0 (#481)
- Bump django from 3.2.8 to 3.2.9 (#483)
- Bump aiopg from 1.3.2 to 1.3.3 (#480)
- Bump dunamai from 1.6.0 to 1.7.0 (#484)
- Bump click from 8.0.1 to 8.0.3 (#482)
- [pre-commit.ci] pre-commit autoupdate (#477)
- Bump pytest-cov from 2.12.1 to 3.0.0 (#466)
- Bump aiopg from 1.3.1 to 1.3.2 (#468)
- Bump django from 3.2.7 to 3.2.8 (#467)
- Bump sqlalchemy from 1.4.25 to 1.4.26 (#473)
- Bump pytest-asyncio from 0.15.1 to 0.16.0 (#474)
- [pre-commit.ci] pre-commit autoupdate (#469)
- [pre-commit.ci] pre-commit autoupdate (#464)
Kudos:
0.21.0: Support for SQLAlchemy
Migrations
None
Breaking changes
- Remove auto-loading of tasks (#425): before this version, if a task was not loaded as a side effect of the app, and its module was not specified in the
import_paths
parameters of the app, and a worker received that task, it tried as a last-resort attempt, to load this task through its name. This meant that someone controlling a task name could make the worker load any code. The feature was removed altogether.
If your worker emited warnings likeTask at {task_name} was not registered, it's been loaded dynamically.
(with log actionload_dynamic_task
), it means you need to change the code for it to work. If the warning was not emitted, you're good to go.
Features
- Add a connector for SQLAlchemy with Psycopg2 (#453)
Bugfix
- Misconfiguration of extra deps meant that the lib always depended on Django (#453)
Misc
- Remove redundant word in worker logging (#446)
- path_hook should raise ImportError when a module isn't found (#430)
- Add Blueprint and lazy registration pattern (#423) (though it's being refactored at the moment, it's advised to wait for the next release)
Documentation
Process
- Fix typo in path (#429)
- Replace codecov with Coverage-Comment (#455, #456)
- [pre-commit.ci] pre-commit autoupdate (#450, #443, #439 #434, #433)
- Fix CI python version (#435)
Kudos:
0.20.0: Bugfixes, performance, & janitoring
Migrations
Features
- Add index to procrastinate_jobs for improved fetch_job performance (#396)
Bug Fixes
- Psycopg2: % in queries need to be escaped (#427)
- Attributes on the decorated task function shouldn't leak on the task (#399)
Miscellaneous
- Update deps & fix docs (#426)
- [pre-commit.ci] pre-commit autoupdate (#422, #420, #418, #416, #414, #411, #408, #407, #405, #404, #398)
- Add Dependabot auto upgrade PR (#415)
- Bring some improvements to dev-env script (#413)
- Goodbye Mickaël - Remove @mgu from codeowners (#406)
- Add support for Python 3.9 & boilerplate (#397)
Kudos:
0.19.0: define additional context on the worker
0.18.2: Fix SQL migration compatibility issue
Migrations
The following migration fixes a schema bug introduced in 0.18.0
. Please make sure to deploy this migration at the same time as the migrations mentioned in 0.18.0
.
Fixes
Miscellaneous
- Update CONTRIBUTING.rst: add info on rebuilding docs (#380)
Kudos:
0.18.1: Bugfixes
0.18.1
, consider deploying 0.18.2
instead, as its migrations contain a fix for a 0.18.0
migration that could cause some bugs.
Migrations
No migrations in bugfix releases.
Fixes
Kudos:
0.18.0: Log format & auto-delete finished jobs
Migrations
- https://github.com/peopledoc/procrastinate/blob/master/procrastinate/sql/migrations/00.16.00_01_add_finish_job_and_retry_job_functions.sql (this migration was named 0.16 but should have been named 0.17)
- https://github.com/peopledoc/procrastinate/blob/master/procrastinate/sql/migrations/00.17.00_01_add_trigger_on_job_deletion.sql
- https://github.com/peopledoc/procrastinate/blob/master/procrastinate/sql/migrations/00.17.00_02_delete_finished_jobs.sql
- https://github.com/peopledoc/procrastinate/blob/master/procrastinate/sql/migrations/00.17.00_03_add_checks_to_finish_job.sql
- https://github.com/peopledoc/procrastinate/blob/master/procrastinate/sql/migrations/00.17.00_04_add_checks_to_retry_job.sql
0.18.2
. Please run the migrations mentioned in 0.18.0
and 0.18.2
as a bundle to avoid potential downtimes
Features
- Add async method to apply schema (#376)
- Add the ability to personalize log format by environment variable (#357)
- Second pass on log format (#361)
- Delete finished jobs (#354)
Bug Fixes
- Dev-env script improvement (#353)
- Fix InMemoryConnector handling of queueing_lock (#374)
- Fix the shell's "retry job" and "cancel job" actions (#356)
Documentation
- Add a "Retry stalled jobs" howto (#366)
- Change comments in the README's code snippets (#371)
- Fix README async example, make both
sync
andasync
example more complete (#368) - Fix README example (#365)
- Remove the Sphinx bug-related addendum in the doc (#351)
Miscellaneous
- Dev-env script improvement (#353)
- Fix dev-env (#362)
- CI on both PRs and the master branch (#373)
- CI: switch from Branch to PR (#358)
- Fix deployment pipeline (#360)
- Add @thomasperrot as codeowner (#359)
- Make the shell fixture properly terminate the shell process (#352)
- Remove Admin and move its methods to JobManager (#349)
- Split procrastinate_finish_job into two functions (#336)