Once #7344 lands (Python 3.10 minimum, max tested version 3.13), we should add Python 3.14 to the python.yml test matrix. Bumping the matrix to 3.14 was attempted in #7345 but reverted because two test dependencies don't work on 3.14 yet.
The matrix change itself is small (in .github/workflows/python.yml):
python-minor-version: ["10", "13"] → ["10", "14"]
- the artifact-upload condition
matrix.python-minor-version == '13' → '14' (this job produces the linux-wheels artifact the compat/compat-sequence jobs consume, so it must track the max version).
The blockers are in the test dependencies installed by run_tests (pip install <wheel>[tests] + pip install torch):
1. tensorflow — no Python 3.14 wheels
tensorflow publishes no cp314 wheels (latest is 2.21.0), so installing the tests extra fails:
ERROR: Could not find a version that satisfies the requirement tensorflow; sys_platform == "linux" and extra == "tests"
ERROR: No matching distribution found for tensorflow
Options: gate the tensorflow test dep to python_version < '3.14', or wait for upstream tensorflow 3.14 support. (tensorflow is already slated for deprecation per the comment in pyproject.toml.)
2. torch — jit.script_method DeprecationWarning becomes an error on 3.14
torch's cp314 wheel installs fine (2.12.1), but our @torch.compile in python/lance/torch/distance.py triggers torch's inductor → torch/utils/mkldnn.py import chain, which uses torch.jit.script_method. On 3.14 torch emits:
DeprecationWarning: `torch.jit.script_method` is not supported in Python 3.14+ and may break. Please switch to `torch.compile` or `torch.export`.
Our filterwarnings = ['error::DeprecationWarning', ...] in pyproject.toml turns this into a collection error for the torch tests (test_distance.py, test_torch_kmeans.py, test_bench_utils.py). There's an existing ignore for the older ...is deprecated... wording, but it doesn't match the new ...is not supported in Python 3.14+... message.
Options: add an ignore filter matching the 3.14 message, or address the underlying script_method usage upstream/in torch's version.
Both need resolving before the 3.14 matrix entry can be green.
Once #7344 lands (Python 3.10 minimum, max tested version 3.13), we should add Python 3.14 to the
python.ymltest matrix. Bumping the matrix to 3.14 was attempted in #7345 but reverted because two test dependencies don't work on 3.14 yet.The matrix change itself is small (in
.github/workflows/python.yml):python-minor-version: ["10", "13"]→["10", "14"]matrix.python-minor-version == '13'→'14'(this job produces thelinux-wheelsartifact thecompat/compat-sequencejobs consume, so it must track the max version).The blockers are in the test dependencies installed by
run_tests(pip install <wheel>[tests]+pip install torch):1. tensorflow — no Python 3.14 wheels
tensorflow publishes no
cp314wheels (latest is 2.21.0), so installing thetestsextra fails:Options: gate the tensorflow test dep to
python_version < '3.14', or wait for upstream tensorflow 3.14 support. (tensorflow is already slated for deprecation per the comment inpyproject.toml.)2. torch —
jit.script_methodDeprecationWarning becomes an error on 3.14torch's
cp314wheel installs fine (2.12.1), but our@torch.compileinpython/lance/torch/distance.pytriggers torch's inductor →torch/utils/mkldnn.pyimport chain, which usestorch.jit.script_method. On 3.14 torch emits:Our
filterwarnings = ['error::DeprecationWarning', ...]inpyproject.tomlturns this into a collection error for the torch tests (test_distance.py,test_torch_kmeans.py,test_bench_utils.py). There's an existing ignore for the older...is deprecated...wording, but it doesn't match the new...is not supported in Python 3.14+...message.Options: add an
ignorefilter matching the 3.14 message, or address the underlyingscript_methodusage upstream/in torch's version.Both need resolving before the 3.14 matrix entry can be green.