Skip to content

Restore LanceDB backend wiring and packaging metadata - #37

Open
Nitjsefnie wants to merge 2 commits into
mienetic:mainfrom
Nitjsefnie-OSC:candidate/issue-34-lancedb-fix1-20260818
Open

Nitjsefnie wants to merge 2 commits into
mienetic:mainfrom
Nitjsefnie-OSC:candidate/issue-34-lancedb-fix1-20260818

Conversation

@Nitjsefnie

Copy link
Copy Markdown
Contributor

Summary

Restore the LanceDB backend wiring and package metadata that were lost during an earlier cherry-pick, including Python 3.10-compatible regression coverage.

Related issue

Closes #34

Changes

  • Restore the lancedb optional dependency, all membership, package keyword, mypy override, and pytest marker
  • Restore lancedb as a valid configured backend and route it through the lazy backend factory
  • Add regression tests for packaging, configuration, factory dispatch, and the missing-dependency error
  • Use tomli only on Python 3.10 so the regression tests collect across the supported Python matrix

Checklist

  • ruff check . is clean
  • pytest passes (with the relevant [extra] installed if you touched a backend)
  • New public functions / classes have docstrings
  • Docs updated (README.md, SKILL.md, docs/) if user-facing behavior changed
  • If this adds a backend or embedding provider: registered in the factory (__init__.py::make_*), added an [extra] in pyproject.toml, and added a test class

Notes for reviewer

Fork CI ran the full Python 3.10–3.13 matrix at d88b15f1d7185fbe51a6af4d6e29707c902f021a: all four jobs passed with 158 tests passing and 16 pre-existing skips per interpreter. The tests keep LanceDB I/O hermetic while still installing the real lancedb extra in CI.

Generated by Kimi K3 (implementation, verification), GPT-5.6 Sol (brief, review)

Nitjsefnie and others added 2 commits August 18, 2026 11:44
The LanceDB backend module (src/mnema/backends/lancedb.py) still ships,
but the wiring around it was lost when the pgvector cherry-pick
(af4bc31) rewrote pyproject.toml, config.py, and the backend factory.

Restore, using the last good upstream revision (1f5d8f4) as the source
of truth:
- the `lancedb` optional-dependency group (lancedb>=0.10) and its
  inclusion in the `all` extra
- the `lancedb` project keyword, mypy override module entry, and
  pytest marker
- `lancedb` in the BackendName literal
- the `lancedb` factory branch in make_backend

Add regression tests covering both packaging metadata and runtime
wiring (offline fake for the lancedb module; no network/credentials).

Co-Authored-By: Kimi K3 <noreply@kimi.com>
The new regression test module imported stdlib tomllib, which exists
only on Python 3.11+, so the test file could not even be collected on
the supported 3.10 CI leg. Gate the import on sys.version_info and
declare the tomli backport in the dev extra for Python < 3.11.

Co-Authored-By: Kimi K3 <noreply@kimi.com>
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.

Cherry-pick af4bc31 rolled pyproject.toml back, dropping the api and lancedb extras and unwiring the LanceDB backend

1 participant