Skip to content

feat: add Homebrew formula and expand CI platform matrix - #48

Merged
tkolleh merged 1 commit into
mainfrom
feat/homebrew-formula
Apr 9, 2026
Merged

feat: add Homebrew formula and expand CI platform matrix#48
tkolleh merged 1 commit into
mainfrom
feat/homebrew-formula

Conversation

@tkolleh

@tkolleh tkolleh commented Apr 9, 2026

Copy link
Copy Markdown
Owner

Summary

  • Add Homebrew tap (tkolleh/homebrew-tap) with formula for roda v1.13.10 — brew install tkolleh/tap/roda
  • Expand CI release matrix with Linux ARM64 (ubuntu-24.04-arm) and macOS Intel (cross-compiled on ARM64 runner)
  • Update justfile with cross-compilation support (CMAKE_OSX_ARCHITECTURES, CC variables)
  • Reorder README installation section: Homebrew > Standalone Binary (4 platforms) > Lua Library

Details

CI changes (.github/workflows/release-please.yml)

  • New matrix entries: linux-aarch64 on ubuntu-24.04-arm, macos-x86_64 on macos-latest
  • Dynamic LUA_LIB path via dpkg-architecture (fixes hardcoded x86_64 multiarch path)
  • macOS Intel cross-compilation: builds Lua 5.4 from source, passes -arch x86_64 through entire toolchain
  • lipo -archs verification step for macOS builds
  • Rockspec generation/upload scoped to linux-x86_64 only
  • Upload steps split per-platform for clarity

justfile

  • cmake_osx_arch_flag passes CMAKE_OSX_ARCHITECTURES to build-luv cmake
  • cc variable replaces hardcoded gcc in build-system
  • Default behavior unchanged (empty arch flag, gcc)

Homebrew tap (separate repo)

  • Created tkolleh/homebrew-tap with Formula/roda.rb
  • macOS ARM64 and Linux x86_64 SHA256 values from v1.13.10 release
  • macOS Intel and Linux ARM64 SHA256 are zero-placeholders until first release with those binaries

Test plan

  • brew audit --new tkolleh/tap/roda passes
  • brew style tkolleh/tap/roda passes (no offenses)
  • brew install tkolleh/tap/roda installs to /opt/homebrew/Cellar/roda/1.13.10
  • brew test roda passes
  • roda --help works after install
  • roda --title "..." --spinner dots2 -- sleep 2 spins and exits 0
  • Binary at /opt/homebrew/bin/roda, architecture Mach-O 64-bit executable arm64
  • just --fmt --check passes
  • Pre-commit hooks pass
  • CI matrix produces roda-linux-aarch64.tar.gz and roda-macos-x86_64.tar.gz (verified on first release)
  • Update formula SHA256 placeholders after first release with all 4 binaries

Add Homebrew tap installation to README, expand the CI release matrix
to build binaries for macOS Intel (x86_64 cross-compilation) and
Linux ARM64 (native ubuntu-24.04-arm runner), and update the justfile
to support cross-compilation via CMAKE_OSX_ARCHITECTURES and CC env vars.

Changes:
- Add linux-aarch64 and macos-x86_64 to release-please build matrix
- Use dpkg-architecture for dynamic LUA_LIB path on Linux
- Build Lua 5.4 from source for macOS Intel cross-compilation
- Add lipo-based architecture verification for macOS builds
- Split upload steps per platform; scope rockspec to linux-x86_64
- Add cmake_osx_arch_flag and cc variables to justfile
- Reorder README installation: Homebrew > Binary (4 platforms) > Library
- Remove stale docs/ entry from AGENTS.md
@tkolleh
tkolleh marked this pull request as ready for review April 9, 2026 21:05
@tkolleh
tkolleh merged commit 010db21 into main Apr 9, 2026
2 checks passed
@tkolleh
tkolleh deleted the feat/homebrew-formula branch April 9, 2026 21:05
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