Skip to content

Releases: lucasgelfond/zerobrew

v0.2.1

15 Mar 03:26

Choose a tag to compare

What's Changed

  • fix(zb_cli): global lock on installer by @cachebag in #304
  • fix(zb_io): added SQLite schema versioning with sequential migrations and downgrade protection by @cachebag in #305
  • chore(changelog): bump version and update CHANGELOG.md by @cachebag in #306
  • fix(zb_cli): removed redundant flags from Outdated variant by @cachebag in #308

Full Changelog: v0.2.0...v0.2.1

v0.2.0

14 Mar 16:00

Choose a tag to compare

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

v0.1.2

15 Feb 19:36

Choose a tag to compare

Since the last release, primary updates were compilation from source + the Ruby shim (@cachebag), zbx (@cachebag / @maria-rcks), + a bunch of governance / licensing work. Huge shoutout to @cachebag / @maria-rcks for taking on nearly all of the reviews + code contributions on this release!

Full Changelog: v0.1.1...v0.1.2

What's Changed

  • fix(zb_cli): init shell management & fish support by @maria-rcks in #200
  • chore: update readme to show valid discord invite by @maria-rcks in #197
  • chore(docs): swap install script by @lucasgelfond in #205
  • feat(site): eleventy init by @lucasgelfond in #204
  • fix(zb_cli): default macOS prefix to root (/opt/zerobrew) instead of root/prefix to stay within the 13-char Mach-O path limit by @cachebag in #206
  • feat(install): add support for github releases / fallback to clone by @maria-rcks in #198
  • fix(zb_io, zb_core): prevent bricked installs from link conflicts, respect keg-only formulas by @cachebag in #207
  • ci(release): force static liblzma linking and verify macOS binaries by @maria-rcks in #222
  • fix(install): remove -D flag since we already create directories first by @maria-rcks in #221
  • feat(zb_io): support external taps + casks with safer install/uninstall behavior by @maria-rcks in #203
  • docs(readme): add banner + star history and refresh README structure by @maria-rcks in #224
  • feat(zb): local source building fallback and zb_core modular restructure by @cachebag in #212
  • chore(changelog): update CHANGELOG.md by @cachebag in #225
  • chore(release): bump crates to 0.1.2 by @maria-rcks in #223
  • fix(zb_io): macos patching - skip patching when new prefix is longer than old by @cachebag in #227
  • fix(zb_io): preserve execute bit when patching Mach-O binary strings by @cachebag in #228
  • fix(ci): include zbx binaries in release by @cachebag in #229
  • fix(zb): formula token normalization across crates by @maria-rcks in #230
  • feat(zb_io): resolve tap formulas from Formula, HomebrewFormula, and root by @maria-rcks in #231
  • feat(zb_io): support source-only tap formulas by @maria-rcks in #232
  • feat(zb_cli): add bundle dump and Brewfile syntax support by @pavvann in #218
  • chore(licensing): update disclosures of third-party code usage by @cachebag in #233
  • ci: run homebrew compataibility tests every sunday night by @cachebag in #234
  • chore(readme): homebrew relationship by @cachebag in #237
  • fix(zb_io): change file_type.is_dir() to src_path.is_dir() by @cachebag in #236
  • fix(install): default macOS prefix to root on scripts by @maria-rcks in #239

Full Changelog: v0.1.1...v0.1.2

v0.1.1 release

08 Feb 14:39

Choose a tag to compare

Mostly so we can do a Homebrew release - true large release coming soon

