github lucasgelfond/zerobrew v0.2.0

latest release: v0.2.1
11 hours ago

hi there!

zerobrew v0.2.0 is a fairly large update focused on usability, stability, and better internal architecture.

this release introduces several new CLI commands, including zb update and zb outdated, along with batch processing for zb migrate. output handling has also been expanded with --quiet, --verbose, and --json modes, backed by a new tracing-based logging system (thanks to @maria-rcks). the UI layer is now configurable, allowing themes and writer-based output customization.

there are also a number of quality-of-life improvements. missing package errors now provide fuzzy formula suggestions, API requests can be cached locally, and the API endpoint can be overridden using ZEROBREW_API_URL.

internally, this release also improves reliability and performance. the installer now uses a global lock to prevent concurrent install corruption, SQLite schema versioning has been added with proper migrations, downloads are more memory efficient, and several edge cases around macOS bottles, Mach-O patching, and Linux linking have been addressed.

soon, we plan to make a more targeted approach towards our x86/intel support (both CI and the code). see #286, #293.

this is further progress in our plan to lay the groundwork for future features and functionalities of zerobrew led by @cachebag.

Added

  • Batch processing for zb migrate command (#285)
  • zb outdated command with --quiet/--verbose/--json output modes (#266)
  • zb update command (#266)
  • Tracing-based internal logging with -v/--verbose and -q/--quiet flags (#275)
  • Configurable UI theme and writer-based output layer (#274)
  • Fuzzy formula suggestions on missing package errors (#279)
  • ZEROBREW_API_URL support and persistent API cache (#252)
  • Build provenance attestation in release workflow (#247)

Fixed

  • Added SQLite schema versioning with sequential migrations and downgrade protection(#305)
  • Global lock on installer to prevent concurrent install corruption (#304)
  • Strip zerobrew's bin paths from PATH during install to prevent dyld errors on re-install (#289)
  • Warn when Mach-O in-place patching is skipped due to prefix length mismatch (Intel Mac) (#286)
  • Prefer compatible macOS bottle tags over newer ones (#283)
  • Ruby syntax backwards compatibility for source builds (#282)
  • Skip extraction on raw binaries and copy to keg bin dir directly (#278)
  • Chunked download robustness and memory efficiency (#270)
  • Skip libexec virtualenv metadata links to avoid cross-formula conflicts (#248)
  • Link formulas on Linux when Homebrew marks them keg-only (#249)
  • Preprocess resolver before parsing (#244)

Changed

  • Eliminate unwraps, reduce allocations, decompose install path (#292)
  • Removed --yes alias from global --auto-init flag (#287)

New Contributors

Full Changelog: v0.1.2...v0.2.0

Don't miss a new zerobrew release

NewReleases is sending notifications on new releases.