You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Follow-up to #447. A consumer on free-threaded CPython 3.14 (cp314t) hit:
Cannot install java-codebase-rag… no matching distribution for lancedb
pip install backtracks through every release and fails on all of them.
Root cause
java-codebase-rag itself is pure Python (py3-none-any.whl) and runs fine on free-threaded builds. The vector stack on free-threaded, component by component:
dep
cp313t/cp314t wheel?
cocoindex
✅ yes
torch (via sentence-transformers)
✅ yes (2.13+)
sentence-transformers
✅ pure Python
lancedb
❌ none, in any version — sole blocker
lancedb is load-bearing (it is the vector store — search_lancedb.py + cocoindex[lancedb]), so there's no drop-in swap.
Why we can't fix it today
Can't loosen the pin — no lancedb version ships a free-threaded wheel.
Can't marker-gate it — no pip-supported marker detects free-threaded Python. PEP 780's sys_abi_features would express it, but it's still Draft and unimplemented in pip/packaging (unknown marker → hard parse failure for everyone).
Can't swap lancedb.
Decision (2026-07-14)
Doc-only stopgap: documented the limitation in the README install section and the pyproject.toml vector-stack comment (branch docs/free-threaded-cpython-note), and advised consumers to use standard CPython (3.11–3.14, not the t build).
We deliberately did not make the vector stack an optional [vector] extra: it would change the headline install command for every standard-Python user, and still wouldn't give free-threaded users vectors (lancedb blocks it) — only graph-only.
Context
Follow-up to #447. A consumer on free-threaded CPython 3.14 (
cp314t) hit:pip installbacktracks through every release and fails on all of them.Root cause
java-codebase-ragitself is pure Python (py3-none-any.whl) and runs fine on free-threaded builds. The vector stack on free-threaded, component by component:cp313t/cp314twheel?lancedbis load-bearing (it is the vector store —search_lancedb.py+cocoindex[lancedb]), so there's no drop-in swap.Why we can't fix it today
lancedbversion ships a free-threaded wheel.sys_abi_featureswould express it, but it's still Draft and unimplemented in pip/packaging (unknown marker → hard parse failure for everyone).Decision (2026-07-14)
Doc-only stopgap: documented the limitation in the README install section and the
pyproject.tomlvector-stack comment (branchdocs/free-threaded-cpython-note), and advised consumers to use standard CPython (3.11–3.14, not thetbuild).We deliberately did not make the vector stack an optional
[vector]extra: it would change the headline install command for every standard-Python user, and still wouldn't give free-threaded users vectors (lancedb blocks it) — only graph-only.Trigger to act
Either of:
cp313t/cp314twheels → tracked upstream at Publish free-threaded Python wheels lancedb/lancedb#3453 (open) and CI work Split Python test CI build/test steps and add free-threaded 3.14t build lancedb/lancedb#3456sys_abi_featureslands in pip/packaging → https://peps.python.org/pep-0780/ (Draft)When unblocked
README.md(Install section) and thepyproject.tomlcomment.pip install java-codebase-ragresolves onpython3.14t(Apple Silicon arm64 is the reproduction path from pip install --upgrade error #447)./kind enhancement
/area dependencies