What's Changed

  • [perf] zb_io: speed up downloads with true racing cancellation by @vyomakesh0728 in #39
  • bugfix: Fix progress bar UI synchronization and resource cleanup by @vyrti in #36
  • Use ZDOTDIR and prefer .zshenv over .zshrc by @maria-rcks in #26
  • feat: Add release profile optimizations by @vyrti in #34
  • bugfix: Fix version regex bug in text file placeholder patching by @vyrti in #37
  • fix: strengthen tar extraction path traversal validation by @cachebag in #46
  • bugfix: Add MSRV 1.90 to fix let chains compilation error by @vyrti in #44
  • Revert "bugfix: Fix version regex bug in text file placeholder patching" by @lucasgelfond in #50
  • Clone zerobrew repository with depth 1 by @AfkaraLP in #58
  • fix(install): force reset to origin head on update by @AfkaraLP in #66
  • config: workspace organization and resolver bump by @cachebag in #60
  • install.sh: Support ENV overrides & refactor PATH addition by @mcint in #72
  • ci: add path filters to skip unnecessary run by @maria-rcks in #75
  • Fix path export and update _zb_path_append function by @mcint in #73
  • feat(zb_cli): add fallback prompt if unwritable. by @lbr77 in #77
  • fix(zb_io): formula name normalization and unsupported tap handling by @quantumshiro in #83
  • fix(zb_core): use revision instead of rebuild for bottle path by @hanthor in #85
  • fix: export PKG_CONFIG_PATH for zerobrew-installed packages by @cachebag in #81
  • chore: replace bash scripts with Justfile for better dev workflow by @maria-rcks in #88
  • docs: update README.md by @eltociear in #94
  • chore(general): goodnight dev directory by @lucasgelfond in #95
  • feat(zb_cli): shell compeletions for zb by @Xiao-Chenguang in #96
  • (WIP) feat: Add Linux Support by @hanthor in #51
  • feat(general): dual license under apache and MIT by @lucasgelfond in #110
  • ci: add release wokflow for cross-platform builds by @maria-rcks in #108
  • fix: restore shell config cleanup in uninstall and add reset target by @littleKitchen in #112
  • fix(zb_io): HTTP/2 stream contention when using multiple racing connctions via rustls by @cachebag in #115
  • feat(zb_cli/zb_io): add homebrew migration command by @objectivecosta in #90
  • refactor: remove ZEROBREW_OPT in favor of ZEROBREW_ROOT and unify install process by @maria-rcks in #121
  • chore(docs): license update by @cachebag in #125
  • refactor(zb_cli): change flat structure to delagated modules by @cachebag in #124
  • fix: install.sh now correctly sets paths to load dynamically from env vars by @maria-rcks in #128
  • feat: support http range requests to download different parts of the same file by @fatelei in #49
  • fix(zb_io): isolate HTTP/2 connections per racing download to prevent stream contention by @cachebag in #123
  • chore(general): fix README to indicate x-platform support by @lucasgelfond in #134
  • feat(zb): zbx command by @cachebag in #135
  • fix(justfile): '' negates env vars, so \ was redundant by @maria-rcks in #137
  • feat(zb_cli): implement simultaneous multi-formula installation support by @himudigonda in #129
  • chore: remove Justfile ft specify by @BBboy01 in #98
  • feat(zb_cli): Add Brewfile-style manifest installs by @pavvann in #101
  • refactor(zb_cli): in info, make install timestamps human-readable by @rbutoi in #140
  • chore(changelog): introduce changelog by @cachebag in #141
  • fix(zb_io): properly restore permissions patching Linux binaries by @rbutoi in #142
  • test(zb_cli): add integration tests for {,un}install, list, info, gc by @rbutoi in #139
  • feat(zb_cli): support uninstalling multiple packages at once by @rbutoi in #145
  • fix(zb_cli): don't modify user's shell config (PATH) at runtime by @rbutoi in #146
  • fix(zb_core, zb_io): fix git HTTPS cloning and Linux dependency resolution by @cachebag in #153
  • fix(zb_core): fix bottle selection to detect CPU arch on macOS by @cachebag in #155
  • fix: real human-readable install timestamp by @we11adam in #144
  • chore: update dependencies by @maria-rcks in #165
  • refactor(install.sh): better install / onboarding by @maria-rcks in #151
  • fix(install): allow unbound var in conditional by @tdjordan in #170
  • fix: align download concurrency and chunked fallback by @maria-rcks in #168
  • fix(zb_io): fix macOS git HTTPS remotes by patching hardcoded Homebrew paths in Mach-O binaries by @cachebag in #166
  • fix(zb_io, zb_cli): SSL certificate verification for installed packages by @cachebag in #171
  • chore: PR template for contributors by @cachebag in #169
  • fix(zb_cli): restore homebrew installation suggestion on install errors by @cachebag in #174
  • fix(zb_cli): conditional shell exports for setting SSL env vars by @cachebag in #176
  • refactor(zb_cli): zb init now uses previous variables on ssl certs / pkgconfig by @maria-rcks in #178
  • refactor(zb_io): structural re-organization by @cachebag in #175
  • fix(install): target directory in install by @cachebag in #179
  • refactor: move benchmark over to Justfile by @maria-rcks in #107
  • chore: update PR template for clarity by @cachebag in #184
  • fix(bottle): use bare OS names for Intel Mac bottle tags by @sgrams in #181
  • refactor: update README after #107 by @rbutoi in #189
  • fix(install): empty init_args array on bash 3.2 by @cachebag in #186
  • fix(zb_io): reject Mach-O patching when prefix exceeds 13 chars to prevent broken git HTTPS by @cachebag in #194
  • fix(zb_io, zb_cli, install): harden install/gc state and runtime defaults by @maria-rcks in #193
  • Termux Error Handling by @abdalmoniem in #136

New Contributors

Read more