Skip to content

Releases: wa-pis/iddqueue

IDDQueue 0.13.0

Choose a tag to compare

@wa-pis wa-pis released this 07 Oct 19:40
v0.13.0
09a8393

IDDQueue 0.13.0

The first stable IDDQueue release promotes the verified RC5 runtime. No runtime,
dependency or database schema changes are introduced after RC5.

Highlights

  • PostgreSQL broker and Results backend for Dramatiq using Psycopg 3, with lazy
    owned pools, session advisory locks, LISTEN/NOTIFY and delayed tasks.
  • Domain actor declarations before broker initialization, domain-derived queue
    names and one application entrypoint for multiple worker processes.
  • Atomic business data and task publication through caller-owned synchronous or
    asynchronous Psycopg transactions; optional synchronous SQLAlchemy adapter.
  • Deduplication keys/TTL and ordered atomic batches of up to 1000 inputs.
  • PostgreSQL rate limits, durable barriers and standard Dramatiq group callbacks;
    verified pipelines, groups and AsyncIO middleware.
  • Failed-task inspection/retry, queue pause/resume, cooperative cancellation,
    opt-in attempt history and a fixed-interval scheduler.
  • Queue/domain statistics, native error/retry metrics and optional Prometheus
    collection with a Grafana example.
  • External schema management, custom recipes, FastAPI examples and graceful
    worker shutdown/restart guides.

These capabilities were delivered and tested across RC1–RC5. This release adds
stable packaging and documentation rather than new runtime behavior.

Install and upgrade

uv pip install "iddqueue[binary]==0.13.0"

From 0.13.0rc5, update the package pin; no DDL migration or actor changes are
required. Roll back by restoring the RC5 pin. From older IDDQueue candidates or
upstream dramatiq-pg, follow the migration guide, including backup,
explicit schema upgrade where required and rollback validation. The broker never
creates or migrates database objects automatically.

See domain setup, async transactional recipe,
SQLAlchemy and API reference.

Operational boundaries

Delivery remains at least once; actors must be idempotent. Deduplication does
not provide exactly-once execution. Locks/listeners require persistent PostgreSQL
sessions, so PgBouncer transaction pooling is unsuitable. Namespaces separate
storage; they do not enforce access control.

Async transaction methods accept an active caller-owned Psycopg AsyncConnection
in the same database as the business writes. Enqueue hooks remain synchronous and
pre-commit. Ordinary publication, consumers, results and the SQLAlchemy adapter
remain synchronous. Scheduling supports fixed intervals, not cron expressions.

IDDQueue remains pre-1.0: extension API stability follows the
support policy.
The tested CI matrix is Python 3.10/3.13/3.14 × PostgreSQL 14/18; other versions
are not implied by broad dependency ranges. The archived django-dramatiq-pg
integration has not been validated with IDDQueue.

Verification and attribution

The release gate checks unit/functional tests on a dedicated PostgreSQL instance,
Ruff, locked dependencies, strict documentation/OpenSpec, wheel/sdist LICENSE,
isolated installation profiles, quickstart and the async business/actor recipe.
Local validation passed: 200 tests, async actor recipe, strict docs/OpenSpec,
build/LICENSE and isolated base/monitoring/SQLAlchemy profiles. Candidate CI: all six Python/PostgreSQL combinations passed before publication. GitHub and PyPI
receive the same verified artifacts with SHA256 readback and a clean registry install.

The completed static Codex Security diff review after RC4 covered 20 changed paths
and found no new security findings. This is not a fresh full-repository or
production deployment audit. See the changelog
and release procedure.

IDDQueue preserves DALIBO's PostgreSQL license and original contributor credits.

Candidate and artifacts

Signed candidate: 09a8393377f5335b3cf0eb85c08845cbb9751f3c.

eaa5e6c855485249908c67eaab24ddfd71b762f2030cefe7cba31f5ec68c1826  iddqueue-0.13.0-py3-none-any.whl
8531940c89b29e88161e547f1d441b13f52f3c01a8330de315a91862356b4ddb  iddqueue-0.13.0.tar.gz

GitHub wheel/sdist are uploaded unchanged to PyPI through Trusted Publishing
with environment pypi; no rebuild.

Publication acceptance

  • PyPI 0.13.0
  • OIDC publication: success, environment pypi.
  • Publisher CI: 6/6 passed.
  • GitHub/PyPI SHA256 matched; clean index install passed sync quickstart and async business/actor recipe with cleanup.

