Skip to content

Feat/ci ubuntu 26 - #6

Closed
taronaeo wants to merge 36 commits into
masterfrom
feat/ci-ubuntu-26
Closed

taronaeo wants to merge 36 commits into
masterfrom
feat/ci-ubuntu-26

Conversation

@taronaeo

@taronaeo taronaeo commented Oct 31, 2026 •

Copy link
Copy Markdown
Owner

Overview

Additional information

Requirements

Summary by Sourcery

Migrate Linux CI and release builds to Ubuntu 26.04, updating containers, toolchains, caches, and published artifact references for the new platform.

Enhancements:

  • Migrate CI, release, cross-compilation, and Docker workflows from Ubuntu 24.04 to Ubuntu 26.04 across supported architectures and build targets.
  • Update release artifacts and workflow cache identifiers to distinguish Ubuntu 26.04 builds.
  • Modernize the CPU container’s Python dependency setup with uv and Python 3.13, while relying on the Ubuntu 26.04 default compiler toolchain.

Build:

  • Update the CPU Docker image base to Ubuntu 26.04 and align its build dependencies with the new distribution.
  • Install the required Android SDK CMake version in the Android build workflow and update LLVM package sources for Ubuntu 26.04.

Documentation:

  • Update release download links and labels to identify Ubuntu 26.04 CPU and Vulkan artifacts while retaining legacy Ubuntu 24.04 s390x output.

@sourcery-ai

This comment was marked as outdated.

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey - I've found 1 issue

Prompt for AI Agents
Please address the comments from this code review:

## Individual Comments

### Comment 1
<location path=".github/workflows/release.yml" line_range="180" />
<code_context>
         include:
           - build: 'x64'
-            os: ubuntu-22.04
+            os: ubuntu-26.04
           - build: 'arm64'
-            os: ubuntu-24.04-arm
</code_context>
<issue_to_address>
**Some builds still use Ubuntu 24.04**

When the migration claim is intended to cover all CI and release build paths, the UI checks, CUDA build, and OpenVINO, SYCL, and ROCm release jobs still run on Ubuntu 24.04, so those paths do not exercise Ubuntu 26.04 despite the stated migration across CI and release workflows.

Migrate the remaining jobs that are in scope to Ubuntu 26.04, or narrow the description to the workflows and targets actually migrated.
</issue_to_address>

Sourcery assessment

Needs a human reviewer. 1 finding to address first, and the Ubuntu runner and Docker image changes alter build behavior, and the Docker image now installs uv from Astral’s installer; if these changes produce incorrect release binaries or links, those published assets can outlive a revert but can be replaced or corrected. Most other failures would be ordinary CI failures that reverting restores.

Blocking findings: .github/workflows/release.yml:180


Sourcery is free for open source - if you like our reviews please consider sharing them ✨

- build: 's390x'
os: ubuntu-24.04-s390x
- build: '26.04-x64'
os: ubuntu-26.04

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Medium · Some builds still use Ubuntu 24.04

When the migration claim is intended to cover all CI and release build paths, the UI checks, CUDA build, and OpenVINO, SYCL, and ROCm release jobs still run on Ubuntu 24.04, so those paths do not exercise Ubuntu 26.04 despite the stated migration across CI and release workflows.

Migrate the remaining jobs that are in scope to Ubuntu 26.04, or narrow the description to the workflows and targets actually migrated.

Prompt for AI agents
In `.github/workflows/release.yml` at line 180:

**Some builds still use Ubuntu 24.04**

When the migration claim is intended to cover all CI and release build paths, the UI checks, CUDA build, and OpenVINO, SYCL, and ROCm release jobs still run on Ubuntu 24.04, so those paths do not exercise Ubuntu 26.04 despite the stated migration across CI and release workflows.

Migrate the remaining jobs that are in scope to Ubuntu 26.04, or narrow the description to the workflows and targets actually migrated.

boshjerns and others added 27 commits October 31, 2026 18:55
* mtmd : resize Gemma 4 images without letterbox padding

* Apply suggestion from @ngxson

---------

Co-authored-by: Xuan-Son Nguyen <thichthat@gmail.com>
)

Limit the shared prefix to the first required output position of the parent and each child task.
This keeps decision output embeddings available in the final batch when questions share option tokens.

Fixes ggml-org#30482

Signed-off-by: aiqubits <aiqubits@hotmail.com>
…gml-org#31406)

* llama : fix rotation of layers that reuse another layer's KV cache

* llama : use KV source rotation only for attn_* tensors
* tests : enable Gemma 4 in `test-llama-archs`

* tests : use GQA for Gemma 4 in `test-llama-archs`
* hexagon : fix DMA transfers with strides > 24 bits

On v75+ the 2D DMA descriptor stores row_size and strides in 24 bits.
dma_queue_push sent oversized strides to fallback_2d, which only splits
nrows, so strides of 16 MB or more were truncated - wrong addresses.
Fix will fall back to one transfer per row in that case.

Also added two CONT tests with source strides over 16 MB.

* hex-dma: refactor the fallback paths to remove duplication

---------

