Skip to content

Make informed updates - See what changed in your Homebrew packages before updating. Get release notes, changelogs, and version details for outdated packages with smart package detection.

License

Notifications You must be signed in to change notification settings

shrwnsan/brew-change

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

brew-change

Make informed updates - see what changed in your Homebrew packages

🚀 Quick Start

# Show simple outdated list (like brew outdated)
brew-change

# Show outdated packages with version information
brew-change -v

# Show detailed changelog for specific package
brew-change node

# Show detailed changelogs for all outdated packages in parallel
brew-change -a

# Highlight packages with breaking changes (-b implies -a)
brew-change -b

# Show version information
brew-change --version

# Show help
brew-change --help

🎯 Who This Is For

  • Developers who want to understand package changes before updating
  • DevOps Engineers managing production dependencies
  • Security-Conscious Users checking for vulnerability fixes
  • Power Users who like knowing what's changing in their tools
  • Curious Learners exploring how their tools evolve

✨ Key Features

  • Smart Package Detection: GitHub, npm, third-party taps, hybrid packages, and more
  • Parallel Processing: Handles multiple packages simultaneously (45-50s for 13 packages)
  • Breaking Changes Detection: Automatically highlights packages with breaking changes using -b flag
  • Rich Release Info: Full changelogs, commit history, and helpful links
  • Revision Support: Advanced handling of Homebrew revision numbers
  • Performance Optimized: 75% faster than original with intelligent caching

📦 Installation

Quick Install

# Install directly via Homebrew tap (dependencies included)
brew install shrwnsan/tap/brew-change

# Verify installation
brew-change --version

Dependencies

  • Homebrew: Core package manager
  • jq: JSON parsing and processing
  • curl: HTTP requests with retry logic
  • bash: Version 4.0+ for modern shell features

Platform Support

brew-change works seamlessly across all platforms where Homebrew is available:

Platform Homebrew Path Status
macOS (Intel) /usr/local/bin/brew ✅ Fully supported
macOS (Apple Silicon) /opt/homebrew/bin/brew ✅ Fully supported
Linux /home/linuxbrew/.linuxbrew/bin/brew ✅ Fully supported
WSL (Windows Subsystem for Linux) /home/linuxbrew/.linuxbrew/bin/brew ✅ Fully supported

The script automatically detects the correct library path using brew --prefix, ensuring compatibility across all Homebrew installations.

🎯 Package Types

brew-change intelligently handles different package sources:

  • GitHub packages: Full release notes with commit history
  • npm packages: Registry information with release dates
  • Hybrid packages: npm distribution + GitHub development
  • Third-party taps: Community tap support (charmbracelet, oven-sh/bun)
  • Modern CLI tools: Documentation-repository pattern (alpha)

See detailed package type examples: Package Types DocumentationFull documentation index: All Documentation

🐛 Troubleshooting

"Package not found" errors

brew info package-name    # Check if package exists
brew search package-name  # Search for similar packages

Slow performance

brew-change -a            # Auto-adjusts if system is busy
export BREW_CHANGE_JOBS=2 # Reduce parallel jobs manually

Network timeouts

curl -I https://api.github.com  # Check connectivity

Clear cache

rm -rf ~/.cache/brew-change/*

📈 Recent Updates

  • v1.5.8: Fixed parallel mode - resolved set -e inheritance breaking parallel execution
  • v1.5.7: Fixed cask version display - handle both string and array names in -v flag output
  • v1.5.6: Fixed cask detection - use .name field for proper cask identification
  • v1.5.5: Fixed cask detection - use .token field for Homebrew JSON API v2
  • v1.5.4: Show [not installed] for uninstalled packages

Full changelog: CHANGELOG.md

🔗 Related Projects

  • Homebrew - The missing package manager for macOS
  • jq - Command-line JSON processor
  • GitHub CLI - Official GitHub command-line tool

📄 License

MIT License - see LICENSE file for details.


Looking for more?

About

Make informed updates - See what changed in your Homebrew packages before updating. Get release notes, changelogs, and version details for outdated packages with smart package detection.

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages