Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 6 additions & 4 deletions .github/workflows/precompile.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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 }}
Expand Down
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -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
Expand Down
2 changes: 1 addition & 1 deletion docs/release-guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
2 changes: 1 addition & 1 deletion mix.exs
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down