Skip to content

chore(deps): bump pgqueuer from 0.26.3 to 1.0.0 in /backend#122

Open
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/pip/backend/pgqueuer-1.0.0
Open

chore(deps): bump pgqueuer from 0.26.3 to 1.0.0 in /backend#122
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/pip/backend/pgqueuer-1.0.0

Conversation

@dependabot
Copy link
Copy Markdown
Contributor

@dependabot dependabot Bot commented on behalf of github May 12, 2026

Bumps pgqueuer from 0.26.3 to 1.0.0.

Release notes

Sourced from pgqueuer's releases.

v1.0.0

PgQueuer v1.0.0

From here on: strict semver. Patch for bug fixes, minor for backward-compat features, major only for breaks. Public API frozen.

This release is a hard reset: cleaner core, fewer footguns, smaller surface, new building blocks for retries, failure handling, and AI introspection.

Why upgrade

Database-level retry, finally done right. Raise RetryRequested from any handler — the job stays in the queue, gets a bumped attempts counter, and re-runs after your chosen delay. Survives worker crashes, restarts, OOM kills.

from pgqueuer import RetryRequested
from datetime import timedelta
@​pgq.entrypoint("call_api")
async def call_api(job: Job) -> None:
if response.status == 429:
raise RetryRequested(delay=timedelta(seconds=30), reason="rate limited")

Exponential backoff in one line. DatabaseRetryEntrypointExecutor wraps any handler with retries + backoff, computed from job.attempts. No async-timeout, no in-process state.

@pgq.entrypoint(
    "flaky_api",
    executor_factory=lambda p: DatabaseRetryEntrypointExecutor(
        parameters=p, max_attempts=5, max_delay=timedelta(minutes=5),
    ),
)
async def flaky_api(job: Job) -> None: ...

Hold failed jobs for inspection. on_failure="hold" parks terminally failed jobs in the queue table with status='failed' instead of deleting them. Inspect with pgq failed, requeue with pgq requeue 42 43 44.

Concurrency limits are now global. concurrency_limit=5 means 5 across your entire fleet, enforced at the database via FOR UPDATE SKIP LOCKED. No more per-process semaphores that lied to you under horizontal scale.

MCP server for AI agents. pip install pgqueuer[mcp] ships an MCP server with 11 read-only tools (queue size, throughput, stale jobs, schema info, failed jobs, …). Plug it into Claude Code, Cursor, or any MCP client to let

... (truncated)

Changelog

Sourced from pgqueuer's changelog.

PgQueuer v1.0.0

This is the first stable release of PgQueuer. It includes significant breaking changes that clean up the API surface, enforce the hexagonal architecture, and remove deprecated code paths. The goal is to establish a solid, maintainable foundation — from v1.0.0 onward, PgQueuer follows semantic versioning strictly: patch releases for bug fixes, minor releases for backward-compatible features, and major releases only when breaking changes are unavoidable.

If you are upgrading from v0.26.x, expect a one-time migration effort. The checklist at the bottom covers every change. Once migrated, the public API is stable and will not break without a major version bump.

Breaking Changes

1. Sync entrypoints removed — all job handlers must use async def

Synchronous entrypoint functions (plain def) are no longer supported. Registering one raises TypeError immediately at decoration time with a message guiding you to the fix.

Before (v0.26.x):

@pgq.entrypoint("resize_image")
def resize_image(job: Job) -> None:
    img = cpu_bound_resize(job.payload)

After (v1.0.0):

import asyncio
@​pgq.entrypoint("resize_image")
async def resize_image(job: Job) -> None:
await asyncio.to_thread(cpu_bound_resize, job.payload)

How to migrate:

  • Change every def handler(job) to async def handler(job).
  • Wrap blocking or CPU-bound calls with await asyncio.to_thread(fn, ...).
  • If you used anyio.from_thread.run() to call async code from sync handlers, remove it — handlers now always run in an async context.
  • Remove imports of SyncEntrypoint and SyncContextEntrypoint — both are deleted.

The Entrypoint type alias is now AsyncEntrypoint | AsyncContextEntrypoint (previously a 4-variant union that included the sync types).

2. Factory functions must be async context managers

... (truncated)

Commits
  • 1f069ca docs: v1.0.0 release notes (#584)
  • 9e47f15 docs: v1 finalize documentation (#627)
  • 738fbd9 refactor(core): eliminate core→adapter import-linter exceptions (#625)
  • d85fcf0 refactor(ports): introduce TaskManagerPort, remove ports→core exception (#624)
  • 6195d12 refactor(drivers): move pg_notify into Driver protocol, remove build_notify_q...
  • 5abebfa fix(core): guard future state transitions against race conditions (#614)
  • f28abe9 fix(core): simplify listener_healthy timeout to raise directly (#619)
  • 84009f8 docs: prefer generic constructor syntax for typed stdlib objects (#620)
  • 17640c3 refactor(domain): consolidate utc_now into single utility (#615)
  • a98a9e0 perf(sm): batch scheduler heartbeat updates (#613)
  • Additional commits viewable in compare view

@dependabot dependabot Bot added dependencies Pull requests that update a dependency file python Pull requests that update python code labels May 12, 2026
@dependabot dependabot Bot changed the title Bump pgqueuer from 0.26.3 to 1.0.0 in /backend chore(deps): bump pgqueuer from 0.26.3 to 1.0.0 in /backend May 17, 2026
Bumps [pgqueuer](https://github.com/janbjorge/pgqueuer) from 0.26.3 to 1.0.0.
- [Release notes](https://github.com/janbjorge/pgqueuer/releases)
- [Changelog](https://github.com/janbjorge/pgqueuer/blob/main/RELEASE.md)
- [Commits](janbjorge/pgqueuer@v0.26.3...v1.0.0)

---
updated-dependencies:
- dependency-name: pgqueuer
  dependency-version: 1.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot force-pushed the dependabot/pip/backend/pgqueuer-1.0.0 branch from 2790efd to ad5f102 Compare May 17, 2026 10:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file python Pull requests that update python code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants