Repository navigation
Replies: 14 comments 47 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 |
|
@ggerganov Do you think we are in a good enough shape with the llama.cpp changes that I should start looking at whisper.cpp and introduce the same/similar changes. I'm mainly thinking about the ggml check, as it would be possible to keep the current release build that happens upon tag creation/push if we wanted to. But perhaps it would be better to make this consistent with llama.cpp and introduce the same changes? |
|
Semantic version in Marked as "pre-release" for now, until we do a few quick release rounds in the next few days to make sure everything is good. After that, we'll remove the "pre-release" flag and will aim for a slow-paced, steady release cycle. |
|
Regarding llama.vim, I think we could simply start tagging using semantic versioning and that would allow plugin managers to be able to specify a semver tag instead of today where I think the only choice is to follow the master branch, or a specific commit. |
|
When cutting releases, could we also have the web assets for that release as |
|
I think this doc is now complete. Any feedback for improvements is welcome. I've added a few TODOs to the OP for later. |
|
Is it intentional or by accident that the point release assets contain neither prebuilt binaries nor the UI package? I see that the build process is trying to download the UI files at build time - I don't like that because I usually build in isolated environments. It also means that v0.4.0 built now may differ from 0.4.0 built next week or next month - the build script tries to download a version "b0" first from HF, which doesn't exist, and then the latest version which I guess is subject to change. If possible please provide UI files with the point releases or include them in the source package. |
|
This helps alot |
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.
Projects
ggml-org/ggml
Core library used by the rest of the projects
Release builds use semantic versioning:
vX.Y.ZvX.Y.ZRelease list: v0
Downstreams
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.Release list: v0
Downstreams
llama.appwebpage, packaging repositoryggml(i.e. packs the internalggmlcopy)llama.cpppackage, formulaggmlpackage and links to the installed system-wideggmlllama.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.Z-DWHISPER_BUILD_IS_DEV=OFFThe 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.Release list: v1
Downstreams
whisper-cpppackage, formulawhisper.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
vX.Y.ZTODOs
llama.cppformula to build from release tagAll reactions