Skip to content

Build NIF 2.18 precompiled artifacts on OTP 29, release v0.8.22#55

Merged
nyo16 merged 1 commit into
masterfrom
release-v0.8.22
Jun 13, 2026
Merged

Build NIF 2.18 precompiled artifacts on OTP 29, release v0.8.22#55
nyo16 merged 1 commit into
masterfrom
release-v0.8.22

Conversation

@nyo16

@nyo16 nyo16 commented Jun 13, 2026

Copy link
Copy Markdown
Owner

Problem

Installing llama_cpp_ex on OTP 29 (NIF 2.18) fails with a 404 when fetching the precompiled binary, even though mix.exs advertises NIF 2.18
support via make_precompiler_nif_versions.

Root cause

The precompile matrix built each target on OTP 27 and OTP 28, intending the OTP 28 jobs to produce the 2.18 artifacts — but OTP 28 still
reports NIF 2.17 (2.18 only arrived with OTP 29). Both jobs therefore produced identically named nif-2.17 tarballs, the second upload clobbered
the first, and no 2.18 artifact was ever published. The checksum job's --ignore-unavailable flag silently skipped the missing files, so every
release shipped this way unnoticed.

Retroactively uploading 2.18 assets to v0.8.21 wouldn't help: the published Hex package ships a checksum.exs containing only the 2.17 entries,
so a new release is required.

Changes

  • precompile.yml — second matrix entry per target now builds on OTP 29 / Elixir 1.20 (verified available on builds.hex.pm for ubuntu-22.04 and
    erlef/otp_builds for macOS), producing real nif-2.18 artifacts alongside the OTP 27 nif-2.17 ones
  • mix.exs — version bump to 0.8.22
  • CHANGELOG.md — v0.8.22 entry (no llama.cpp submodule change)
  • docs/release-guide.md — corrected the matrix description

Verification

  • mix compile --warnings-as-errors and mix format --check-formatted pass
  • Full test suite on OTP 29 / NIF 2.18 / Elixir 1.20 with local GGUF models: 147 passed, 1 skipped, 7 excluded

The precompile matrix built each target on OTP 27 and OTP 28, but both
report NIF 2.17, so the jobs overwrote each other's artifacts and no
2.18 tarball was ever published despite mix.exs advertising it. OTP 29
is the first release to report NIF 2.18 — installing there 404'd on the
missing artifact. Build the second matrix entry on OTP 29 / Elixir 1.20
instead.
@nyo16 nyo16 merged commit d114627 into master Jun 13, 2026
4 checks passed
@nyo16 nyo16 deleted the release-v0.8.22 branch June 13, 2026 01:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant