Felipe97/llama-cpp-compiled
01.1k
1# Release process2 3llama.cpp uses [semantic versioning](https://semver.org) (`MAJOR.MINOR.PATCH`).4 5## Version bump guidelines6 7| Change type | Version component |8|---|---|9| Breaking change to the public C API (`include/llama.h`) | `MAJOR` |10| Backward-compatible features, model support, or API addition | `MINOR` |11| Bug fix with no API change | `PATCH` |12 13The version is set in the three variables at the top of the root `CMakeLists.txt`:14 15```cmake16set(LLAMA_VERSION_MAJOR 0)17set(LLAMA_VERSION_MINOR 1)18set(LLAMA_VERSION_PATCH 0)19```20 21_A version bump should be included in the PR that introduces the change, or in a22dedicated bump commit merged before the release is cut._23 24_TODO: add PR labels (`semver: patch`, `semver: minor`, `semver: major`) to help25identify which PRs require a version bump before cutting a release._26 27## Making a release28 29Releases are created by running the [make-release](.github/workflows/make-release.yml)30which is a manual workflow.31 32The workflow runs against the branch selected in the "Run workflow" dialog33(default `master`) and takes an optional `commit` SHA. When a commit is given,34the workflow validates that the commit belongs to the branch and is not older35than 3 days from the branch HEAD, then releases that commit instead of the36branch HEAD.37 38The workflow creates an annotated git tag (e.g. `v0.1.0`) and pushes it to the39remote. No GitHub Release object is created, the tag is the release artifact.40 41## Building a release42 43By default, `LLAMA_BUILD_IS_DEV=ON` which appends a `-dev` suffix to `LLAMA_VERSION`,44marking the build as a nightly/development build. Distributors building from a45release tag must pass `-DLLAMA_BUILD_IS_DEV=OFF` to produce a clean version string46(e.g. `0.1.0` instead of `0.1.0-dev`).47 48## How releases reach users49Currently releases are not published to github releases, only nightly/development50builds are available there. The way users can access releases are using the following51channels:52 53- **llama-install.sh** — downloads pre-built binaries built from the release tag.54- **Package managers** — consume the git tag directly.55- **Build from source** — users clone the repo and check out the tag.56 