Skip to content

ci: add python wheel smoke test - #6

Open
leeloveloli wants to merge 1 commit into
VexDB-THU:devfrom
leeloveloli:contrib-python-smoke
Open

ci: add python wheel smoke test#6
leeloveloli wants to merge 1 commit into
VexDB-THU:devfrom
leeloveloli:contrib-python-smoke

Conversation

@leeloveloli

Copy link
Copy Markdown

Summary

  • add a minimal vexdb_lite Python wrapper package that opens DuckDB connections with VEX loaded by default
  • add a Python wheel smoke test covering extension load, distance functions, GRAPH_INDEX creation, filtered ANN query, and VEX_INDEX_SCAN planning
  • update the wheel workflow to inject the current vexdb_duckdb + common layout into the DuckDB sdist and target DuckDB 1.5.2
  • document the new Python wheel entry point

Tests

  • python -m py_compile packaging\vexdb_lite\__init__.py packaging\smoke_test.py
  • python -c "import yaml; yaml.safe_load(open('.github/workflows/build-wheels.yml', encoding='utf-8')); print('workflow yaml ok')"
  • git diff --check

Note: I did not run the full wheel build locally because compiling the DuckDB Python wheel is heavy; the PR focuses on fixing the packaging files and smoke-test path that the existing workflow already references.

@vibeinging vibeinging left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

发现一个阻断问题,建议先改完再合并。

packaging/smoke_test.py 里新增的 smoke test 创建了:

CREATE INDEX idx_items_vec ON items USING GRAPH_INDEX (vec, category) WITH (m = 8)

但这个 PR 的目标分支 dev 中,vexdb_duckdb/index/graph_index.cpp 明确拒绝多列/filtered GRAPH_INDEX:当 input.unbound_expressions.size() > 1 时会抛出 GRAPH_INDEX currently supports only a single FLOAT[N] column; multi-column (hybrid/filtered) form is disabled in this release

这会导致新加的 wheel smoke test 在 CREATE INDEX 阶段直接失败,还没走到后面的 ANN 查询和 VEX_INDEX_SCAN 校验。

建议把 smoke test 改成当前支持的 GRAPH_INDEX (vec)。如果想覆盖 WHERE category = ...,可以先验证单列索引 + 后置过滤路径;如果当前版本不能保证这个行为,就先覆盖 unfiltered ANN,把 filtered ANN 单独留到 multi-column/hybrid support 恢复后再测。

补充确认:VEX_INDEX_SCANvex_brute_force_threshold 在这个 PR 的 dev base 上都是正确命名,不是问题。

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