Inspect outdated Composer dependencies with inline release notes, SemVer impact categorization ([MAJOR], [MINOR], [PATCH]), and compare diff links before updating your project.
Powered by Termwind for stunning terminal output.
composer outdatedtells you which packages are outdated, but gives no context on breaking changes or what actually changed.pyrech/composer-changelogsonly displays changelogs aftercomposer updatehas already run.composer-outdated-changesruns before you update:- Inspects outdated packages locally (
composer outdated --format=json). - Categorizes version bumps according to Semantic Versioning (
MAJOR,MINOR,PATCH). - Formats exact repository comparison links (
/compare/v1.0.0...v2.0.0) for GitHub, GitLab, and Bitbucket. - Automatically pulls inline release notes from GitHub's REST API without requiring an API key.
- Renders a Tailwind-styled terminal card report, with optional Markdown and JSON outputs for CI/PR comments.
- Inspects outdated packages locally (
Run instantly without modifying your composer.json:
cpx spodnet/composer-outdated-changescomposer require --dev spodnet/composer-outdated-changes
# Run binary
./vendor/bin/composer-outdated-changescomposer global require spodnet/composer-outdated-changes
composer-outdated-changes# Check direct dependencies (default)
composer-outdated-changes
# Include transitive / sub-dependencies
composer-outdated-changes --all
composer-outdated-changes -a
# Filter by SemVer impact level
composer-outdated-changes --major-only # Only breaking changes
composer-outdated-changes --minor-only # Minor feature updates
composer-outdated-changes --patch-only # Bug fixes & patches
# Target a different directory / repository
composer-outdated-changes --path=/path/to/another-project
# 100% Offline Mode (Instant, skips HTTP release note fetching)
composer-outdated-changes --no-changelog
# Filter by package name
composer-outdated-changes guzzle
composer-outdated-changes --filter=symfony
# Alternative output formats
composer-outdated-changes --format=markdown # Great for GitHub Actions PR comments
composer-outdated-changes --format=json # Great for scripts and automation- Repository URLs: Discovered 100% locally from
composer outdated --format=jsonandvendor/composer/installed.jsonwithout any network calls. - Compare & Release URLs: Formatted offline via platform-specific generators (
GitHub,GitLab,Bitbucket). - Release Notes: Fetched directly from GitHub's public REST API. No API key is required (allows 60 unauthenticated requests/hour). If a
GITHUB_TOKENis present in your environment, it is automatically used to lift the limit to 5,000 req/hr. - Offline Guarantee: When
--no-changelogis specified, zero external HTTP requests are made.
Built in adherence to Spodnet/quality-control:
- PHP 8.4+ with
declare(strict_types=1); - Pint code formatting (
composer lint) - PHPStan static analysis at Level 8 (
composer analyse) - Pest PHP test suite (
composer test)
# Run tests
composer test
# Check code formatting
composer lint:check
# Run PHPStan
composer analyse
# Run all checks
composer checkMIT License. See LICENSE for details.