brew_dart
Programmatic access to Homebrew on macOS and Linux. Strongly-typed freezed models, JSON v2 parsing, streaming output, batch operations, and a Brew facade.
0.3.0
17K downloads/mo
#2371 most downloaded on pub.dev
jwinarske/brew_dart
What this package is like to depend on
Last release 4 months ago
02 Apr 2026
Too new to tell
only 2 dated releases
Nearly every release is documented
notes for 2 of 2 stable releases
Nothing withdrawn
no release was ever pulled
4 months old
2 releases · first in 2026
2 releases in the last 12 months
see the full history below
Release timeline
2 releases · Apr 2026 to Apr 2026Releases
latest 2-
0.3.002 Apr 2026Release notes
Open source →- Bump version to 0.3.0
- Update CHANGELOG with 0.3.0 entries
- Remove *.g.dart and *.freezed.dart from .pubignore so pub.dev
static analysis can resolve generated freezed types - Shorten pubspec description to pass pub points validation (154 chars)
Signed-off-by: Joel Winarske [email protected]
Release notes
Open source →Fixed
- pub.dev static analysis: committed generated
*.freezed.dartand*.g.dartfiles so pub.dev's analyzer can resolve types without runningbuild_runner. Updated.gitignoreto only exclude generated files underexample/, notlib/.
Changed
pubspec.yamldescription shortened to 154 characters (within the 60–180 pub point limit) to achieve a perfect 160/160 pub points score.analysis_options.yamlupdated to usepackage:lints/recommended.yaml(waspackage:lints/core.yaml).
Docs
- Added Flutter example app screenshot (
doc/flutter_example_01.png) to README.
-
0.2.002 Apr 2026Release notes
Open source →Bump version to 0.2.0, document the release in CHANGELOG, and tighten
the .pubignore to keep the published package lean.pubspec.yaml: version 0.1.0 → 0.2.0CHANGELOG.md: promote [Unreleased] to [0.2.0] - 2026-04-01.pubignore: excludecoverage/,coverage_fresh/,coverage_new/,
coverage_final/, andcodecov.ymlfrom the published archive;
package size drops from 667 KB → 44 KB
Signed-off-by: Joel Winarske [email protected]
Release notes
Open source →Changed
- CI coverage threshold raised from 30% to 60% now that auto-generated files are excluded from measurement.
Fixed
- Coverage reporting:
codecov.ymladded to instruct Codecov to ignore*.g.dartand*.freezed.dartfiles; CI pipeline now strips those files fromlcov.infovia a post-processing step before uploading, removing ~1,900 lines of boilerplate from the headline number.
Tests
- Test count increased from 140 → 256 (+116 tests); hand-written-code coverage reaches 99%.
FakeBrewCliextended withwhenRunThrows()to exercise exception-catch branches without spawning a real process.- New test groups covering previously untested paths:
Brewfacade:upgradeAll,uninstallAll, parallelinstallAll,upgradeStream,updateStream,listInstalledfiltering, error-throw paths for every Phase 1–6 method,isInstalledexception branches, default constructor,cligetter,search/install/uninstall/cleanup/upgrade/bundle/bundleCheckflag variants.BrewCli:run()success/stderr/extraEnv,runJson()success,stream()stdout, stderr, and non-zero exit.ServicesParser:_parseFallbackpath, multi-token file path,none/unknownstatus values.JsonV2Parser: outdated casks,installed_versionsas legacy string, missingcurrent_versionfallback, null/absent versions.BrewfileParser: Ruby:symbol,true/falsebooleans, quoted string option values,whalebrewentry type.SearchParser:==> Formulaeheader branch,_Section.nonepre-header lines, unknown section header handling.DoctorParser:Error:severity, mixed warning + error output.BrewApiClient:installAnalyticsfallback toformulaekey, string-valued counts, 90-day range, empty items;CaskDetailwithdepends_on/auto_updates.- New file
test/models/additional_models_test.dart:BundleResult/BundleCheckResulttoString();fromJsonround-trips forBrewConfig,BrewfileEntry,Brewfile,MissingDependency,Diagnostic,DoctorReport,OutdatedPackage,BrewService.