Homebrew formulae for Semantic Reasoning projects.
brew tap semantic-reasoning/tap# Install from tap
brew install semantic-reasoning/tap/<package-name>Available packages can be discovered with:
brew search semantic-reasoningbrew install --build-from-source ./Formula/<formula-name>.rb- macOS 10.13+ or Linux (Ubuntu 20.04+, Debian 11+)
- Meson ≥ 0.62.0
- Ninja
- pkg-config
- GCC or Clang
This tap uses a multi-stage macOS CI gate (.github/workflows/) to validate PRs and releases:
- lint.yml (fast): Syntax, style, and audit checks on every PR/push to main
- tests.yml (build matrix): Full source builds on
macos-14(ARM64) +macos-13(x86_64); includes co-installation testing forwirelog+wyrelogsymlink conflicts - head-build.yml (nightly): Tests upstream
HEADbuilds to detect dependency drift - release.yml (on tag): Validates tagged formula releases before publication
- Dependent-rebuild:
reverse_deps.ymltracks tap-internal dependencies. Whenlibchronoidorwirelogchange, reverse-dependents are rebuilt to catch cross-formula breakage. - Co-installation testing:
wyrelogrequireswirelog; CI explicitly tests both installation order and symlink conflict scenarios (commit 8df2384). - Caching: Homebrew dependency installation is cached by runner to reduce build time.
- Native runners: Uses GitHub's native
macos-14andmacos-13runners; no cross-compilation or containers. Exercises macOS-specific code paths (rpath, dylib handling).
- Formulae currently pin source snapshots until tagged releases are available
- Pre-built binaries are downloaded during installation where available
- All packages use Meson build system with offline wrap resolution
brew styleviolations: Runbrew style --fix ./Formulalocally and commit the changesbrew audit --strictfailures: Review the audit warning and fix the formula or consider if the warning is a false positive- Ruby syntax errors (
ruby -wc): Check for YAML indentation or Ruby syntax issues in.rbfiles
- Dependency resolution: Check if
reverse_deps.ymlis accurate; if a formula'sdepends_onchanged, update the reverse-dep map - Build timeout on
wyrelog: DuckDB download + Meson can take 15–20 min on the first build; cache hits should speed subsequent runs - Linker errors on
wyrelog: Verifylibduckdb.dylibis present and executable. Checklipo -infooutput for architecture mismatch - Local reproduction: Run
brew install --build-from-source ./Formula/<name>.rb && brew test <name>to debug locally
- Symlink conflicts (
wirelog↔wyrelog): This is the expected failure mode. The fix usually involves:- Check for overlapping files:
brew --prefix wirelog/libvs.brew --prefix wyrelog/lib - Either remove the conflicting file from one formula or use
install_name_toolto fix dylib references - See commit 8df2384 for the current conflict resolution strategy
- Check for overlapping files:
brew testfailures: Ensure bothbrew test wirelogandbrew test wyrelogpass independently in thetest-botjob first
- Advisory-only: HEAD build failures do not block releases. They indicate upstream (
mainbranch) changes may have broken the formula. - Check upstream: Compare the HEAD build error to the upstream commit log for the dependency project. If the upstream is genuinely broken, ping the upstream maintainers.
- Re-run manually: Use GitHub Actions UI to trigger the job with
workflow_dispatchafter upstream fixes are available
- Tag format: Tags must match
<formula>-<version>(e.g.,libchronoid-1.0.3,wyrelog-2.5.1) - Formula mismatch: The formula file must exist at
Formula/<formula>.rb - Version validation: Ensure the version in the tag matches the
versionin the formula file - Co-install for wirelog/wyrelog: If releasing
wirelogorwyrelog, the release job runs co-installation tests to catch symlink conflicts before publication