Co-authored-by: Max Krasnyansky <maxk@qti.qualcomm.com>
* opencl: add iq3_s AOS mv

Assisted-by: Codex

* opencl: add iq3_s SOA mv and tiled mm

Assisted-by: Codex

* opencl: add iq3_s noshuffle gemm/gemv for adreno

Co-authored-by: Shaofei Qi <shaoqi@qti.qualcomm.com>
Assisted-by: Codex

* opencl: add iq3_s dp4a for adreno

Co-authored-by: Shaofei Qi <shaoqi@qti.qualcomm.com>
Assisted-by: Codex

* opencl: optimize iq3_s adreno decode and narrow batches

Co-authored-by: Shaofei Qi <shaoqi@qti.qualcomm.com>
Assisted-by: Codex

* opencl: add iq3_xxs AOS mv

Assisted-by: Codex

* opencl: add iq3_xxs SOA mv and tiled mm

Assisted-by: Codex

* opencl: add iq3_xxs noshuffle gemm/gemv for adreno

Co-authored-by: Shaofei Qi <shaoqi@qti.qualcomm.com>
Assisted-by: Codex

* opencl: add iq3_xxs dp4a for adreno

Co-authored-by: Shaofei Qi <shaoqi@qti.qualcomm.com>
Assisted-by: Codex

* opencl: optimize iq3_xxs adreno decode and narrow batches

Co-authored-by: Shaofei Qi <shaoqi@qti.qualcomm.com>
Assisted-by: Codex

---------

Co-authored-by: Li He <lih@qti.qualcomm.com>
…gth (ggml-org#31422)

* webgpu: keep scratch alloc sizes monotonic in the batch length

The flash attention vec path and the MMVQ path append a scratch area
after dst, but get_alloc_size only accounted for it when the current
batch takes that path. The size was therefore not monotonic in the
batch length: a graph reserved at n_ubatch (tiled path, no scratch)
or at one token did not cover batches of 2 to 19 query rows, and
GGML_SCHED_NO_REALLOC builds aborted on an unexpected reallocation.

Pass the row count to both path predicates and size the scratch with
the row count clamped to the longest batch the short path serves.

* nit: align the mmvq pipeline key with clang-format 22

* webgpu: address review @yomaytk, name the mat-vec row threshold
* Correctly gate immintrin.h inclusion when building with clang-cl and avx512bf16

* ggml : explicit vector casts for clang-cl
* jinja: implement map('filter')

* jinja : validate filter keyword arguments

Assisted-by: Codex
ggml-org#31326)

* ui: don't reload a loading model on select, prefer it in pre-selection

Assisted-by: Claude (Opus 5.5 Medium)

* ui: skip hidden models in automatic model selection

Assisted-by: Claude (Opus 5.5 Medium)

* ui: don't count a model being unloaded as loading

Assisted-by: Claude (Opus 5.5 Medium)
…rg#31314)

* ui: show interrupted state for tool calls that never returned

The chat-level streaming flag was applied to every assistant message, so a
tool call left without a result in an earlier message kept spinning while a
newer reply streamed. Scope streaming to the last assistant message and mark
finished calls without a result as interrupted.

Assisted-by: Claude (Opus 5.5 Medium)

* ui: mark a shell command stopped before any output as interrupted

exec_shell_command creates its result message before running, so stopping
it mid-run leaves an empty result instead of none.

Assisted-by: Claude (Opus 5.5 Medium)
…#31304)

A message queued while a conversation was busy was re-sent through
sendMessage, which targets the active conversation, so switching chats
before the turn ended delivered it into the wrong one. Re-send only when
the owning conversation is active; otherwise keep it queued there and
flush it when that conversation is opened again.

Assisted-by: Claude (Opus 5.5 Medium)
…31312)

Use the popover background, softer border, rounded-xl corners and
shadow-md like dropdowns, hover cards and the settings dialog, and
match the dialog title line height.

Assisted-by: Claude (Opus 5.5 Medium)
The router only removes models it took from the Hugging Face cache, but
the models manager offered "Delete from disk" for every model, so a model
from --models-preset or --models-dir failed with a "not removable" toast.
Read the source and can_remove fields of /models and show the delete
action disabled for those models, with a tooltip (a hint line in the
mobile drawer) saying how to remove them instead.

Assisted-by: Claude (Opus 5.5 Medium)
Signed-off-by: Aaron Teo <aaron.teo1@ibm.com>
Signed-off-by: Aaron Teo <aaron.teo1@ibm.com>
Signed-off-by: Aaron Teo <aaron.teo1@ibm.com>
Signed-off-by: Aaron Teo <aaron.teo1@ibm.com>
Signed-off-by: Aaron Teo <aaron.teo1@ibm.com>
Signed-off-by: Aaron Teo <aaron.teo1@ibm.com>
Signed-off-by: Aaron Teo <aaron.teo1@ibm.com>
Signed-off-by: Aaron Teo <aaron.teo1@ibm.com>
Signed-off-by: Aaron Teo <aaron.teo1@ibm.com>
Signed-off-by: Aaron Teo <aaron.teo1@ibm.com>
@taronaeo taronaeo closed this Nov 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.