Skip to content

v0.2.1

Pre-release
Pre-release

Choose a tag to compare

@kaidesu kaidesu released this 31 Aug 00:47
ea03f5f
Fix the macOS bundle and the cask push, and cut 0.2.1 (#20)

* Stage the cask before testing whether it changed

The guard against empty commits asked `git diff --quiet -- Casks/lumen.rb`
before staging. git diff ignores untracked files, so on the release that
first creates the cask it reports no difference, the step exits 0, and
nothing is pushed. v0.2.0 published four archives and left the tap empty
with a green run.

Staging first and comparing against the index answers correctly for a new
file, an unchanged one, and a modified one alike.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* Bundle SDL3 beside SDL2, and prove the bundle runs without Homebrew

Homebrew's sdl2 is sdl2_compat: the SDL2 API reimplemented on top of
SDL3, which it dlopen()s at runtime. There is no LC_LOAD_DYLIB entry for
SDL3, so dylibbundler - which walks static link references - never saw
it. The macOS archives came out looking self-contained and abort with
"Failed loading SDL3 library" on any machine without Homebrew. v0.2.0
shipped that way on both darwin architectures.

libSDL2 searches @loader_path before anything else, so SDL3 is copied in
beside it and signed with the rest.

The reason this shipped green is that the runner has Homebrew's own SDL3
on the fallback library path, so the bundle it produced always worked
where it was built. The new check empties DYLD_FALLBACK_LIBRARY_PATH,
which takes /usr/local/lib out of dyld's reach and leaves the archive
standing on @executable_path alone. Verified both ways: it fails on a
v0.2.0 bundle and passes once SDL3 is bundled.

Version goes to 0.2.1 so the fix can be tagged without a second commit.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>