Skip to content

Require psycopg >= 3.2.4 and test the floor in CI#128

Merged
roed314 merged 1 commit into
roed314:mainfrom
roed-math:psycopg-floor
Jul 22, 2026
Merged

Require psycopg >= 3.2.4 and test the floor in CI#128
roed314 merged 1 commit into
roed314:mainfrom
roed-math:psycopg-floor

Conversation

@roed-math

Copy link
Copy Markdown

Review finding, pre-1.0: the extras declared psycopg>=3.1, but notifications.py calls Connection.notifies(timeout=..., stop_after=...) — kwargs psycopg added in 3.2 — so NotificationListener.poll() raises TypeError on 3.1.x. psycopg 3.2.4 additionally fixed notifications being dropped while no generator was consuming them (psycopg news), which the pull-based poll() design depends on.

  • Both extras now require psycopg>=3.2.4, with the reasoning in a pyproject comment; README's supported-versions list and the CHANGELOG's psycopg-3 migration note say so.
  • The CI database matrix gains an oldest-everything row — py3.9 + PG13 with psycopg[binary]==3.2.4 pinned after the normal install — so the declared floor stays tested. The row is labeled PostgreSQL 13 (py3.9, psycopg 3.2.4).
  • Also corrects the pgsource description: pip install psycopg is the pure-Python implementation, which uses the system libpq at runtime — nothing is compiled (psycopg docs).

Verified locally: full suite 857 passed / 36 skipped under psycopg[binary]==3.2.4 (PG18), exactly what the new CI cell runs.

Should land before the v1.0.0rc1 release so the floor is baked into the published metadata.

🤖 Generated with Claude Code

The extras declared psycopg >= 3.1, but the notification listener calls
Connection.notifies(timeout=..., stop_after=...), which psycopg added in
3.2 -- on 3.1.x, NotificationListener.poll() raises TypeError.  psycopg
3.2.4 additionally fixed notifications being dropped while no generator
was consuming them, which the pull-based poll() design depends on.
Raise both extras to >= 3.2.4 and say so in the README's supported
versions and the CHANGELOG migration note.

To keep the floor honest, the database matrix gains an oldest-everything
row (py3.9, PG13) that reinstalls psycopg[binary]==3.2.4 after the
normal install; the full suite passes under it (857 passed / 36 skipped
locally).

Also corrects the pgsource description: pip install psycopg is the
pure-Python implementation, which uses the system libpq at runtime --
nothing is compiled.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@read-the-docs-community

Copy link
Copy Markdown

Documentation build overview

📚 psycodict | 🛠️ Build #33702879 | 📁 Comparing 6d39a37 against latest (bac6dc5)

  🔍 Preview build  

1 file changed
± README.html

@roed314
roed314 merged commit 984623a into roed314:main Jul 22, 2026
20 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants