Replies: 7 comments 25 replies
|
May be worth mentioning |
|
This is very useful, thanks! Super-happy to see semantic versioning for llama.cpp coming. That will also enable maintaining a SOVER. And that will allow us in Debian to ship it as a library in public search paths, because we can now guarantee backwards-compatibility (breaking can be communicated and maintained via SOVER bumps). For llama.cpp and whisper.cpp release builds, it would be great if they could somehow specify the minimum ggml version they need, something like Debian links:
We also have HIP and CUDA builds using AMD's/NVIDIA's repositories, for bleeding edge hardware and toolkit support. I'd add that in an increment, though. Below just FYI: In Debian, we currently tend to update llama.cpp in tandem with new ggml release, since that was the point where both were expected to be ~"in sync":
With this new release strategy, things are much more deterministic and plannable. |
|
I think the semantic version for llama.cpp makes perfect sense. Two things I want to bring to the discussion: First: it will probably be better to have a list of requirements to bump major/minor/patch, to avoid forever sticking with something like I'm suggesting a initial version of the list for further discussions:
Second: we can setup a specific pipeline that tests the release against common models before releasing it
|
|
Will this versioning policy also cover mtmd? More generally, is it planned that |
|
Next week will try to implement some automation with @danbev according to the spec above to start semver tagging of |
|
For Homebrew we perform regression tests of dependents when updating formulae. If a new version of |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Overview
Below is a summary of the release process of the ggml-org projects. The document should be useful for downstream project to decide how to build and distribute them.
Note
Work in progress - suggestions are welcome. The llama.cpp semantic versioning is not yet implemented
Projects
ggml-org/ggml
Core library used by the rest of the projects
Release builds use semantic versioning:
vX.Y.ZvX.Y.ZDownstreams
ggmlpackage, formulaggmlpackage, packaging repositoryggml-cudapackage (separate build because of non-free CUDA dependencies)ggml-org/llama.cpp
Includes an internal copy of
ggmlthat may deviate from the official released versionThe internal copy is used for nightly development builds from the
masterbranchThe nightly builds use commit number
[NUM]for version:b[NUM]-DLLAMA_BUILD_IS_DEV=ONOfficial release builds use semantic versioning:
vX.Y.ZvX.Y.Z-DLLAMA_BUILD_IS_DEV=OFFggmlcopy is identical to the releasedggmlcopy. This guarantees that a downstream building from the release tags and linking to a system-wideggmlwill be compatible.Downstreams
llama.appwebpage, packaging repositoryggml(i.e. packs the internalggmlcopy)llama.cpppackage, formulaggmlpackage and links to the installed system-wideggmlggmlis required byllama.cpp? Right now it looks like it installs the latestggml, which might not be compatible with the latestllama.cppllama.cpppackage, packaging repositoryggmlandggml-cudapackages and links to the installed system-wideggmlllama.cppworkflow, manifestsggml(i.e. packs the internalggmlcopy)ggml-org/whisper.cpp
Includes an internal copy of
ggmlthat may deviate from the official released versionThere are no nightly builds - only official releases
Official release builds use semantic versioning:
vX.Y.ZThe release tags are created on the condition that the internal
ggmlcopy is identical to the releasedggmlcopy. This guarantees that a downstream building from the release tags and linking to a system-wideggmlwill be compatible.Downstreams
whisper-cpppackage, formulawhisper.cpp?ggmlis required bywhisper.cpp?whisper.cpppackage, packaging repositoryggml-org/llama.cpp/gguf-py
Release builds use semantic versioning:
vX.Y.Zgguf-vX.Y.ZDownstreams
ggufpackage, workflowggml-org/llama.vim
All reactions