Skip to content

Releases: procrastinate-org/procrastinate

0.24.1: Fix deploy workflow

21 Apr 11:59
0.24.1
a76ef63
Compare
Choose a tag to compare

Migrations

None

Changelog

  • Fix deploy workflow (#577)

0.24.0

21 Apr 12:18
6882c02
Compare
Choose a tag to compare

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

Miscellaneous

  • Remove assert in real code (#535)
  • Fix a few typos in the docs by @benjamb (#563)

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

@benjamb

0.23.0: Arguments for periodic tasks

19 Dec 19:59
1582d41
Compare
Choose a tag to compare

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

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:

@aleksandr-shtaub

0.22.0: Blueprints, with_connector, list_locks, py3.10 etc.

05 Dec 23:59
d8d039e
Compare
Choose a tag to compare

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:

@tomdottom, @elemoine, @ewjoachim

0.21.0: Support for SQLAlchemy

27 Sep 20:24
3bcf84f
Compare
Choose a tag to compare

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 like Task at {task_name} was not registered, it's been loaded dynamically. (with log action load_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

  • Nitpick on worker.py (#448)
  • Fix docstring and Psycopg2Connector init signature (#447)

Process

Kudos:

@mecampbellsoup and @tomdottom

0.20.0: Bugfixes, performance, & janitoring

30 Jul 08:46
74c50b6
Compare
Choose a tag to compare

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

Kudos:

@elemoine, @ioben, and Mickaël Guérin

0.19.0: define additional context on the worker

16 Apr 15:50
de78149
Compare
Choose a tag to compare

Migrations

None

Features

  • Make it possible to define additional context on the worker (#392)

Bug Fixes

  • Small fix for dev-env script (#387)
  • Fix the async howto (#388)

Miscellaneous

  • Small fix for dev-env script (#387)
  • Update PR template (#389)

Kudos:

@elemoine, @ewjoachim and @mxd4

0.18.2: Fix SQL migration compatibility issue

05 Feb 10:30
136d7ff
Compare
Choose a tag to compare

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

  • Fix finish_job compatibility issue (#383)
  • Do not raise in the BaseConnector destructor (#385)

Miscellaneous

  • Update CONTRIBUTING.rst: add info on rebuilding docs (#380)

Kudos:

@BracketJohn

0.18.1: Bugfixes

13 Jan 14:06
f280dfe
Compare
Choose a tag to compare

⚠️ If you plan to deploy 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

  • add todo check for queueing lock, add test for todo check (#379)
  • Fix doc parts (#377)

Kudos:

@BracketJohn and @tmartinfr

0.18.0: Log format & auto-delete finished jobs

08 Jan 10:58
4e96713
Compare
Choose a tag to compare

Migrations

⚠️ These migration contain an incompatibility that is resolved in 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 and async 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)

Kudos:

@BracketJohn, @ignaciocabeza, @mxd4