Skip to content

Add CI liveness pipeline for SUQL stack - #48

Open
skyxiath wants to merge 2 commits into
stanford-oval:mainfrom
skyxiath:add-testing-framework
Open

Add CI liveness pipeline for SUQL stack#48
skyxiath wants to merge 2 commits into
stanford-oval:mainfrom
skyxiath:add-testing-framework

Conversation

@skyxiath

@skyxiath skyxiath commented May 19, 2026

Copy link
Copy Markdown
Contributor

Brings up Postgres + the SUQL servers from nothing on each push, ingests
a private data sample, runs one canned answer() query end-to-end,
reports pass/fail. ~4 minutes warm cache, ~7 minutes cold.

Catches plumbing breaks (server boot, SQL compilation, prompt loading,
embedding server, free-text server, LLM proxy connectivity) at PR time
rather than later during research evals.

Two commits

  • setup.py: fix extras_require typo + add faiss-cpu to dev extras
    Standalone fix — the misspelled extra_requires was silently ignored
    by setuptools, so pip install -e .[dev] never installed the dev
    group. Adding faiss-cpu alongside FlagEmbedding since the
    embedding server needs it.
  • Add CI liveness pipeline
    The actual tests/ directory + .github/workflows/test.yml.

Required GitHub Secrets on consuming fork

  • FIXTURES_TOKEN — fine-grained PAT with Contents: Read on a
    private fixtures repo containing the sample CSV
  • OPENAI_API_KEY, OPENAI_API_BASE — LLM proxy creds

Required GitHub Variable

  • FIXTURES_REPOowner/name of the fixtures repo

Walkthrough in tests/SETUP.md.

Scope

This is a smoke test — it catches plumbing failures, not result quality.
Quality belongs in separate research evals.

Note

faiss_embedding.py's use_fp16 should also be gated on
torch.cuda.is_available() to make the embedding server boot on
CPU-only runners. That's posted separately as a one-line PR rather than
bundled here.

@skyxiath
skyxiath force-pushed the add-testing-framework branch 7 times, most recently from a6cceeb to 47a62ad Compare May 19, 2026 21:49
@skyxiath
skyxiath marked this pull request as ready for review May 20, 2026 18:30
skyxiath added 2 commits May 29, 2026 12:07
setup() takes `extras_require`, not `extra_requires`. The misspelled key
was silently ignored by setuptools, so `pip install -e .[dev]` never
installed the dev group.

Also add an `embedding` extras group with `FlagEmbedding>=1.3` and
`faiss-cpu>=1.7.4` — both required by faiss_embedding's EmbeddingStore
but neither declared anywhere. Kept separate from `[dev]` so installs
that only need the embedding server don't drag in spacy 3.6.0's
pydantic<2 constraint (which conflicts with current litellm).

FlagEmbedding pinned to >=1.3 because earlier 1.2.x patch versions
shipped with BGE_M3/trainer.py referencing `Optional` without importing
it from typing.
Brings up Postgres + SUQL servers from nothing on each push, ingests a
private data sample fetched from a separate fixtures repo via a
fine-grained PAT, runs one canned answer() query end-to-end. ~4 min
warm cache, ~7 min cold.

The point: catch plumbing breaks (server boot, SQL compilation, prompt
loading, embedding/free-text servers, LLM proxy) at PR time rather than
weeks later during research evals.

Layout:
  .github/workflows/test.yml    CI workflow
  tests/check_alive.py          liveness probe (one query, one verdict)
  tests/ingest.sh               applies schema + \COPY
  tests/start_embedding_server.py   embedding-server bootstrap
  tests/fixtures/schema.sql     example events table + roles
  tests/README.md, SETUP.md     user docs

Consuming fork must set three secrets (FIXTURES_TOKEN, OPENAI_API_KEY,
OPENAI_API_BASE) + one variable (FIXTURES_REPO). Walkthrough in
tests/SETUP.md.
@skyxiath
skyxiath force-pushed the add-testing-framework branch from 47a62ad to 1e9752f Compare May 29, 2026 19:11
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