Skip to content

cmake : update semver and release process [no ci] - #3996

Merged
danbev merged 15 commits into
ggml-org:masterfrom
danbev:semver-sync
Aug 20, 2026
Merged

danbev merged 15 commits into
ggml-org:masterfrom
danbev:semver-sync

Conversation

@danbev

@danbev danbev commented Aug 18, 2026 •

Copy link
Copy Markdown
Member

This pull request contains commits to update whisper.cpp's semantic versioning and release handling to be consistent with llama.cpp.

Currently the developer builds are manually triggered only. This is different from llama.cpp where every commit to master triggers a build. We had this once in the past in whisper.cpp but decided to change it.

danbev added 12 commits August 18, 2026 15:34
This commit modifies the semantic version handling to be consistent with
how llama.cpp and ggml handle semver.

This commit introdues a new example named test-cmake which is intended
to be used to test the cmake configuration and installation.
This is just for testing and this commit should not be included in the
main PR later.
This commit updates the release and make-release workflows to use the
DEPLOY_KEY_RELEASE secret. Two github ruleset have been imported.
These were retrived from llama.cpp and then imported into my fork for
testing. If all works well they will be imported into whisper.cpp
upstream as well.
This commit updated the example talk-llama to remove the vendored
llama.cpp and instead use FetchContent to pull it in from the
upstream repo.
This commit disables native CPU instructions from the ubuntu-22-clang
job.

The motivation for this is that currently it is possible that the
running compiling llama.cpp (via ccache) might have support for cpu
instructions that are not available on the target runner.

Refs: https://github.com/ggml-org/whisper.cpp/actions/runs/32224048267/job/95980031403?pr=3996
This commit add attenstions of artifacts to the release workflow.

After building the artifacts can be verified with the following command:
```console
$ curl -sSL -o whisper-bin-ubuntu-x64.tar.gz \
    https://github.com/danbev/whisper.cpp/releases/download/b4947/whisper-bin-ubuntu-x64.tar.gz

$ gh attestation verify --repo danbev/whisper.cpp whisper-bin-ubuntu-x64.tar.gz
Loaded digest sha256:722a6812263195d7ee2192b57fc64a6d6b09a6cdf2f55a152f793db27a651e31 for file://whisper-bin-ubuntu-x64.tar.gz
Loaded 1 attestation from GitHub API

The following policy criteria will be enforced:
- Predicate type must match:................ https://slsa.dev/provenance/v1
- Source Repository Owner URI must match:... https://github.com/danbev
- Source Repository URI must match:......... https://github.com/danbev/whisper.cpp
- Subject Alternative Name must match regex: (?i)^https://github\.com/danbev/whisper\.cpp/
- OIDC Issuer must match:................... https://token.actions.githubusercontent.com

✓ Verification succeeded!

The following 1 attestation matched the policy criteria

- Attestation #1
  - Build repo:..... danbev/whisper.cpp
  - Build workflow:. .github/workflows/release.yml@refs/heads/master
  - Signer repo:.... danbev/whisper.cpp
  - Signer workflow: .github/workflows/release.yml@refs/heads/master
```
This commit adds a new CMake option WHISPER_USE_SYSTEM_LLAMA that allows
the talk-llama example to use a system-installed llama.cpp library.

Setting this will automatically also set WHISPER_USE_SYSTEM_GGML to ON
and the system ggml library will be used in addition to the system
llama.cpp.
@danbev

danbev commented Aug 19, 2026

Copy link
Copy Markdown
Member Author

Attaching the script I used to test the system built llama.cpp and ggml with whisper-talk-llama:
run-talk-llama.sh

@danbev

danbev commented Aug 20, 2026

Copy link
Copy Markdown
Member Author

@ggerganov What are you thoughts about when developer builds should built?

At the moment they are just manually built as I was not sure if we wanted to have the same cadence as llama.cpp and build for each push to master (conditioned on specific path contents). I know we had this a one point in the past but changed it which is why I'm a bit hesitant. But perhaps we should try this again and be consistent with llama.cpp.

@ggerganov

Copy link
Copy Markdown
Member

I think it's OK to keep them manual for now.

@danbev
danbev marked this pull request as ready for review August 20, 2026 05:38
Comment thread CMakeLists.txt
@ggerganov

Copy link
Copy Markdown
Member

After we merge this, you can bump to v1.9.3 and see if all works as expected.

@danbev
danbev merged commit 81c1905 into ggml-org:master Aug 20, 2026
45 checks passed
@danbev
danbev deleted the semver-sync branch August 20, 2026 07:35
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