IDDQueue 0.13.0rc5

IDDQueue 0.13.0rc5 Pre-release
Pre-release

Choose a tag to compare

@wa-pis wa-pis released this 07 Oct 07:35
v0.13.0rc5
186542b

IDDQueue 0.13.0rc5 adds explicit async transactional publication using Psycopg 3 AsyncConnection.

  • await broker.enqueue_in_transaction_async(...) and await broker.enqueue_many_in_transaction_async(...) publish atomically with caller business writes.
  • Delay, deduplication, ordered batches up to1000, savepoints and cancellation propagation; caller owns outer commit/rollback/connection. Hooks remain synchronous and pre-commit.
  • Consumers, results, ordinary actor.send and optional SQLAlchemy adapter remain synchronous. No DDL migration from RC4.
  • 200localtests passed; complete release gate includes async recipe, build/LICENSE and isolated installed-package checks. Static Codex Security diff review covered20changed paths afterRC4; no new findings. Dependency advisory feeds and production grants were not audited.

Install:

uv pip install "iddqueue[binary]==0.13.0rc5"

Signed candidate: 186542bdf615ea48cb53a8142cc588f5726af5f8.

Release notes · Async recipe · Candidate CI

Exact wheel/sdist hashes are in SHA256SUMS. RC1–RC4 assets remain unchanged. PyPI 0.13.0rc5 published successfully through OIDC run37588338940, using these exact GitHub assets without rebuilding. PyPI hashes matched; clean registry installation and async actor recipe passed. Candidate/tag/publisher CI all passed6/6.

IDDQueue 0.13.0rc4

IDDQueue 0.13.0rc4 Pre-release
Pre-release

Choose a tag to compare

@wa-pis wa-pis released this 07 Oct 01:29
v0.13.0rc4
ca68594

Fourth release candidate. Signed candidate: ca68594.

  • Domain queue snapshots and optional Prometheus domain gauges/debugging kit.
  • Optional synchronous SQLAlchemy Connection/Session transactional enqueue on Psycopg 3.
  • External schema, custom recipe and graceful SIGHUP/SIGTERM worker guides.
  • Malformed NOTIFY validation with preserved consumer sessions/locks; consistent UUID claim/ACK identity.
  • Claims acquire one advisory lock per statement even with sequential scans, preventing reentrant lock leaks after ACK/NACK.
  • Local PostgreSQL example binds to loopback; Grafana dotted/multiple-domain interpolation and deterministic retry/delay/crash tests fixed.

No DDL migration from RC3. Monitoring/SQLAlchemy remain optional; delivery is at least once. Stop old workers before upgrading if using custom noncanonical UUID message IDs. Standard Dramatiq-generated UUID lock keys are unchanged.

Validation: 191 tests on dedicated PostgreSQL 14.20/Python 3.13.14; Ruff, locked environment, strict docs/OpenSpec, build/LICENSE, isolated base/monitoring/SQLAlchemy wheel checks and quickstart. Candidate CI passed all six Python/PostgreSQL combinations on its first attempt; documentation succeeded. Static Codex Security review found medium NOTIFY availability and low local-example network-binding issues; both fixed and regression checked. Historical prose/dependency feeds were not comprehensively audited.

Evaluation prerelease; PostgreSQL license and upstream credits preserved. See release notes and changelog. Attached wheel/sdist SHA256 values are in SHA256SUMS. PyPI publication is a separate verified workflow stage.

Published on PyPI through Trusted Publishing. PyPI wheel/sdist SHA256 values match the attached assets.

IDDQueue 0.13.0rc3

IDDQueue 0.13.0rc3 Pre-release
Pre-release

Choose a tag to compare

@wa-pis wa-pis released this 06 Oct 21:53
v0.13.0rc3
911ca1a

Domain actors with late broker registration, domain queues and one framework-independent worker bootstrap. Native Results, pipelines/groups, multi-container replicas and shutdown verified.

Install: uv pip install "iddqueue[binary]==0.13.0rc3"

Additive opt-in API; existing actors continue to work. No database schema migration. At-least-once delivery; actors must be idempotent. Each process registers domains at startup; no hot rebinding.

Candidate: 911ca1a3a197b1745af15f6a4bf399cd470ce969. Local gate: 158 tests, Ruff/lock/docs/build/LICENSE/clean installed acceptance passed.

