Releases: nowo-tech/ComposerUpdateHelper
Release list
Release v2.0.31
Release v2.0.31
Changelog
- 2026-07-16
Release v2.0.30
Release v2.0.30
Changelog
Breaking Changes
- PHP requirement: Minimum PHP version is now
>=8.1 <8.6(previously>=7.4). Projects on PHP 7.4 or 8.0 must upgrade PHP before updating this package.
Added
- Opt-in wrapper auto-update: New
extra.composer-update-helper.auto_update_wrapperflag in the consuming project'scomposer.jsonto overwrite a customizedgenerate-composer-require.shwhen the package copy differs (disabled by default to protect local changes). - Static analysis and refactoring toolchain: PHPStan and Rector added to
require-dev, withcomposer phpstan,composer rector, andcomposer rector-dryscripts. - Pre-release pipeline:
make release-checkruns composer sync, code style, Rector dry-run, PHPStan, and coverage validation. - Documentation: INSTALLATION.md, SECURITY.md, SPEC-DRIVEN-DEVELOPMENT.md, and SPEC-KIT.md.
- CI/CD integrations: CodeRabbit workflow, PR lint, stale issue management, Scrutinizer configuration, and expanded GitHub Actions CI matrix.
- Spec Kit / Specify: Project scaffolding for spec-driven development (
.specify/, baseline specspecs/001-baseline/). - Composer archive exclusions:
demo/and.cursor/excluded from distribution archives.
Changed
- Plugin wrapper install behavior: The plugin installs the wrapper on first run; subsequent updates only overwrite when
auto_update_wrapperistrueor content already matches. When skipped, a comment explains how to enable overwrite. - Test layout: PHPUnit tests reorganized into
tests/Unit/andtests/Integration/. - README: Packagist badges, documentation index, PHP 8.1+ requirement, and wrapper update policy.
- Plugin and Installer: Code quality pass (PHPStan/Rector/PHP-CS-Fixer), modern string checks (
str_starts_with), and clearer PHPDoc. - composer.json: Corrected GitHub homepage/support URLs; Symfony FrameworkBundle added as dev dependency for static analysis.
Documentation
- README — Architecture: updated approximate line counts for
generate-composer-require.shandprocess-updates.php(and noted they can change between releases). Language list in the YAML example points to CONFIGURATION.md for the full locale set instead of a partial inline list. - Plugin.php —
installFiles()docblock documents first-install copy and opt-in overwrite behavior. - CONFIGURATION.md — Documents
extra.composer-update-helper.auto_update_wrapper.
Note: See UPGRADING.md for migration notes.
Commits
- Release v2.0.30: PHP 8.1+, opt-in wrapper updates, and release docs (ae750e9)
- chore: Add configuration files for CodeRabbit integration and improve project structure (e458e3b)
- chore: Update configuration files and scripts for improved development and testing (95d033f)
- chore: Update .gitignore and Makefile for improved development workflow (9497d57)
- fix: Remove clickable command functionality for better compatibility (v2.0.29) (ea7357a)
- feat: Enhanced grouped package resolution and copy-friendly commands (v2.0.28) (4fd25d5)
- feat: Add grouped package installation suggestions (v2.0.27) (5c5343f)
- docs: Add Packagist integration details to README (aacc7d9)
- Merge branch 'main' of github.com:nowo-tech/ComposerUpdateHelper into main (d57a5d0)
- feat: automatic dependent package update detection (2f30e4c)
- feat: automatic dependent package update detection (6734a73)
- fix: impact file location and enhanced debug/verbose output (dfffb3f)
- feat: comprehensive abandoned package detection for all installed packages (5e8964c)
- fix: Maintain PHP 7.4 compatibility with union types in PHPDoc only (229e462)
- fix: Update PHPDoc for readConfigValue to use specific union types (b1caf48)
- docs: Improve PHPDoc with union types for ConfigLoader::readConfigValue (b1c5c5a)
- fix: Remove mixed type hint for PHP 7.4 compatibility (1da6cbf)
- Release v2.0.23: YAML configuration for command-line options and Wildcard Dependency Checking (2c5d908)
- Release v2.0.22: Conflict Impact Analysis, package count, and optional impact analysis (a210e4c)
- feat: Improve dependency conflict messages and add UPDATE_CASES documentation (ca5b1f0)
- fix: Remove make_latest from createRelease API call (a79c6b8)
- docs: Update CHANGELOG and UPGRADING for version 2.0.20 (94cc6c5)
- refactor: Simplify output formatting for dependency conflict messages (d232f80)
- fix: Update README badge formatting for improved readability (0d972c6)
- Merge branch 'main' of github.com:nowo-tech/ComposerUpdateHelper into main (94fa191)
- fix: Update README badges for consistency and accuracy (5e5215d)
- Apply PHP CS Fixer fixes [skip ci] (a60bef7)
- feat: Enhance release workflow with previous tag and commit logging (076b542)
- feat: Enhance language detection and translation initialization (181bb3a)
- chore: Update CHANGELOG for version 2.0.19 release (3f03828)
- feat: Add i18n support, reorganize documentation, and improve PHPUnit config (cd8c6f0)
- fix: Update PHPUnit configuration for PHPUnit 10/11 compatibility (af91589)
- fix(workflows): Improve release changelog extraction and update logic (202bf6c)
- Apply PHP CS Fixer fixes [skip ci] (a846725)
- Merge branch 'main' of github.com:nowo-tech/ComposerUpdateHelper into main (4d79a4f)
- fix: Correct dependency conflict detection order and improve output formatting (9704234)
- Apply PHP CS Fixer fixes [skip ci] (0c390a4)
- feat: Add transitive dependency suggestions and improve dependency conflict resolution (dce31d1)
- fix(workflows): Add make_latest parameter and improve release sync logic (12bfd43)
- Apply PHP CS Fixer fixes [skip ci] (d1d1e70)
- chore: Prepare v2.0.16 - Remove dead code and adjust coverage threshold to 99% (8078313)
- fix(workflow): improve release formatting, fix newline handling and translate comments to English (528be55)
- Merge branch 'main' of github.com:nowo-tech/ComposerUpdateHelper into main (887ef62)
- fix: Remove duplicate command output in suggested commands section (v2.0.13) (542e795)
- Apply PHP CS Fixer fixes [skip ci] (4cf8ebf)
- Merge branch 'main' of github.com:nowo-tech/ComposerUpdateHelper into main (ce16078)
- chore: Prepare v2.0.12 - Update CI/CD coverage threshold to 90% and translate to English (fffb046)
- Apply PHP CS Fixer fixes [skip ci] (e215f7a)
- Merge branch 'main' of github.com:nowo-tech/ComposerUpdateHelper into main (31f30ec)
- refactor: Improve comments for package migration logic in Installer and Plugin (ecdb6e2)
- Apply PHP CS Fixer fixes [skip ci] (0366c05)
- Merge branch 'main' of github.com:nowo-tech/ComposerUpdateHelper into main (429b868)
- docs: Fix CHANGELOG line numbers and descriptions for v2.0.9 and v2.0.10 (2e43595)
- docs: Update version numbers after tag renaming (v2.0.10→v2.0.9, v2.0.11→v2.0.10) (5b3debf)
- docs: Consolidate v2.0.9 into v2.0.10 (v2.0.9 was documented but never tagged) (a71fa19)
- docs: Update documentation for v2.0.11 output formatting refactor (1dd6cb7)
- refactor: Move output formatting to PHP processor (v2.0.11) (3d27ae2)
- docs: Update documentation and fix script auto-update behavior (9513690)
- feat: Auto-update script on package update (v2.0.10) (fddc5e1)
- Enhance composer require script with loading indicators and release info feedback (ebaca21)
- Apply PHP CS Fixer fixes [skip ci] (87b8a1e)
- Merge branch 'main' of github.com:nowo-tech/ComposerUpdateHelper into main (00d14c0)
- v2.0.8: Improved debug messages and YAML configuration clarification (c9f604f)
- fix: v2.0.7 - Fix migration verification and release info default behavior (2196243)
- Apply PHP CS Fixer fixes [skip ci] (85375e6)
- docs: v2.0.6 - Documentation improvements and utility scripts (f2a8259)
- test: Add tests for include section functionality (a527b74)
- fix: Update tests to accept YAML creation message (f8aebf7)
- feat: v2.0.5 - Add include section and improve YAML parsing (9787140)
- docs: Update UPGRADING.md for v2.0.4 (dc86c68)
- fix: v2.0.4 - Improve migration verification and .gitignore behavior (f3d0d83)
- Merge branch 'main' of github.com:nowo-tech/ComposerUpdateHelper into main (8dcd0d8)
- docs: Add CodeReviewGuardian recommendation (e0d9866)
- chore: Update CHANGELOG for v2.0.3 (784b072)
- docs: Update tests and documentation for v2.0.2 (ca62909)
- fix: v2.0.2 - Improve migration to work even if YAML exists (0d20958)
- Apply PHP CS Fixer fixes [skip ci] (67edbd1)
- Merge branch 'main' of github.com:nowo-tech/ComposerUpdateHelper into main (3d96dca)
- feat: v2.0.1 - Auto-delete TXT file after migration to YAML (2fe94ac)
- Apply PHP CS Fixer fixes [skip ci] (9cbc6d2)
- chore: update CHANGELOG date for v2.0.0 release (dcec21e)
- docs: add recommendation for Code Review Guardian (2fccd64)
- feat: migrate configuration from TXT to YAML format (v2.0.0) (a44f9a6)
- chore: remove demo projects and related files from repository (317e595)
- docs: update README to include GitHub stars badge and encouragement to star the project (5b41648)
- Merge pull request #6 from nowo-tech/dependabot/github_actions/actions/cache-5 (90fbb20)
- Merge pull request #5 from nowo-tech/dependabot/github_actions/actions/checkout-6 (cda5594)
- Release 1.3.4: Help option, performance optimizations, and demo improvements (d4d1528)
- chore(ci): bump actions/cache from 4 to 5 (9d8fad4)
- chore(ci): bump actions/checkout from 4 to 6 (b13ec58)
- Fix: Prevent tests from deleting project files, improve ScriptTest for CI/CD (1e9fcb9)
- Merge branch 'main' of github.com:nowo-tech/ComposerUpdateHelper into main (0793133)
- Security: Remove hardcoded passwords from docker-compose.yml, update .env.example files, and improve documentation (1c0c1e5)
- Apply PHP CS Fixer fixes [skip ci] (9c8766c)
- Release 1.3.3: Updated all demo frameworks to latest versions, fixed 502 errors, improved Docker configuration (cfa7b5f)
- docs: simplify README badge layout for...
Release v2.0.29
fix: Remove clickable command functionality for better compatibility (v2.0.29)
- Removed OSC 8 hyperlink codes that weren't working reliably
- Commands now display normally with 📋 icon
- Updated hint message to '(Select the command to copy)'
- Better compatibility across all terminal emulators
- Commands remain fully selectable and copyable
Changelog
Changed
- Simplified Command Display: Removed clickable command functionality for better compatibility
- Removed OSC 8 hyperlink codes that were not working reliably across terminals
- Commands now display normally with 📋 icon for visual indication
- Updated hint message to "(Select the command to copy)" for clarity
- Commands remain fully selectable and copyable in all terminals
- Better compatibility across different terminal emulators
Commits
- fix: Remove clickable command functionality for better compatibility (v2.0.29) (c6fee69)
Release v2.0.28
Release v2.0.28: Enhanced Grouped Package Resolution
Features:
- Automatic solution search for grouped packages
- Maintainer contact suggestions when no solution available
- Copy-friendly command display with clickable links
- Comprehensive help documentation
This release significantly improves grouped package installation
by automatically finding solutions and providing maintainer contact
information when needed. Also enhances UX with copy-friendly commands.
Changelog
- 2026-01-20
Release v2.0.27
feat: Add grouped package installation suggestions (v2.0.27)
- When multiple packages are filtered by conflicts, suggests installing them together
- Includes packages that passed dependency checks in grouped commands
- Composer can resolve conflicts better when multiple packages are installed simultaneously
- Added translations for grouped installation messages in 31 languages
- Updated documentation (CHANGELOG, UPGRADING, UPDATE_CASES)
This helps users discover that installing packages together can sometimes
resolve conflicts that individual installations cannot.
Changelog
Added
- Grouped Package Installation Suggestions: When multiple packages are filtered by conflicts, suggests installing them together
- Sometimes Composer can resolve conflicts better when multiple packages are installed simultaneously
- Automatically groups filtered packages (2 or more) into a single
composer requirecommand - Also includes packages that passed dependency checks in the grouped command, as installing everything together can help resolve conflicts
- Example: Instead of just showing filtered packages, suggests:
composer require --dev rector/rector:2.3.4 phpstan/phpstan:2.1.36 phpstan/phpstan-symfony:2.0.10 --with-all-dependencies - Shows explanatory message: "Suggested commands (try installing together - Composer may resolve conflicts better)"
- Helps users discover that installing packages together can sometimes resolve conflicts that individual installations cannot
- Works for both production and development packages separately
- Integrated into the command generation flow when no transitive updates are available
Commits
Release v2.0.26
Release v2.0.26: Automatic Dependent Package Update Detection
Features:
- Automatic detection of compatible dependent package versions
- Enhanced conflict resolution with better strategy ordering
- Improved actionable suggestions for dependency conflicts
Changes:
- Added VersionResolver::findCompatibleDependentVersions() method
- Enhanced conflict resolution flow
- Updated documentation
This release significantly improves conflict resolution by automatically
detecting when dependent packages can be updated to support proposed
package updates, reducing manual intervention required.
Changelog
- 2026-01-20
Release v2.0.25
Release v2.0.25: Automatic Dependent Package Update Detection
Features:
- Automatic detection of compatible dependent package versions
- Enhanced conflict resolution with better strategy ordering
- Improved actionable suggestions for dependency conflicts
Changes:
- Added VersionResolver::findCompatibleDependentVersions() method
- Enhanced conflict resolution flow
- Updated documentation
This release significantly improves conflict resolution by automatically
detecting when dependent packages can be updated to support proposed
package updates, reducing manual intervention required.
Changelog
- 2026-01-20
Release v2.0.24
feat: comprehensive abandoned package detection for all installed packages
- Detect abandoned packages for ALL installed packages (not just outdated)
- New section 'All abandoned packages installed:' before dependency analysis
- Enhanced detection for outdated packages (checks all, not just with conflicts)
- Fixed save-impact-to-file to auto-enable show-impact-analysis
- Added translations for new features in all 31 languages
Closes: Improved visibility into package maintenance status
Changelog
Added
- Comprehensive Abandoned Package Detection: Now detects abandoned packages for ALL installed packages, not just outdated ones
- New section "All abandoned packages installed:" shows all abandoned packages in your project before dependency analysis
- Previously only detected abandoned packages when they had dependency conflicts
- Now checks all packages from
composer.json(bothrequireandrequire-dev) - Shows replacement package information if available
- Separates packages by prod/dev labels
- Example:
⚠️ All abandoned packages installed: - old-package:1.0.0 (prod) (⚠️ Package is abandoned, replaced by: new-package/name) - All messages are translated and available in all 31 supported languages
- Enhanced Abandoned Package Detection for Outdated Packages: Improved detection to check ALL outdated packages for abandoned status
- Previously only checked abandoned status for packages with dependency conflicts
- Now checks abandoned status for all outdated packages, regardless of conflicts
- Provides more comprehensive information about package maintenance status
- Shows abandoned status in the "Abandoned packages found:" section within dependency analysis
Changed
- Abandoned Package Detection Flow: Restructured to provide more comprehensive coverage
- Detection now happens at two points: for all installed packages (before analysis) and for outdated packages (during analysis)
- Avoids duplicate detection by skipping packages already checked
- Better organization of abandoned package information in output
- Fixed save-impact-to-file configuration: When
save-impact-to-file: trueis set in YAML, automatically enablesshow-impact-analysisto ensure data is generated- Previously, setting only
save-impact-to-file: truewithoutshow-impact-analysis: truewould not create the file - Now automatically activates impact analysis when saving to file is requested
- Works consistently with
--save-impactcommand-line flag behavior
- Previously, setting only
Commits
- feat: comprehensive abandoned package detection for all installed packages (c12afe6)
- fix: Maintain PHP 7.4 compatibility with union types in PHPDoc only (6f71c77)
- fix: Update PHPDoc for readConfigValue to use specific union types (564f83b)
- docs: Improve PHPDoc with union types for ConfigLoader::readConfigValue (eca540c)
- fix: Remove mixed type hint for PHP 7.4 compatibility (56da26b)
Release v2.0.23
Release v2.0.23
New Features:
- Command-line options configuration in YAML
- Wildcard Dependency Checking (^, ~, *)
Improvements:
- 15 fully supported cases (previously 14)
- Priority 7 (Wildcard Dependency Checking) completed
- Comprehensive documentation updates
Quality:
- All tests passing (140 tests, 689 assertions)
- Code verified and formatted
See CHANGELOG.md for complete details.
Changelog
- 2026-01-18
Release v2.0.22
Release v2.0.22
New Features:
- Conflict Impact Analysis (optional with --show-impact flag)
- Save impact analysis to file (--save-impact flag)
- Outdated packages count display
- Improved progress indicators
Improvements:
- Impact analysis now optional by default (less verbose)
- 14 fully supported use cases (previously 13)
- Better output readability
Quality:
- Code coverage: 99.58% lines, 90.91% methods
- All tests passing (140 tests, 689 assertions)
- Complete translations in all 31 supported languages
See CHANGELOG.md for complete details.
Changelog
- 2026-01-18