Skip to content

sqlite-vec: add build-sqlite-vec.yml for riscv64 wheels - #951

Open
luhenry wants to merge 1 commit into
mainfrom
sqlite-vec
Open

sqlite-vec: add build-sqlite-vec.yml for riscv64 wheels#951
luhenry wants to merge 1 commit into
mainfrom
sqlite-vec

Conversation

@luhenry

@luhenry luhenry commented Sep 4, 2026

Copy link
Copy Markdown
Member

Compiles the vec0 SQLite loadable extension (one C file linked against the SQLite amalgamation) into a shared library, packaged as a py3-none platform wheel. Upstream publishes no riscv64 wheel.

Mirrors the build steps of upstream's release.yaml (scripts/vendor.sh && make loadable).

Differs from upstream

  • Wheel packaging - upstream's own sqlite-dist tool has no riscv64 entry in its platform table, so the workflow reproduces its pip target inline.
  • Single py3-none build, no interpreter matrix - the extension is dlopen'd via sqlite3.load_extension, not a CPython C extension.
  • Tests run on the runner rather than in the manylinux container - its bundled Pythons are built with loadable extensions disabled.

Testing

  • Runs upstream's tests/test-*.py suite against the built extension, then installs the wheel and calls vec_version().

License: MIT OR Apache-2.0, both texts included; the vendored SQLite amalgamation is public domain.

91 passed, 4 skipped (upstream's own suite).

* **Package**: `sqlite-vec`
* **Version**: `0.1.9`
* **Source**: https://github.com/asg017/sqlite-vec
* **Docs**: https://alexgarcia.xyz/sqlite-vec

Compiles the vec0 SQLite loadable extension (one C file linked against the SQLite amalgamation) into a shared library, packaged as a py3-none platform wheel. Upstream publishes no riscv64 wheel.

Mirrors the build steps of upstream's [`release.yaml`](https://github.com/asg017/sqlite-vec/blob/v0.1.9/.github/workflows/release.yaml) (`scripts/vendor.sh && make loadable`).

**Differs from upstream**
- Wheel packaging - upstream's own `sqlite-dist` tool has no riscv64 entry in its platform table, so the workflow reproduces its pip target inline.
- Single py3-none build, no interpreter matrix - the extension is `dlopen`'d via `sqlite3.load_extension`, not a CPython C extension.
- Tests run on the runner rather than in the manylinux container - its bundled Pythons are built with loadable extensions disabled.

**Testing**
- Runs upstream's `tests/test-*.py` suite against the built extension, then installs the wheel and calls `vec_version()`.

**License**: MIT OR Apache-2.0, both texts included; the vendored SQLite amalgamation is public domain.

91 passed, 4 skipped (upstream's own suite).
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