Domain guide · Release notes

PostgreSQL license and original credits preserved. Wheel/sdist and SHA256SUMS attached. RC1/RC2 assets remain unchanged.

IDDQueue 0.13.0rc2

IDDQueue 0.13.0rc2 Pre-release
Pre-release

Choose a tag to compare

@wa-pis wa-pis released this 06 Oct 19:05
v0.13.0rc2
784bd30

IDDQueue 0.13.0rc2

Second release candidate, following RC1.

Changes since RC1

  • Published searchable documentation with manual steps and CLI commands.
  • Refreshed installation, migration, API and upstream comparison guides.
  • Removed obsolete legacy assets/configuration and local agent skills from Git.
  • Moved functional worker actors into tests and optional PostgreSQL Compose into examples.
  • Removed unused Dramatiq watch extra and redundant CLI parser defaults.

Runtime APIs, database schema and delivery guarantees are unchanged. Existing
RC1 installations can update the package without a new schema migration.
Delivery remains at least once; actors must be idempotent.

Install

uv pip install "iddqueue[binary]==0.13.0rc2"

See walkthrough, migration,
FastAPI and release checks. This is a prerelease
for evaluation. The PostgreSQL license and original credits are preserved.

Candidate: 784bd3044d1a880eb863a6547a7edf4d62bd2bc6.

SHA256:

de844d3544507c6c3947dde01ee940be0dcf25ee5bd7013285f28eb1535a3d1a  iddqueue-0.13.0rc2-py3-none-any.whl
8f3f36dbb542715c6b43366ced0a10b67abb2259345710b53e87b18f0ee93dd2  iddqueue-0.13.0rc2.tar.gz

IDDQueue 0.13.0rc1

IDDQueue 0.13.0rc1 Pre-release
Pre-release

Choose a tag to compare

@wa-pis wa-pis released this 04 Oct 20:20

IDDQueue 0.13.0rc1

First release candidate for the independent IDDQueue fork of
DALIBO dramatiq-pg.
This is a prerelease for evaluation, not a published stable release.
The PostgreSQL license and original contributor credits are preserved.

Included

Synchronous Psycopg 3 and Dramatiq 2.2.1+, transactional/batch enqueue,
PostgreSQL coordination, deduplication, queue control/cancellation, failure retry,
attempt history, scheduling, namespace isolation, optional Prometheus metrics,
and a FastAPI example. See the changelog.
Task notifications carry message IDs only; consumers retrieve authoritative SQL rows.

Test installation

From the verified checkout, artifacts are built into dist/0.13.0rc1/:

uv pip install 'dist/0.13.0rc1/iddqueue-0.13.0rc1-py3-none-any.whl[binary]'
iddqueue --version

The expected CLI/metadata version is 0.13.0rc1. Monitoring is optional; use
[binary,monitoring] when needed. FastAPI is an example dependency group, not
part of the package runtime. Published on PyPI and
GitHub.
Install from PyPI with uv pip install "iddqueue[binary]==0.13.0rc1".
The repository is public.

Migration and limits

Follow the migration guide: stop all participants, back up data,
update imports/CLI/metric names, run iddqueue upgrade, then restart participants
with consistent schema/prefix and feature flags. Update every publisher, worker
and scheduler to remove older payload-bearing notifications. Do not run init
over existing storage. Non-default namespaces change channels/lock domains.

Delivery is at least once: tasks and callbacks must be idempotent. Cancellation
of running work is cooperative. Scheduling uses fixed intervals. Async actors
use Dramatiq middleware; publication/results remain synchronous. FastAPI async
endpoints offload publication to a thread; AsyncConnection transactional enqueue
is unsupported. Disconnecting an HTTP client does not cancel a commit.

A downgrade is not a reverse schema migration. Preserve the backup and previous
application configuration; follow the migration guide's rollback limitations.

Candidate evidence

The OpenSpec prepare-rc-release evidence records the candidate SHA, actual CI,
commands, wheel/sdist SHA256 and known limitations. Build hashes identify those
specific artifacts. Release procedure covers repeatable validation.
GitHub prerelease and PyPI publication completed; TestPyPI was not used.

Verified package candidate: 4e808632f920390100658b091bac2ab97a55eb2a. 147 tests, candidate CI 6/6. PyPI OIDC publication succeeded; remote file SHA256 and clean index install verified. Download the wheel/sdist/SHA256SUMS assets from this prerelease.