Skip to content

Releases: zerobrewhq/zerobrew

v0.3.5

Choose a tag to compare

@github-actions github-actions released this 30 Sep 15:43

NOTE:

  • Users who already have alias records should run zb doctor --repair once
  • sbin gets added to PATH when you rerun the installer or zb init.

What's Changed

  • fix(zb_io): libexec linking, alias installs and doctor repair by @cachebag in #417

Full Changelog: v0.3.4...v0.3.5

v0.3.4

Choose a tag to compare

@github-actions github-actions released this 30 Sep 15:01

What's Changed

  • fix(bench): measure homebrew and zerobrew from the same state by @cachebag in #410
  • fix: don't truncate a shell config that init cannot read by @ironman5366 in #400
  • docs: move homebrew install to the cachebag/zerobrew tap by @cachebag in #411
  • fix(zb_io): relocate bottles the way homebrew does by @cachebag in #412

New Contributors

Full Changelog: v0.3.3...v0.3.4

v0.3.3

Choose a tag to compare

@github-actions github-actions released this 30 Sep 02:15

What's Changed

  • fix(zb_io): replace same-formula and dangling symlinks when linking kegs by @cachebag in #393
  • fix(README): restore broken star history charts by @CrustyMozarella in #396
  • build(deps): fix macos 27 build by bumping rustls version by @misha-kis in #406
  • fix(zb_core): do not assume versioned packages are keg-only- #399 by @tj-moody in #403
  • chore: prepare 0.3.3 release by @cachebag in #409

New Contributors

Full Changelog: v0.3.2...v0.3.3

v0.3.2

Choose a tag to compare

@github-actions github-actions released this 12 Jun 02:47
89a60b7

What's Changed

  • fix(zb_io): skip libexec/ for Python virtualenv kegs by @pmnmq in #383
  • Fix/shim resource patch checksum verification by @cachebag in #388

#388 includes a fix for CVE-2026-53970: verify SHA-256 for resource and URL patch downloads in the build shim before extract/apply. Reported via VulnCheck coordinated disclosure (Khushali Dalal).

Full Changelog: v0.3.1...v0.3.2

v0.3.1

Choose a tag to compare

@github-actions github-actions released this 30 May 05:18

What's Changed

  • fix(zb_io): tolerate missing system CA certs when building HTTP clients by @cachebag in #375
  • fix(zb_io, zb_cli): correct migration behavior on unplannable formulas by @cachebag in #380
  • clarify installer shell setup output by @cachebag in #381

Full Changelog: v0.3.0...v0.3.1

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 29 May 02:34

yo! this release includes two major new commands: zb doctor for diagnosing and repairing local state, and zb upgrade for upgrading installed packages. It also improves Linux bottle handling, Python package linking, migration behavior, formula alias resolution, CLI help text, and release stability.

Apologies for the delay and recent period of inactivity. Thanks for sticking with the project while we got this release together.

What's Changed

  • feat(site): v2 aka just the homepage by @maria-rcks in #309
  • fix(zb_io, zb_cli): validate root/prefix paths before passing to sudo by @cachebag in #311
  • refactor(zb_io): split monolothic install functionality into submodules by @cachebag in #312
  • refactor(zb_io): split monolothic download functionality into submodules by @cachebag in #313
  • feat(zb): zb doctor + --repair for state diagnosis and repair by @cachebag in #314
  • docs: add Chinese translation (README.zh.md) by @JasonYeYuhe in #316
  • fix(deps): vulnerabilities in aws-lc-sys/rs and rustls-webpki by @cachebag in #318
  • fix(zb_io): only match version segments withing Cellar-style paths by @cachebag in #317
  • fix: make just fmt apply formatting by @maria-rcks in #319
  • chore(docs): add Homebrew tap as alternative install method by @tomholford in #325
  • chore(deps): update Cargo.lock by @maria-rcks in #330
  • docs: direct brew install by @brandonkal in #337
  • feat(zb_io): make migration install only leaves by @ordinary-hacker in #333
  • fix(zb_io): resolve formula aliases and oldnames on 404 by @pavvann in #332
  • chore: refresh Cargo.lock for audits by @cachebag in #345
  • ci: pin Ubuntu runners to 22.04 for stability by @Arvuno in #352
  • ci: add security scanning by @Arvuno in #354
  • chore(zb_cli): add help messages by @fu050409 in #355
  • Revert "ci: add security scanning" by @cachebag in #358
  • chore: refresh Cargo.lock for audits by @Arvuno in #363
  • feat(zb_cli): zb upgrade to upgrade installed packages by @pmnmq in #369
  • fix(zb_io): skip libexec python site-packages links by @cachebag in #368
  • fix(zb_cli): ignore stale macOS prefix env default by @cachebag in #372
  • fix/linux: python bottle runtime by @cachebag in #373
  • chore: prepare 3.0 release by @cachebag in #374

New Contributors

Thank you to our new contributors this release!

Full Changelog: v0.2.1...v0.3.0

v0.2.1

Choose a tag to compare

@github-actions github-actions released this 15 Mar 03:26

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

Choose a tag to compare

@github-actions github-actions released this 14 Mar 16:00

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

Choose a tag to compare

@lucasgelfond lucasgelfond released this 15 Feb 19:36

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

Choose a tag to compare

@lucasgelfond lucasgelfond released this 08 Feb 14:39

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