Restore unconditional psycopg[binary] now that cp315 wheels ship

Merged
FA
3d ago
+6-18

Description

Follow-up to #6930 (Python 3.15 support). psycopg-binary 3.3.6 now publishes cp315 wheels (Linux, macOS, Windows), so the 3.15 fallback to pure-python psycopg is no longer needed.

  • pyproject.toml (dev group) and docs/app/pyproject.toml: collapse the markered psycopg[binary]; python_version < '3.15' / psycopg; python_version >= '3.15' pairs back to a single psycopg[binary] and drop the TODO comments.
  • uv.lock: re-locked with uv 0.13.6 (the CI-pinned version); the diff is only the psycopg entries collapsing. Locked psycopg-binary==3.3.6 includes all 11 cp315 wheels.

Only dev/test/docs environments are affected; the published reflex package is unchanged, so no news fragment (reflex-release changelog-check: "No packaged source changes").

closes #7148

Type of change

  • Dependency / dev-environment maintenance (non-breaking)

Testing

  • uv sync --locked --python 3.15 installs psycopg-binary==3.3.6 from a wheel; psycopg.pq.__impl__ == "binary" on CPython 3.15.2.
  • Unit tests on 3.15: 15270 passed locally.
  • pre-commit passes on the changed files.
  • 3.15 legs of unit_tests.yml (ubuntu, windows) and integration_app_harness.yml (memory/redis, selenium + playwright) pass in CI.

Notes for reviewers

  • No >=3.3.6 floor was added, matching the other unpinned dev deps; the lock pins 3.3.6.
  • Free-threaded CPython (cp315t) has no psycopg-binary wheel. This is not new: cp313t and cp314t have none either, and uv sync --locked --python 3.14t already fails on main. No free-threaded interpreter is in the CI matrix.