PackageTrack
Sign in Get early access

icanhazstring/composer-unused

Show unused packages by scanning your code

0.9.6 8.6M downloads/mo #1094 most downloaded on Packagist composer-unused/composer-unused

What this package is like to depend on

Last release 6 months ago

30 Jan 2026

Release timing varies

gaps range from 2 weeks to 1.3 years

Most releases are documented

notes for 42 of 48 stable releases

Nothing withdrawn

no release was ever pulled

7 years old

49 releases · first in 2019

2 releases in the last 12 months

see the full history below

Release timeline

49 releases · Mar 2019 to Jan 2026
2020 2021 2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 49
  1. 0.9.6 30 Jan 2026
    Release notes

    What's Changed

    • github-actions(deps): bump the dependencies group across 1 directory with 3 updates by @dependabot[bot] in #700
    • Add realpath for SymfonyConfigurationSet by @ToshY in #702
    • composer(deps-dev): bump the dependencies group with 2 updates by @dependabot[bot] in #703
    • composer(deps-dev): bump the dependencies group across 1 directory with 2 updates by @dependabot[bot] in #707
    • composer(deps-dev): bump the dependencies group across 1 directory with 4 updates by @dependabot[bot] in #712
    • Add support for webmozart/assert 2.0 by @OskarStark in #723
    • composer(deps-dev): bump the dependencies group across 1 directory with 4 updates by @dependabot[bot] in #726
    • build(deps-dev): bump symfony/process from 5.4.47 to 5.4.51 in /vendor-bin/box by @dependabot[bot] in #725
    • build(deps-dev): bump paragonie/sodium_compat from 1.21.1 to 1.24.0 in /vendor-bin/box by @dependabot[bot] in #715
    • Use major version tag for shivammathur/setup-php action by @OskarStark in #727
    • github-actions(deps): bump the dependencies group across 1 directory with 3 updates by @dependabot[bot] in #728
    • Symfony 8 support by @dmitryuk in #729
    • chore: Drop composer.lock by @icanhazstring in #730
    • Up CI php 8.5 by @dmitryuk in #720

    New Contributors

    Full Changelog: 0.9.5...0.9.6

    Open source →
    Release notes

    c60030a

    What's Changed

    • github-actions(deps): bump the dependencies group across 1 directory with 3 updates by @dependabot [bot] in #700

    • Add realpath for SymfonyConfigurationSet by @ToshY in #702

    • composer(deps-dev): bump the dependencies group with 2 updates by @dependabot [bot] in #703

    • composer(deps-dev): bump the dependencies group across 1 directory with 2 updates by @dependabot [bot] in #707

    • composer(deps-dev): bump the dependencies group across 1 directory with 4 updates by @dependabot [bot] in #712

    • Add support for webmozart/assert 2.0 by @OskarStark in #723

    • composer(deps-dev): bump the dependencies group across 1 directory with 4 updates by @dependabot [bot] in #726

    • build(deps-dev): bump symfony/process from 5.4.47 to 5.4.51 in /vendor-bin/box by @dependabot [bot] in #725

    • build(deps-dev): bump paragonie/sodium_compat from 1.21.1 to 1.24.0 in /vendor-bin/box by @dependabot [bot] in #715

    • Use major version tag for shivammathur/setup-php action by @OskarStark in #727

    • github-actions(deps): bump the dependencies group across 1 directory with 3 updates by @dependabot [bot] in #728

    • Symfony 8 support by @dmitryuk in #729

    • chore: Drop composer.lock by @icanhazstring in #730

    • Up CI php 8.5 by @dmitryuk in #720

    New Contributors

    • @ToshY made their first contribution in #702

    Full Changelog : 0.9.5...0.9.6

    Contributors

    dmitryuk, icanhazstring, and 3 other contributors

    Open source →
  2. 0.9.5 22 Sep 2025
    Release notes

    What's Changed

    Full Changelog: 0.9.4...0.9.5

    Open source →
  3. 0.9.4 29 Jul 2025
    Release notes

    What's Changed

    New Contributors

    Full Changelog: 0.9.3...0.9.4

    Open source →
    Release notes

    Added

    • ConfigurationSet system for framework-specific scanning by @dmitryuk in https://github.com/composer-unused/composer-unused/pull/691

    Fixed

    • Automatically disable XDebug to prevent segmentation faults by @icanhazstring in https://github.com/composer-unused/composer-unused/pull/692

    Changed

    Removed

    • Extra dev files from vendor by @dmitryuk in https://github.com/composer-unused/composer-unused/pull/690

    Security

    Deprecation

    Open source →
  4. 0.9.3 10 Apr 2025
    Release notes

    What's Changed

    New Contributors

    Full Changelog: 0.9.2...0.9.3

    Open source →
    Release notes

    Added

    • Compact formatter by @gisostallenberg in https://github.com/composer-unused/composer-unused/pull/683
    • Set unused command as default when no other commands are specified by @MarcinGladkowski in https://github.com/composer-unused/composer-unused/pull/608

    Fixed

    Changed

    • Updated symbol-parser to resolve PHP 8.4 compatibility by @icanhazstring in https://github.com/composer-unused/composer-unused/pull/678
    • Updated PHPStan dependencies by @icanhazstring in https://github.com/composer-unused/composer-unused/pull/679
    • Limited PHAR signature check to main repository PRs by @icanhazstring in https://github.com/composer-unused/composer-unused/pull/684

    Removed

    Security

    Deprecation

    Open source →
  5. 0.9.2 16 Mar 2025
    Release notes

    What's Changed

    Full Changelog: 0.9.1...0.9.2

    Open source →
    Release notes

    Added

    • Allow __root__ as default package name by @icanhazstring in https://github.com/composer-unused/composer-unused/pull/671

    Fixed

    • Added tests to cover extensions marked unused by @icanhazstring in https://github.com/composer-unused/composer-unused/pull/673
    • Resolved issue with memcached marked unused by @icanhazstring in https://github.com/composer-unused/composer-unused/pull/674

    Changed

    • Combined action status by @icanhazstring in https://github.com/composer-unused/composer-unused/pull/672

    Removed

    • Dropped support for Symfony 5 by @icanhazstring in https://github.com/composer-unused/composer-unused/pull/675

    Security

    Deprecation

    Open source →
  6. 0.9.1 15 Mar 2025
    Release notes

    What's Changed

    Full Changelog: 0.9.0...0.9.1

    Open source →
    Release notes

    Added

    • Support for phpstan/phpdoc-parser v2 by @WyriHaximus in https://github.com/composer-unused/composer-unused/pull/670

    Fixed

    Changed

    Removed

    Security

    Deprecation

    Open source →
  7. 0.9.0 11 Mar 2025
    Release notes

    What's Changed

    • chore(deps): require composer-unused/symbol-parser v0.2.2 by @simPod in #605
    • Sort results of debug:provided-symbols command by @llaville in #626
    • Display package processing on right side of progress bar (in verbose mode) by @llaville in #632
    • Add support to PHP-Parser v5 by @llaville in #628
    • Drop Symfony 4 support by @llaville in #634
    • Add --output-file option to directly write formatted result output to… by @temp in #629
    • Update to PHP 8.4 by @bobvandevijver in #668

    New Contributors

    Full Changelog: 0.8.11...0.9.0

    Open source →
    Release notes

    Added

    • "--output-file" option to write formatted result output directly by @temp in https://github.com/composer-unused/composer-unused/pull/629
    • Support for PHP-Parser v5 by @llaville in https://github.com/composer-unused/composer-unused/pull/628
    • Update to PHP 8.4 compatibility by @bobvandevijver in https://github.com/composer-unused/composer-unused/pull/668

    Fixed

    Changed

    • Dropped Symfony 4 support by @llaville in https://github.com/composer-unused/composer-unused/pull/634
    • Sort results of debug:provided-symbols command by @llaville in https://github.com/composer-unused/composer-unused/pull/626
    • Display package processing on right side of progress bar in verbose mode by @llaville in https://github.com/composer-unused/composer-unused/pull/632
    • Require composer-unused/symbol-parser v0.2.2 by @simPod in https://github.com/composer-unused/composer-unused/pull/605

    Removed

    Security

    Deprecation

    Open source →
  8. 0.8.11 30 Nov 2023
    Release notes

    Features/Improvements 💡

    Fixes 🐛

    New Contributors

    Full Changelog: 0.8.10...0.8.11

    Open source →
    Release notes

    Added

    • Ability to automatically determine version by @icanhazstring in https://github.com/composer-unused/composer-unused/pull/554
    • Symfony 7 support by @icanhazstring in https://github.com/composer-unused/composer-unused/pull/590
    • Matrix check for PHP 8.3 by @icanhazstring in https://github.com/composer-unused/composer-unused/pull/598
    • GPG key test for PHAR validation by @icanhazstring in https://github.com/composer-unused/composer-unused/pull/599

    Fixed

    • Dependabot configuration issues by @icanhazstring in https://github.com/composer-unused/composer-unused/pull/553
    • "Undefined array key 'composer/composer'" by @VincentLanglet in https://github.com/composer-unused/composer-unused/pull/561
    • "$name must not be accessed before initialization" by @VincentLanglet in https://github.com/composer-unused/composer-unused/pull/562

    Changed

    • Enhanced user experience for adding additional files by @MarcinGladkowski in https://github.com/composer-unused/composer-unused/pull/552

    Removed

    Security

    Deprecation

    Open source →
  9. 0.8.10 06 Jul 2023
    Release notes

    Features 💡

    Fixes 🐛

    Full Changelog: 0.8.9...0.8.10

    Open source →
    Release notes

    Added

    Fixed

    • Clear ProgressBar output to avoid log cluttering by @llaville in https://github.com/composer-unused/composer-unused/pull/542
    • Improved user experience when running with Composer v1 by @MarcinGladkowski in https://github.com/composer-unused/composer-unused/pull/539

    Changed

    Removed

    Security

    Deprecation

    Open source →
  10. 0.8.9 29 May 2023
    Release notes

    Features 💡

    Fixes 🐛

    Full Changelog: 0.8.8...0.8.9

    Open source →
    Release notes

    Added

    • Ability to define source/vendor directory outside composer.json by @MarcinGladkowski in https://github.com/composer-unused/composer-unused/pull/522

    Fixed

    • PHP Fatal error when running projects with local composer packages by @MarcinGladkowski in https://github.com/composer-unused/composer-unused/pull/520

    Changed

    Removed

    Security

    Deprecation

    Open source →
  11. 0.8.8 12 May 2023
    Release notes

    Added

    • Debug commands to view consumed and defined symbols by @icanhazstring in https://github.com/composer-unused/composer-unused/pull/463
    • Composer-json option for debugging by @icanhazstring in https://github.com/composer-unused/composer-unused/pull/464
    • Hyperlink to default formatter by @icanhazstring in https://github.com/composer-unused/composer-unused/pull/468
    • GitLab output formatter by @llaville in https://github.com/composer-unused/composer-unused/pull/475

    Fixed

    • Make composer-json an option, not argument by @icanhazstring in https://github.com/composer-unused/composer-unused/pull/466
    • Remove root namespace filter to avoid subpackage filtering by @icanhazstring in https://github.com/composer-unused/composer-unused/pull/465
    • Avoid marking packages used by unused suggestions by @icanhazstring in https://github.com/composer-unused/composer-unused/pull/471

    Changed

    • Pass NameResolver to SymbolNameParser by @eliashaeussler in https://github.com/composer-unused/composer-unused/pull/460

    Removed

    Security

    Deprecation

    Open source →
  12. 0.8.7 15 Mar 2023
    Release notes

    Added

    Fixed

    • Use correct version in CLI by @icanhazstring in https://github.com/composer-unused/composer-unused/pull/453
    • Avoid exception on missing directory by @icanhazstring in https://github.com/composer-unused/composer-unused/pull/454
    • fix junit formatter by @reinfi in https://github.com/composer-unused/composer-unused/pull/456
    • JUnit Formatter - fix issue #457 by @reinfi in https://github.com/composer-unused/composer-unused/pull/458
    • Avoid github pr info on ignored packages by @icanhazstring in https://github.com/composer-unused/composer-unused/pull/459

    Changed

    Removed

    Security

    Deprecation

    Open source →
  13. 0.8.6 10 Mar 2023
    Release notes

    Added

    • Junit formatter by @reinfi in https://github.com/composer-unused/composer-unused/pull/440
    • Add "static analysis" tag by @icanhazstring in https://github.com/composer-unused/composer-unused/pull/447

    Fixed

    • fix: reimplement excludeDir by @simPod in https://github.com/composer-unused/composer-unused/pull/431
    • do not add empty test cases to junit xml by @reinfi in https://github.com/composer-unused/composer-unused/pull/446

    Changed

    Removed

    Security

    Deprecation

    Open source →
  14. 0.8.5 02 Dec 2022
    Release notes

    Added

    • Readd progress bar by @MarcinGladkowski in https://github.com/composer-unused/composer-unused/pull/427

    Fixed

    • Marking required package as used by "required-by" even if other package is unused by @MarcinGladkowski in https://github.com/composer-unused/composer-unused/pull/424
    • Update PatternFilter example in README by @mvhirsch in https://github.com/composer-unused/composer-unused/pull/416
    • Explicitly require symfony/property-access by @eliashaeussler in https://github.com/composer-unused/composer-unused/pull/428
    • Resolve issue with suggest-by feature by @eliashaeussler in https://github.com/composer-unused/composer-unused/pull/428

    Changed

    Removed

    Security

    Deprecation

    Open source →
  15. 0.8.4 13 Oct 2022
    Release notes

    Added

    • Add JsonFormatter with test by @TomasVotruba in https://github.com/composer-unused/composer-unused/pull/398
    • Add testcase for readonly class (#369) by @pascalheidmann in https://github.com/composer-unused/composer-unused/pull/402
    • Don't report packages unused in annotations by @LeoVie in https://github.com/composer-unused/composer-unused/pull/404

    Fixed

    • override exit code with "0" if option --ignore-exit-code is used by @pascalheidmann in https://github.com/composer-unused/composer-unused/pull/396
    • Empty PSR4 namespace by @yoanmLf in https://github.com/composer-unused/composer-unused/pull/405

    Changed

    • Prepare php 8.2 support by @pascalheidmann in https://github.com/composer-unused/composer-unused/pull/403

    Removed

    Security

    Deprecation

    Open source →
  16. 0.8.3 30 Sep 2022
    Release notes

    Added

    Fixed

    • Keep the PatternFilter in used state by @nicklog in https://github.com/composer-unused/composer-unused/pull/353
    • Wire up custom configuration file location support by @WyriHaximus in https://github.com/composer-unused/composer-unused/pull/354
    • Fix typo in CONTRIBUTING.md by @Jean85 in https://github.com/composer-unused/composer-unused/pull/359
    • Fix Symfony 4 support by @Jean85 in https://github.com/composer-unused/composer-unused/pull/360
    • Mark new "composer" platform requirement as globally excluded. (Fixes: #381) by @AndreasA in https://github.com/composer-unused/composer-unused/pull/389
    • Lexer version detector patch by @georgeconstantinou in https://github.com/composer-unused/composer-unused/pull/392

    Changed

    • Add missing use statement by @OskarStark in https://github.com/composer-unused/composer-unused/pull/374

    Removed

    Security

    Deprecation

    Open source →
  17. 0.8.2 22 Mar 2022
    Release notes

    Added

    Fixed

    • Avoid strpos comparison for php package by @icanhazstring in https://github.com/composer-unused/composer-unused/pull/318
    • Resolve #328: Fix issue where output format could not be forced by cli by @icanhazstring in https://github.com/composer-unused/composer-unused/pull/334
    • Expose Symfony\Polyfill to be able to run phar with php7.4 by @icanhazstring in https://github.com/composer-unused/composer-unused/pull/339

    Changed

    • Make Required Dependencies faster by @scyzoryck in https://github.com/composer-unused/composer-unused/pull/322
    • Split independent loops during looking for used packages by @scyzoryck in https://github.com/composer-unused/composer-unused/pull/324

    Removed

    Security

    Deprecation

    Open source →
  18. 0.8.1 15 Feb 2022
    Release notes

    Added

    • Add --output-format option
      • Current supported values: default and github
      • github can be used to annotate PR
    • Add CiDetector to change output format according to the current ci environment
    • Add symfony/dependency-injection to leverage autowiring
    • Add dedicated configuration (composer-unused.php)

    Fixed

    • Fix Lexer\Emulative to use the current php version instead of latest one
    • Removed is_dir() check from LocalRepository to avoid crashing file_get_contents
    • Fix phar build using the latest box-project/box version
    • Fix error if composer.json does not exist in given path
    • Fix issue where Filter was marked as unused again after being already used
    • Fix ignore/invalid dependencies showing up in Ignored section again

    Changed

    • Change the information about ignored dependencies
    • Raised minimum requirement for composer-unused/symbol-parser to 0.1.7

    Removed

    • Removed custom implementation of DI

    Security

    Deprecation

    Open source →
  19. 0.8.0 25 Jan 2022
    Release notes

    Fixed

    • Fixed version output when running bin/composer-unused --version

    Added

    • Added CLI argument composer-json which can be used to parse external projects. This will default to the current working directory.
    • Added error message when composer.json is not readable
    • Added check for zombie exclusion. It will report if any excluded packages or pattern did match any package

    Changed

    • Change bin/composer-unused to be used as standalone binary
    • Package type is now library instead of composer-plugin

    Removed

    • Removed ability to work as composer-plugin (will be supported using composer-unused/composer-unused-plugin)
    • Dropped support for php 7.3
    Open source →
  20. 0.8.0-RC1 05 Jan 2022 pre-release

    Nothing published for this version

  21. 0.7.12 29 Dec 2021

    Nothing published for this version

  22. 0.7.11 22 Dec 2021

    Nothing published for this version

  23. 0.7.10 16 Dec 2021

    Nothing published for this version

  24. 0.7.9 14 Dec 2021

    Nothing published for this version

  25. 0.7.8 24 Nov 2021

    Nothing published for this version

  26. 0.7.7 26 Jul 2021
    Release notes

    Added

    • Added support for psr/log v2 and 3 #200 (thanks to @simPod)
    Open source →
  27. 0.7.6 15 Jul 2021
    Release notes

    Removed

    • Dropped support for composer v1
    Open source →
  28. 0.7.5 28 Oct 2020
    Release notes

    Added

    • Added an InstanceofStrategy which detects usages in instanceof expressions #100
    Open source →
  29. 0.7.4 15 Sep 2020
    Release notes

    Fixed

    • Fixed an issue where ext-ds classes where not recognized as used #88
    • Fixed an issue where extends and implements of FQN was not markes as used #90
    Open source →
  30. 0.7.3 21 May 2020
    Release notes

    Added

    • Added workflow to verify integrity of build phar file
    • Added self unused dependency check using bin/composer-unused

    Changed

    • Readded composer/composer into root requirements as its required to run bin/composer-unused

    Fixed

    Open source →
  31. 0.7.2 18 May 2020
    Release notes

    Added

    • Added phpspec/prophecy-phpunit to remove deprecations warnings of prophecy() with phpunit/phpunit:^9.0
    • Added support for composer 2.0

    Changed

    • Changed the exit code 0 if there are not packages to scan #78

    Fixed

    • Fixed an issue where Core extension was checked as ext-core instead of php #79
    Open source →
  32. 0.7.1 09 Dec 2019
    Release notes

    Added

    • Added --no-progress to suppress progress bar for CI

    Fixed

    • Fixed bin/composer-unused was unable to detect vendor/autoload.php when run as direct depdendency
    Open source →
  33. 0.7.0 01 Dec 2019
    Release notes

    Added

    • Added scoped phar support
    • Added bin/composer-unused as another entry point

    Changed

    • Moved composer/composer into root requirements as its needed to run bin/composer-unused
    Open source →
  34. 0.6.2 31 Oct 2019
    Release notes

    Added

    • Added support to scan for unused php extensions #33 thanks to @marcelthole
    Open source →
  35. 0.6.1 24 Oct 2019
    Release notes

    Fixed

    • Fixed replaced usage on Zend\ServiceManager in configuration files

    Removed

    • Removed shorthand options -d and -p as they could be already in use
    Open source →
  36. 0.6.0 24 Oct 2019
    Release notes

    Changed

    • Added custom psr/container-interface implementation as a replacement for zendframework/zend-servicemanager
    • Inverted the validation of valid Composer package types (no longer a whitelist, but rather a blacklist of invalid types)

    Fixed

    • Fixed issue with short option for cli parameter (--excludeDir|-d and --excludePackage|-p)
    Open source →
  37. 0.5.6 30 Apr 2019
    Release notes

    Fixed

    • Fixed support for typo3 packages thanks to @tomasnorre
    Open source →
  38. 0.5.5 12 Apr 2019
    Release notes

    Fixed

    • Fixed support for yii2 packages thanks to @moltam
    Open source →
  39. 0.5.4 11 Apr 2019
    Release notes

    Fixed

    • Fixed issue where composer-unused-dump was created even when not in debug mode #41
    • Fixed issue where exit code was greater 0 on skipped packages, while it should be on unused packages #42 Thanks to @binarious
    Open source →
  40. 0.5.3 11 Apr 2019
    Release notes

    Fixed

    • Fixed issue where qualified namespaces where not recognized when called from global namespace
      • This caused some false-positives (e.g. for symfony-bundles)
    Open source →
  41. 0.5.2 11 Apr 2019
    Release notes

    Fixed

    • Fixed unused scan for symfony-bundle types
    Open source →
  42. 0.5.1 29 Mar 2019
    Release notes

    Fixed

    • Fixed an issue where a package could provide an empty as well as a valid namespace

      {
      "autoload": {
        "psr-4": {
            "": "src/",
            "A\\": "src/"
          }
        }
      }
      
    Open source →
  43. 0.5.0 29 Mar 2019
    Release notes

    Changed

    • The plugin will exit with a code > 0 if there are unused packages
    • Temporary solution to "silent" ignore ext- packages (might be changed in the future #33)

    Added

    • Cli parameter to exit clean (even with unused packages) --ignore-exit-code
    Open source →
  44. 0.4.0 28 Mar 2019
    Release notes

    Fixed

    • Fixed an issue where class constant Namespace\Foobar::class was not recognized as usage #29
    • Fixed an issue where an empty namespace caused an exception #27

    Added

    • Ignore packages that are not of type library #25 composer-schema#type
    • Ignore packages that define not namespace #27
    • Add ability to ignore packages by config #26 README.md
    • Packages are no longer shown as unused if:
      • They are suggested by other packages (will show information about suggested by: package/a) #23
      • They are required by other packages (will show information about required by: package/a) #22

    [0.3.1] - 2019-03-26

    Fixed

    • Improve error handling
    Open source →
  45. 0.3.1 26 Mar 2019

    Nothing published for this version

  46. 0.3.0 26 Mar 2019
    Release notes

    Fixed

    • Fixed an issue where only autoload-dev provided a needed namespace

    Changed

    • Change the way how the plugin searched for usages Previously it used only autoload and autoload-dev directives of the projects own composer.json.

      This was changed so that now every file matching *.php beside the composer.json will be scanned. With the exception that vendor is always excluded

    Added

    • Added new cli parameters
      • --excludeDir|-xd to add additional folders to exclude from scan
      • --excludePackage|-xp to add a package to ignore during scan
    • Added Di Container for easier development and testing
    Open source →
  47. 0.2.0 25 Mar 2019
    Release notes

    Fixed

    • Fixed issue where static calls raised an exception

    Added

    • Added error handler for debug usage
      • Use -vvv to enable debug mode and create a dump file

    Improved:

    • Added full integration test with composer test project
    Open source →
  48. 0.1.1 25 Mar 2019
    Release notes

    Fixed

    • Fixed issue with different composer directives (classmap, files)
    Open source →
  49. 0.1.0 23 Mar 2019
    Release notes

    Initial Release

    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive