diff --git a/static/js/cookbook-deps-recipes.js b/static/js/cookbook-deps-recipes.js index afb1b7287..ba4f1b444 100644 --- a/static/js/cookbook-deps-recipes.js +++ b/static/js/cookbook-deps-recipes.js @@ -56,7 +56,7 @@ const _RECIPES = [ match: () => true, variants: { pip: { commands: ['CMAKE_ARGS="-DGGML_CUDA=on" uv pip install -U "llama-cpp-python[server]"'] }, - docker: { commands: ['docker pull ghcr.io/ggerganov/llama.cpp:server-cuda'] }, + docker: { commands: ['docker pull ghcr.io/ggml-org/llama.cpp:server-cuda'] }, }, }, ]; diff --git a/tests/test_cookbook_deps_recipes.py b/tests/test_cookbook_deps_recipes.py new file mode 100644 index 000000000..9bc02b0df --- /dev/null +++ b/tests/test_cookbook_deps_recipes.py @@ -0,0 +1,27 @@ +"""Guard the llama.cpp Docker pull recipe surfaced in Cookbook → Dependencies. + +The upstream repo moved from github.com/ggerganov/llama.cpp to +github.com/ggml-org/llama.cpp. The old GHCR namespace +(ghcr.io/ggerganov/llama.cpp) no longer publishes images, so the +docker variant in the Dependencies panel returned +"failed to resolve reference … not found" when copied verbatim (#4457). +The other llama.cpp reference in routes/cookbook_routes.py already uses +ggml-org; this guards the JS recipe so the two stay aligned. +""" +from pathlib import Path + +RECIPES_JS = ( + Path(__file__).resolve().parent.parent / "static" / "js" / "cookbook-deps-recipes.js" +) + + +def test_llama_cpp_docker_recipe_uses_ggml_org_namespace(): + source = RECIPES_JS.read_text(encoding="utf-8") + + assert "ghcr.io/ggml-org/llama.cpp:server-cuda" in source, ( + "Expected the llama.cpp docker recipe to pull from the ggml-org namespace." + ) + assert "ghcr.io/ggerganov/llama.cpp" not in source, ( + "The ggerganov GHCR namespace no longer publishes llama.cpp images. " + "Use ghcr.io/ggml-org/llama.cpp:server-cuda." + )