ci(pg19): bump pgvector to v0.8.3 + Windows event-loop policy (cherry-pick from fix/pg19-compat-and-demo)#153
Merged
Conversation
…op policy in smoke harness Two PG 19 compat fixes cherry-picked from your `fix/pg19-compat-and-demo` branch and rebased onto current main: 1. Bump pgvector v0.8.0 → v0.8.3 in the PG 19 Dockerfile. v0.8.3 has PG 19 support (LWLock API rename handled upstream); v0.8.0 didn't. This is the *proper* fix that supersedes PR #152's best-effort try-and-continue fallback. The fallback wrapper stays as a safety net so a future PG 20 / upstream-lag scenario doesn't gate the rest of the image, but the expected path is now "build succeeds". 2. Add a Windows event-loop policy to `scripts/smoke_test_pg19.py`. Windows shells default to ProactorEventLoop which psycopg's async subsystem doesn't play well with — switch to selector loop when `sys.platform == 'win32'` so the smoke harness runs cleanly against a Windows-native test cluster. No-op on Linux / macOS. Two other files in the source branch were intentionally left out: * `scratch/fetch_pgvector.py` carries a hardcoded `c:\Users\devop\OneDrive\...` path — personal local scratch. * `tests/unit/test_demo.py` imports from a `demo` module that doesn't exist on either branch — broken on land. Roadmap impact: closes the practical concern behind row 14.1's pgvector-on-PG-19 follow-up; vector tests can now run on the PG 19 matrix entry once main rebuilds. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0122yLZLJ8t4W43sdN6BmTZc
Contributor
There was a problem hiding this comment.
Code Review
This pull request updates the PG 19 CI Dockerfile to pin and build pgvector v0.8.3, which is compatible with PostgreSQL 19, while keeping the try-and-continue safety net. Additionally, it configures the WindowsSelectorEventLoopPolicy in the smoke test script when running on Windows to prevent connection errors with the psycopg async subsystem. I have no further feedback to provide as there are no review comments to evaluate.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Cherry-picks the two valuable PG 19 compat fixes from your
fix/pg19-compat-and-demobranch (which was based on an oldermainpredating the Phase 3 PRs and would have wiped out ~1,800 lines if merged directly). Both fixes are rebased onto currentmain.What's in
1. pgvector
v0.8.0 → v0.8.3in.github/ci-postgres-pg19.DockerfileThis is the proper fix for the pgvector PG 19 compile issue I worked around in PR #152 with a best-effort try-and-continue. v0.8.3 carries upstream PG 19 support (LWLock API rename handled). Now the expected path is "build succeeds and vector tests run on the PG 19 matrix entry."
PR #152's safety-net wrapper stays so a future PG 20 / upstream-lag scenario doesn't gate the rest of the image — but the warning text is updated to reflect v0.8.3 being the new pin.
2. Windows event-loop policy in
scripts/smoke_test_pg19.pyAdds:
Windows shells default to ProactorEventLoop which psycopg's async subsystem doesn't play well with. Selector loop runs cleanly. No-op on Linux / macOS.
What's intentionally left out
scratch/fetch_pgvector.pyc:\Users\devop\OneDrive\…path — personal local scratchtests/unit/test_demo.pydemomodule that doesn't exist on either branch — broken on landRoadmap impact
Closes the practical concern behind roadmap row 14.1's pgvector-on-PG-19 follow-up. Once this merges + main rebuilds, vector tests should run on the PG 19 matrix entry instead of skipping.
After this lands you can safely delete the source branch
fix/pg19-compat-and-demo.Test plan
uv run ruff check scripts/smoke_test_pg19.py— clean🤖 Generated with Claude Code
https://claude.ai/code/session_0122yLZLJ8t4W43sdN6BmTZc
Generated by Claude Code