Skip to content

ci(bump-deps): register ds4 + move version pin into the Makefile#9761

Merged
mudler merged 3 commits into
masterfrom
worktree-ds4-bump-deps
May 11, 2026
Merged

ci(bump-deps): register ds4 + move version pin into the Makefile#9761
mudler merged 3 commits into
masterfrom
worktree-ds4-bump-deps

Conversation

@localai-bot
Copy link
Copy Markdown
Collaborator

Summary

  • Moves the DS4_VERSION?= pin from backend/cpp/ds4/prepare.sh into backend/cpp/ds4/Makefile and inlines the clone recipe into a ds4: target (mirroring llama-cpp / ik-llama-cpp / turboquant).
  • Adds antirez/ds4 to .github/workflows/bump_deps.yaml so the daily auto-bump bot picks up new upstream commits and opens a PR.
  • Deletes the now-redundant prepare.sh.

Why

The initial ds4 PR (#9758) used a separate prepare.sh shell script to hold the pin. The bump bot at .github/bump_deps.sh:16 greps for ^$VAR?= in a Makefile, so DS4_VERSION was invisible to it. Every other auto-bumped backend pins in its Makefile - this change brings ds4 in line.

Verified

$ grep -m1 '^DS4_VERSION?=' backend/cpp/ds4/Makefile
DS4_VERSION?=ae302c2fa18cc6d9aefc021d0f27ae03c9ad2fc0
$ make -C backend/cpp/ds4 ds4    # clones into ds4/ at the pinned commit
$ git -C backend/cpp/ds4/ds4 rev-parse HEAD
ae302c2fa18cc6d9aefc021d0f27ae03c9ad2fc0
$ make -C backend/cpp/ds4 ds4    # second invocation is a no-op
make: 'ds4' is up to date.

Also confirmed antirez/ds4's default branch is main (not master).

Test plan

  • Daily Bump Backend dependencies workflow opens an update/DS4_VERSION PR when antirez/ds4 advances beyond the current pin
  • CI's docker-build-ds4 still produces an image with the new Makefile shape (cache hits expected on prior gRPC / apt layers)

mudler added 3 commits May 11, 2026 20:25
The initial ds4 PR (#9758) put the upstream commit pin in
backend/cpp/ds4/prepare.sh as a shell variable. The auto-bump bot at
.github/bump_deps.sh greps for ^$VAR?= in a Makefile, so DS4_VERSION
was invisible to it - other backends (llama-cpp, ik-llama-cpp,
turboquant, voxtral, etc.) all pin in their Makefile.

This change:

- Moves DS4_VERSION?= and DS4_REPO?= to the top of
  backend/cpp/ds4/Makefile.
- Inlines the git init/fetch/checkout recipe into the 'ds4:' target
  (matches llama-cpp's 'llama.cpp:' target pattern). Directory acts
  as the target so make only re-clones when missing.
- Deletes the now-redundant prepare.sh.
- Adds antirez/ds4 + DS4_VERSION + main + backend/cpp/ds4/Makefile to
  the .github/workflows/bump_deps.yaml matrix so the daily bot opens
  PRs against this pin.
- Updates .agents/ds4-backend.md to point at the Makefile.

Verified:
  $ grep -m1 '^DS4_VERSION?=' backend/cpp/ds4/Makefile
  DS4_VERSION?=ae302c2fa18cc6d9aefc021d0f27ae03c9ad2fc0
  $ make -C backend/cpp/ds4 ds4   # clones into ds4/ at the pin
  $ make -C backend/cpp/ds4 ds4   # no-op on second invocation
  make: 'ds4' is up to date.

Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
scripts/changed-backends.js:inferBackendPath has an explicit branch per
cpp dockerfile suffix (ik-llama-cpp, turboquant, llama-cpp). Without a
matching branch the function returns null, the backend never lands in
the path map, and PR change-detection cannot map "backend/cpp/ds4/X
changed" -> "rebuild ds4 image".

This is why PR #9761 produced zero ds4 jobs even though it directly
edits backend/cpp/ds4/Makefile.

Adds the missing branch (Dockerfile.ds4 -> backend/cpp/ds4/), placed
before the llama-cpp branch (since both share the .cpp ancestry but
ds4 is more specific - same ordering rule documented in
.agents/adding-backends.md).

Verified with a local Node simulation of the script against this PR's
diff: the path map now contains 'ds4 -> backend/cpp/ds4/' and a
'backend/cpp/ds4/Makefile' change correctly triggers the ds4 backend
in the rebuild set.

Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
Both omissions are silent at the time you ADD a backend - the failure
mode only appears later (the bump bot stays silent forever, or the path
filter shows up on the next PR that touches your backend with zero CI
jobs and looks broken for unrelated reasons). Expanding the
`scripts/changed-backends.js` paragraph from a one-liner to a fully
worked example, and adding a new sibling paragraph for the
`bump_deps.yaml` + Makefile-pin contract.

Both call out the specific mistakes from the ds4 timeline (#9758#9761) so future contributors can pattern-match on the cause.

Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
Repository owner deleted a comment from localai-bot May 11, 2026
@mudler mudler merged commit 621c612 into master May 11, 2026
57 checks passed
@mudler mudler deleted the worktree-ds4-bump-deps branch May 11, 2026 20:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants