Commit 4f9dfa0e3 for llama.cpp
commit 4f9dfa0e360c2bbc3afdf11cbc6384f54a62c8ad
Author: Pascal <admin@serveurperso.com>
Date: Fri Nov 13 17:50:03 2026 +0100
requirements, Fix CI: support Python 3.15 (#32199)
* requirements : support Python 3.15
torch 2.11.0, numpy 2.4, matplotlib 3.10, pandas 2.3, pillow 11.3 and
cffi 1.16 have no Python 3.15 wheels, so the CI runner on 3.15 cannot
install the requirements.
Python 3.15 gets the first releases that ship 3.15 wheels through
version markers, and every version below 3.15 stays as is.
pyproject.toml now allows 3.15 and picks torch 2.15.0 there.
* requirements : apply review suggestions
numpy 2.5.4 from Python 3.14, matplotlib 3.11.2 and pandas 3.0.6 from
3.11, cffi 2.1.1 and pillow 12.3.0 for every version. cffi 1.16.0 has
no 3.14 wheel and fails to build there, so this also fixes the
tokenizer test requirements on 3.14.
diff --git a/pyproject.toml b/pyproject.toml
index 996529753..9a066770c 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -6,7 +6,7 @@ version = "0.0.0"
dynamic = ["classifiers"]
readme = "README.md"
authors = [{name = "GGML", email = "ggml@ggml.ai"}]
-requires-python = '>=3.10,<3.15'
+requires-python = '>=3.10,<3.16'
dependencies = [
'numpy (>=2.2.6,<3.0.0); python_version < "3.14"',
'numpy (>=2.3.0,<3.0.0); python_version >= "3.14"',
@@ -40,9 +40,12 @@ packages = [
[tool.poetry.dependencies]
torch = [
- { version = "==2.11.0", source = "pypi", markers = "sys_platform == 'darwin'" },
- { version = "==2.11.0+cpu", source = "pytorch", markers = "sys_platform == 'linux'" },
- { version = "==2.11.0", source = "pypi", markers = "sys_platform == 'win32'" },
+ { version = "==2.11.0", source = "pypi", markers = "sys_platform == 'darwin' and python_version < '3.15'" },
+ { version = "==2.11.0+cpu", source = "pytorch", markers = "sys_platform == 'linux' and python_version < '3.15'" },
+ { version = "==2.11.0", source = "pypi", markers = "sys_platform == 'win32' and python_version < '3.15'" },
+ { version = "==2.15.0", source = "pypi", markers = "sys_platform == 'darwin' and python_version >= '3.15'" },
+ { version = "==2.15.0+cpu", source = "pytorch", markers = "sys_platform == 'linux' and python_version >= '3.15'" },
+ { version = "==2.15.0", source = "pypi", markers = "sys_platform == 'win32' and python_version >= '3.15'" },
]
[tool.poetry.group.dev.dependencies]
diff --git a/requirements/requirements-compare-llama-bench.txt b/requirements/requirements-compare-llama-bench.txt
index d87e897e1..22ed7fc8b 100644
--- a/requirements/requirements-compare-llama-bench.txt
+++ b/requirements/requirements-compare-llama-bench.txt
@@ -1,3 +1,4 @@
tabulate~=0.9.0
GitPython~=3.1.43
-matplotlib~=3.10.0
+matplotlib~=3.10.0; python_version < "3.11"
+matplotlib~=3.11.2; python_version >= "3.11"
diff --git a/requirements/requirements-convert_hf_to_gguf.txt b/requirements/requirements-convert_hf_to_gguf.txt
index b1f7c863e..77df026c9 100644
--- a/requirements/requirements-convert_hf_to_gguf.txt
+++ b/requirements/requirements-convert_hf_to_gguf.txt
@@ -2,4 +2,5 @@
--extra-index-url https://download.pytorch.org/whl/cpu
## Embedding Gemma requires PyTorch 2.6.0 or later, bumped to 2.11.0 for compatibility
-torch==2.11.0
+torch==2.11.0; python_version < "3.15"
+torch==2.15.0; python_version >= "3.15"
diff --git a/requirements/requirements-convert_legacy_llama.txt b/requirements/requirements-convert_legacy_llama.txt
index 9186f361e..5f62ffee0 100644
--- a/requirements/requirements-convert_legacy_llama.txt
+++ b/requirements/requirements-convert_legacy_llama.txt
@@ -1,5 +1,5 @@
numpy~=2.2.6; python_version < "3.14"
-numpy~=2.4.6; python_version >= "3.14"
+numpy~=2.5.4; python_version >= "3.14"
sentencepiece>=0.1.98,<0.3.0
transformers==4.57.6
diff --git a/requirements/requirements-gguf_editor_gui.txt b/requirements/requirements-gguf_editor_gui.txt
index 0618acf09..a12e6e527 100644
--- a/requirements/requirements-gguf_editor_gui.txt
+++ b/requirements/requirements-gguf_editor_gui.txt
@@ -1,4 +1,4 @@
numpy~=2.2.6; python_version < "3.14"
-numpy~=2.4.6; python_version >= "3.14"
+numpy~=2.5.4; python_version >= "3.14"
PySide6~=6.9.0
gguf>=0.17.0
diff --git a/requirements/requirements-server-bench.txt b/requirements/requirements-server-bench.txt
index 88a9cb2dc..21e181e03 100644
--- a/requirements/requirements-server-bench.txt
+++ b/requirements/requirements-server-bench.txt
@@ -1,6 +1,7 @@
datasets~=4.8.0
-matplotlib~=3.10.0
+matplotlib~=3.10.0; python_version < "3.11"
+matplotlib~=3.11.2; python_version >= "3.11"
numpy~=2.2.6; python_version < "3.14"
-numpy~=2.4.6; python_version >= "3.14"
+numpy~=2.5.4; python_version >= "3.14"
requests~=2.32.3
tqdm~=4.67.1
diff --git a/requirements/requirements-test-tokenizer-random.txt b/requirements/requirements-test-tokenizer-random.txt
index 2785e71a2..f54bc8ddf 100644
--- a/requirements/requirements-test-tokenizer-random.txt
+++ b/requirements/requirements-test-tokenizer-random.txt
@@ -1 +1 @@
-cffi~=1.16.0
+cffi~=2.1.1
diff --git a/requirements/requirements-tool_bench.txt b/requirements/requirements-tool_bench.txt
index 471f13fd5..26f46bb4d 100644
--- a/requirements/requirements-tool_bench.txt
+++ b/requirements/requirements-tool_bench.txt
@@ -1,9 +1,11 @@
pytest~=8.3.3
-matplotlib~=3.10.0
+matplotlib~=3.10.0; python_version < "3.11"
+matplotlib~=3.11.2; python_version >= "3.11"
numpy~=2.2.6; python_version < "3.14"
-numpy~=2.4.6; python_version >= "3.14"
+numpy~=2.5.4; python_version >= "3.14"
openai~=2.14.0
-pandas~=2.3.3
+pandas~=2.3.3; python_version < "3.11"
+pandas~=3.0.6; python_version >= "3.11"
prometheus-client~=0.20.0
requests~=2.32.3
wget~=3.2
diff --git a/tools/mtmd/requirements.txt b/tools/mtmd/requirements.txt
index d646ca7b0..5da6f3de3 100644
--- a/tools/mtmd/requirements.txt
+++ b/tools/mtmd/requirements.txt
@@ -1,6 +1,8 @@
-r ../../requirements/requirements-convert_legacy_llama.txt
--extra-index-url https://download.pytorch.org/whl/cpu
-pillow~=11.3.0
+pillow~=12.3.0
-torch==2.11.0 # check_requirements: ignore "=="
-torchvision==0.26.0; platform_machine != "s390x" # check_requirements: ignore "=="
+torch==2.11.0; python_version < "3.15" # check_requirements: ignore "=="
+torch==2.15.0; python_version >= "3.15" # check_requirements: ignore "=="
+torchvision==0.26.0; platform_machine != "s390x" and python_version < "3.15" # check_requirements: ignore "=="
+torchvision==0.29.2; platform_machine != "s390x" and python_version >= "3.15" # check_requirements: ignore "=="
diff --git a/tools/server/tests/requirements.txt b/tools/server/tests/requirements.txt
index 3cea52523..1a490b5cc 100644
--- a/tools/server/tests/requirements.txt
+++ b/tools/server/tests/requirements.txt
@@ -2,7 +2,7 @@ pytest~=8.3.3
pytest-xdist~=3.6
filelock~=3.16
numpy~=2.2.6; python_version < "3.14"
-numpy~=2.4.6; python_version >= "3.14"
+numpy~=2.5.4; python_version >= "3.14"
openai~=2.14.0
prometheus-client~=0.20.0
requests~=2.32.3