Releases: lucasgelfond/zerobrew
v0.2.1
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
Outdatedvariant by @cachebag in #308
Full Changelog: v0.2.0...v0.2.1
v0.2.0
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 migratecommand (#285) zb outdatedcommand with--quiet/--verbose/--jsonoutput modes (#266)zb updatecommand (#266)- Tracing-based internal logging with
-v/--verboseand-q/--quietflags (#275) - Configurable UI theme and writer-based output layer (#274)
- Fuzzy formula suggestions on missing package errors (#279)
ZEROBREW_API_URLsupport 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
PATHduring 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
--yesalias from global--auto-initflag (#287)
New Contributors
- @shaanmajid made their first contribution in #247
- @aronchick made their first contribution in #252
- @jvanderen1 made their first contribution in #287
Full Changelog: v0.1.2...v0.2.0
v0.1.2
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_coremodular 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()tosrc_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
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_PATHfor 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
rustlsby @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):
zbxcommand 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
Justfileft 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_argsarray 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
- @vyomakesh0728 made their first contribution in #39
- @vyrti made their first contribution in #36
- @maria-rcks made their first contribution in #26
- @AfkaraLP made their first contribution in #58
- @mcint made their first contribution in #72
- @lbr77 made their first contribution in #77
- @quantumshiro made their first contribution in #83
- @hanthor made their first contribution in #85
- @eltociear made their first contribution in #94
- @Xiao-Chenguang made their first contribution in #96
- @littleKitchen made their first contribution in #112
- @objectivecosta made their first contribution in #90
- @fatelei made their first contribution in #49
- @himudigonda made their first contribution in https://github.com/lucasgelfond/zerobrew/...