"ollama pull" commands are consistently failing with "Error: digest mismatch". This appears
to be a problem with ollama, and not related to ramalama. Disable/ignore the failing tests
until the issue is resolved.
Signed-off-by: Mike Bonnet <mikeb@redhat.com>
Pinning the setuptools version to >=61 breaks rpm builds on centos-stream9
where the setuptools version is older.
The rpm builds are using https://src.fedoraproject.org/rpms/pyproject-rpm-macros
which should work with pyproject.yaml even when the setuptools version does not.
The setuptools/pyproject docs do not mention pinning the setuptools version,
all of the example just show an unversioned dependence on 'setuptools'.
Signed-off-by: Oliver Walsh <owalsh@redhat.com>
Create BaseEngineArgsType Protocol to properly type engine initialization
arguments.
Add DefaultArgsType annotation to info_cli function.
This resolves annotation-unchecked notes from mypy type checking.
Fix port handling in Engine.add_port_option to support both string and
int types.
Signed-off-by: John Wiele <jwiele@redhat.com>
Assisted-by: Claude Code <noreply@anthropic.com>
Passing a directory instead of a file to "ramalama convert" results in a IsADirectoryError which is a
subclass of OSError (synonym of IOError). IOErrors result in a return code of 5 (EIO).
Signed-off-by: Mike Bonnet <mikeb@redhat.com>
- Migrate to e2e pytest the `test/system/050-pull.bats` bat test.
- Ollama fixture has been added to test on a insolated ollama instance
- The tests cover a wide range of functionalities, including:
- Pulling models from different transports like Ollama, Hugging Face, OCI, and local files.
- Verifying the use of local caches from Ollama and Hugging Face to speed up subsequent pulls.
- Testing error handling for non-existent models and endianness mismatches.
- Ensuring proper interaction with authenticated OCI registries for pulling private models.
- Validating the handling of models with multiple layers and references.
Signed-off-by: Roberto Majadas <rmajadas@redhat.com>
a committed CLAUDE.md can ensure more consistent
behavior for contributors utilizing Claude Code
or other supported agents for ramalama development
Signed-off-by: Nathan Weinberg <nweinber@redhat.com>
Add support for generating multiple Mount= declarations in quadlet files
for multi-part models (e.g., models split into multiple GGUF files).
Changes:
- Add _get_all_model_part_paths() method to Transport class to retrieve
all parts of a multi-part model from the ref file
- Update Quadlet class to accept and store model_parts list
- Modify _gen_model_volume() to generate Mount= entries for each part
- Update generate_container_config() to pass model parts to quadlet
- Add test case for multi-part model quadlet generation
The fix ensures that when generating quadlet files for models like
gpt-oss-120b that are split across multiple files, all parts are
properly mounted into the container with correct src/dest paths.
Fixes #2017
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
When testing with nvidia hardware, passing "--dri off" prevents access to the hardware
and causes the cuda image to crash.
Signed-off-by: Mike Bonnet <mikeb@redhat.com>
To run CI in Konflux we're using podman-in-podman to provide fine-grained control
over the test environment. Previously we were deleting the CDI hooks from the outer
podman environment because they were unnecessary.
Recent changes to the cuda image require the symlinks created by the hooks to be
present, so mount /usr/bin/nvidia-container-runtime and /usr/bin/nvidia-cdi-hook
into the outer podman environment and re-enable the hooks.
Signed-off-by: Mike Bonnet <mikeb@redhat.com>