Skip to content

ci: multi-transport (subprocess/http/unix) SQL E2E matrix#1

Merged
rustyconover merged 1 commit into
mainfrom
ci/multi-transport-sql
Jun 24, 2026
Merged

ci: multi-transport (subprocess/http/unix) SQL E2E matrix#1
rustyconover merged 1 commit into
mainfrom
ci/multi-transport-sql

Conversation

@rustyconover

Copy link
Copy Markdown
Contributor

Run the haybarn SQL suite over all three VGI transports (subprocess, http, unix), parameterizing ci/run-integration.sh by $TRANSPORT and turning the integration job into a transport × os matrix.

  • http: worker booted with --http --port 0 --port-file; httpfs injected into staged tests; silent-skip guard fails the leg unless All tests passed (N>0); http extra (waitress) added to pyproject + PEP 723 + relocked.
  • unix: worker booted with --unix <sock>.
  • Local validation: subprocess GREEN (21), unix GREEN (21), http GREEN (25).

Unit/lint jobs unchanged.

🤖 Generated with Claude Code

Run the haybarn SQL suite (test/sql/*.test) over all three VGI transports, not
just subprocess/stdio. The vgi extension picks the transport from the ATTACH
LOCATION string, so run-integration.sh is now parameterized by $TRANSPORT and
builds that string per leg:

  subprocess : .venv/bin/python rerank_worker.py  (stdio; extension spawns it)
  http       : http://127.0.0.1:<port>  (worker booted with --http --port 0
               --port-file; harness polls the port-file, then ATTACHes the URL)
  unix       : unix:///tmp/rerank-<pid>.sock  (worker booted with --unix; harness
               polls for the socket)

http leg specifics (resolved, not gated):
- httpfs is mandatory: the vgi extension routes worker-RPC HTTP through DuckDB's
  httpfs, so the http leg injects `INSTALL httpfs FROM core; LOAD httpfs;` after
  each `LOAD vgi;` in the staged tests.
- waitress via the new `http` extra: pyproject + PEP 723 header now list
  `vgi-python[http]`; CI runs `uv sync --frozen --extra http` (relocked).
- Silent-skip guard: the runner SKIPS (exit 0) any error containing "HTTP", so
  run-integration.sh fails the leg unless the runner reports
  "All tests passed (N assertions ...)" with N>0 and zero skips — no fake green.

CI: integration job becomes a transport × os matrix. Unit/lint jobs unchanged.

Local validation (haybarn-unittest): subprocess GREEN (21), unix GREEN (21),
http GREEN (25, +4 injected httpfs INSTALL/LOAD). ruff clean.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@rustyconover rustyconover merged commit 758b35f into main Jun 24, 2026
10 checks passed
@rustyconover rustyconover deleted the ci/multi-transport-sql branch June 24, 2026 01:48
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.

1 participant