diff --git a/.github/workflows/precompile.yml b/.github/workflows/precompile.yml index 85fbc2e..ea188bf 100644 --- a/.github/workflows/precompile.yml +++ b/.github/workflows/precompile.yml @@ -18,10 +18,12 @@ jobs: otp: '27.0' elixir: '1.18' backend: metal + # OTP 29 is the first release to report NIF 2.18; OTP 27/28 both + # report 2.17, so building on 28 would just overwrite the 27 artifact. - os: macos-14 target: aarch64-apple-darwin - otp: '28.0' - elixir: '1.18' + otp: '29.0' + elixir: '1.20' backend: metal - os: ubuntu-22.04 target: x86_64-linux-gnu @@ -30,8 +32,8 @@ jobs: backend: cpu - os: ubuntu-22.04 target: x86_64-linux-gnu - otp: '28.0' - elixir: '1.18' + otp: '29.0' + elixir: '1.20' backend: cpu runs-on: ${{ matrix.os }} diff --git a/CHANGELOG.md b/CHANGELOG.md index 1ec7c81..34a1645 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## v0.8.22 + +### Fixed + +- **Precompiled NIF 2.18 artifacts** — `mix.exs` advertises precompiled NIFs for NIF versions 2.17 and 2.18, but the precompile workflow built each target on OTP 27 *and* OTP 28, and both of those report NIF 2.17 (2.18 only arrived with OTP 29). The two jobs therefore produced identically named `nif-2.17` tarballs that overwrote each other on upload, and no 2.18 artifact was ever published — so installing on OTP 29 (NIF 2.18) failed with a 404 when fetching the precompiled binary. The precompile matrix now builds on OTP 27 (NIF 2.17) and OTP 29 (NIF 2.18), publishing both NIF versions for each target. The llama.cpp submodule is unchanged (4c6595503, tag b9601). + ## v0.8.21 ### Changed diff --git a/docs/release-guide.md b/docs/release-guide.md index 5642fee..ff20cd7 100644 --- a/docs/release-guide.md +++ b/docs/release-guide.md @@ -96,7 +96,7 @@ git push origin vX.Y.Z ``` The tag push triggers the **precompile workflow** (`.github/workflows/precompile.yml`) which: -1. Builds precompiled NIFs for macOS (Metal) and Linux (CPU) across OTP 27 and 28 +1. Builds precompiled NIFs for macOS (Metal) and Linux (CPU) across OTP 27 (NIF 2.17) and OTP 29 (NIF 2.18) 2. Uploads `.tar.gz` artifacts to the GitHub release 3. Runs `mix elixir_make.checksum --all --ignore-unavailable` and auto-commits `checksum.exs` to master diff --git a/mix.exs b/mix.exs index f1ec42e..419951f 100644 --- a/mix.exs +++ b/mix.exs @@ -37,7 +37,7 @@ end defmodule LlamaCppEx.MixProject do use Mix.Project - @version "0.8.21" + @version "0.8.22" @source_url "https://github.com/nyo16/llama_cpp_ex" def project do