0.15.0 - Concurrency Races Everything Around Me
Important note: prior to this release, it was possible for a task to re-add itself during its own execution with docket.add(...), but that ability exposes a race condition. Instead, in that scenario, you'd do a docket.replace(...) instead (see the test changes in #209 for the example). Also, if you have tasks that reschedule themselves (by key) this way, try using a Perpetual dependency instead, it may be more ergonomic.
What's Changed
- Add docket.testing module for task scheduling assertions by @chrisguidry in #204
- Use stdlib uuid7 on Python 3.14+, fall back to vendored implementation by @chrisguidry in #205
- Fix replace() to register unregistered functions by @chrisguidry in #207
- Allow task registration before entering context manager by @chrisguidry in #208
- Fix duplicate task execution race condition by @chrisguidry in #209
Full Changelog: 0.14.1...0.15.0