NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
Packagist · #558 most downloaded on Packagist
Provides a composer plugin for normalizing composer.json.
Last release 13 days ago
24 Sep 2026
Ships fairly regularly
a new release about every 4 months
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
9 years old
109 releases · first in 2018
github-actions(deps): Bump ergebnis/.github/actions/github/pull-request/request-review from 1.11.0 to 1.13.0 by @dependabot [bot] in #1687
ubuntu-24.04 instead of ubuntu-latest by @localheinz in #1702https instead of http for monthly downloads badge by @localheinz in #1703rector/rector by @localheinz in #1706ReferenceNamespacedSymbolsRelativeToNamespacePrefixRector by @localheinz in #1705Full Changelog: 2.53.0...2.54.0
One column per quarter.
For a full diff see [2.53.0...2.54.0][2.53.0...2.54.0].
composer(deps-dev): Bump phpstan/phpstan-deprecation-rules from 2.0.4 to 2.0.5 by @dependabot [bot] in #1651
zizmor by @localheinz in #1622ergebnis/composer-normalize by @localheinz in #1626schema.json by @ergebnis-bot in #1623renew.yaml into configuration by @localheinz in #1631composer/composer by @localheinz in #1672composer runtime when installed as composer plugin by @localheinz in #1685CHANGELOG.md by @localheinz in #1686Full Changelog: 2.52.0...2.53.0
For a full diff see [2.52.0...2.53.0][2.52.0...2.53.0].
schema.json ([#1623]), by [@ergebnis-bot]composer/composer ([#1672]), by [@localheinz]Version to resolve the version from the composer runtime when installed as a composer plugin ([#1685]), by [@localheinz]Fix: Update composer/composer by @localheinz in #1616
composer/composer by @localheinz in #1616schema.json by @ergebnis-bot in #1614Full Changelog: 2.51.0...2.52.0
For a full diff see [2.51.0...2.52.0][2.51.0...2.52.0].
schema.json ([#1614]), by [@ergebnis-bot]composer/composer ([#1616]), by [@localheinz]This tag was signed with the committer’s verified signature .
localheinz Andreas Möller
SSH Key Fingerprint: 6CbV8AsEMP72CZ7+Aton4ctFwTuIrXv5ZLs9SOJKIPU Verified Learn about vigilant mode .
composer(deps-dev): Bump phpstan/phpstan-deprecation-rules from 2.0.3 to 2.0.4 by @dependabot [bot] in #1575
schema.json by @ergebnis-bot in #1592Full Changelog: 2.50.0...2.51.0
For a full diff see [2.50.0...2.51.0][2.50.0...2.51.0].
schema.json ([#1592]), by [@ergebnis-bot]composer(deps-dev): Bump ergebnis/php-cs-fixer-config from 6.58.2 to 6.59.0 by @dependabot [bot] in #1559
schema.json by @ergebnis-bot in #1563Full Changelog: 2.49.0...2.50.0
For a full diff see [2.49.0...2.50.0][2.49.0...2.50.0].
schema.json ([#1563]), by [@ergebnis-bot]composer(deps-dev): Bump ergebnis/php-cs-fixer-config from 6.53.0 to 6.54.0 by @dependabot [bot] in #1501
schema.json by @ergebnis-bot in #1507infection/infection by @localheinz in #1552composer/composer by @localheinz in #1553Full Changelog: 2.48.2...2.49.0
For a full diff see [2.48.2...2.49.0][2.48.2...2.49.0].
schema.json ([#1507]), by [@ergebnis-bot]composer/composer ([#1416]), by [@localheinz]github-actions(deps): Bump ergebnis/.github from 1.9.3 to 1.10.0 by @dependabot [bot] in #1497
Full Changelog: 2.48.1...2.48.2
For a full diff see [2.48.1...2.48.2][2.48.1...2.48.2].
Fix: Create release in draft mode, upload assets, and then publish release by @localheinz in #1496
Full Changelog: 2.48.0...2.48.1
For a full diff see [2.48.0...2.48.1][2.48.0...2.48.1].
composer(deps-dev): bump phpstan/phpstan-deprecation-rules from 2.0.1 to 2.0.2 by @dependabot [bot] in #1448
schema.json by @ergebnis-bot in #1454localheinz/diff dependency to version 1.3.0 by @andrey-helldar in #1493Full Changelog: 2.47.0...2.48.0
For a full diff see [2.47.0...2.48.0][2.47.0...2.48.0].
schema.json ([#1454]), by [@ergebnis-bot]localheinz/diff ([#1493]), by [@andrey-helldar]Enhancement: Update schema.json by @ergebnis-bot in #1441
schema.json by @ergebnis-bot in #1441Full Changelog: 2.46.0...2.47.0
For a full diff see [2.46.0...2.47.0][2.46.0...2.47.0].
schema.json ([#1441]), by [@ergebnis-bot]Enhancement: Update schema.json by @ergebnis-bot in #1419
schema.json by @ergebnis-bot in #1419phpstan/phpstan and rector/rector by @localheinz in #1439ergebnis/json-normalizer by @localheinz in #1440Full Changelog: 2.45.0...2.46.0
For a full diff see [2.45.0...2.46.0][2.45.0...2.46.0].
schema.json ([#1419]), by [@ergebnis-bot]ergerbnis/json-normalizer ([#1440]), by [@localheinz]Enhancement: Update schema.json by @ergebnis-bot in #1405
schema.json by @ergebnis-bot in #1405ergebnis/json by @localheinz in #1411ergebnis/json-normalizer by @localheinz in #1412ergebnis/json-printer by @localheinz in #1413localheinz/diff by @localheinz in #1414composer/composer by @localheinz in #1416ergebnis/php-package-template by @localheinz in #1415Full Changelog: 2.44.0...2.45.0
For a full diff see [2.44.0...2.45.0][2.44.0...2.45.0].
schema.json ([#1405]), by [@ergebnis-bot]justinrainbow/json-schema:^6.0.0 ([#1410]), by [@tacman]composer/composer ([#1416]), by [@localheinz]For a full diff see [2.43.0...2.44.0][2.43.0...2.44.0].
For a full diff see [2.43.0...2.44.0][2.43.0...2.44.0].
schema.json ([#1363]), by [@ergebnis-bot]For a full diff see [2.42.0...2.43.0][2.42.0...2.43.0].
For a full diff see [2.42.0...2.43.0][2.42.0...2.43.0].
schema.json ([#1312]), by [@ergebnis-bot]composer/composer ([#1349]), by [@localheinz]For a full diff see [2.41.1...2.42.0][2.41.1...2.42.0].
For a full diff see [2.41.1...2.42.0][2.41.1...2.42.0].
ergebnis/json:^1.2.0 ([#1273]), by [@dependabot]ergebnis/json-printer:^3.5.0 ([#1275]), by [@dependabot]ergebnis/json-normalizer:^4.5.0 ([#1277]), by [@localheinz]For a full diff see [2.41.0...2.41.1][2.41.0...2.41.1].
For a full diff see [2.41.0...2.41.1][2.41.0...2.41.1].
ergebnis/json-normalizer:^4.4.1 ([#1243]), by [@dependabot]For a full diff see [2.40.0...2.41.0][2.40.0...2.41.0].
For a full diff see [2.40.0...2.41.0][2.40.0...2.41.0].
ergebnis/json-normalizer:^4.4.0 ([#1241]), by [@dependabot]composer/composer ([#1237]), by [@localheinz]For a full diff see [2.39.0...2.40.0][2.39.0...2.40.0].
For a full diff see [2.39.0...2.40.0][2.39.0...2.40.0].
schema.json ([#1204]), by [@ergebnis-bot]symfony/console:^7.0.0 ([#1234]), by [@localheinz]For a full diff see [2.38.0...2.39.0][2.38.0...2.39.0].
For a full diff see [2.38.0...2.39.0][2.38.0...2.39.0].
ergebnis/json:^1.1.0 ([#1191]), by [@localheinz]ergebnis/json-normalizer:^4.3.0 ([#1192]), by [@localheinz]ergebnis/json-printer:^3.4.0 ([#1195]), by [@localheinz]For a full diff see [2.37.0...2.38.0][2.37.0...2.38.0].
For a full diff see [2.37.0...2.38.0][2.37.0...2.38.0].
Command\NormalizeCommand to respect --no-ansi, --no-plugins, --no-scripts options ([#1184]), by [@mxr576]composer/composer ([#1188]), by [@localheinz]For a full diff see [2.36.0...2.37.0][2.36.0...2.37.0].
For a full diff see [2.36.0...2.37.0][2.36.0...2.37.0].
schema.json ([#1170]), by [@ergebnis-bot]composer/composer ([#1171]), by [@localheinz]For a full diff see [2.35.0...2.36.0][2.35.0...2.36.0].
For a full diff see [2.35.0...2.36.0][2.35.0...2.36.0].
schema.json ([#1155]), by [@ergebnis-bot]composer/composer:2.6.1 for compiling composer-normalize.phar ([#1158]), by [@localheinz]For a full diff see [2.34.0...2.35.0][2.34.0...2.35.0].
For a full diff see [2.34.0...2.35.0][2.34.0...2.35.0].
--no-plugins and --no-scripts options ([#1141]), by [@mxr576]For a full diff see [2.33.0...2.34.0][2.33.0...2.34.0].
For a full diff see [2.33.0...2.34.0][2.33.0...2.34.0].
schema.json ([#1136]), by [@ergebnis-bot]For a full diff see [2.32.0...2.33.0][2.32.0...2.33.0].
For a full diff see [2.32.0...2.33.0][2.32.0...2.33.0].
ergebnis/json-normalizer:^4.2.0 ([#1127]), by [@dependabot]For a full diff see [2.31.0...2.32.0][2.31.0...2.32.0].
For a full diff see [2.31.0...2.32.0][2.31.0...2.32.0].
composer/composer:2.5.8 for compiling composer-normalize.phar ([#1125]), by [@localheinz]For a full diff see [2.30.2...2.31.0][2.30.2...2.31.0].
For a full diff see [2.30.2...2.31.0][2.30.2...2.31.0].
schema.json ([#1070]), by [@ergebnis-bot]ergebnis/json-normalizer:^4.1.0 ([#1095]), by [@dependabot]--no-ansi option to UpdateCommand ([#827]), by [@localheinz]composer/composer:2.5.5 for compiling composer-normalize.phar ([#1094]), by [@localheinz]For a full diff see [2.30.1...2.30.2][2.30.1...2.30.2].
For a full diff see [2.30.1...2.30.2][2.30.1...2.30.2].
ergebnis/json-normalizer:^4.0.2 ([#1062]), by [@localheinz]For a full diff see [2.30.0...2.30.1][2.30.0...2.30.1].
For a full diff see [2.30.0...2.30.1][2.30.0...2.30.1].
ergebnis/json-normalizer:^4.0.1 ([#1060]), by [@localheinz]For a full diff see [2.29.0...2.30.0][2.29.0...2.30.0].
For a full diff see [2.29.0...2.30.0][2.29.0...2.30.0].
Printer\Printer instead of Formatter\Formatter into NormalizeCommand ([#1008]), by [@ergebnis-bot]composer/composer:2.5.1 for compiling composer-normalize.phar ([#1020]), by [@localheinz]ergebnis/json-normalizer:^4.0.0 ([#1056]), by [@dependabot]For a full diff see [2.28.3...2.29.0][2.28.3...2.29.0].
For a full diff see [2.28.3...2.29.0][2.28.3...2.29.0].
schema.json ([#959]), by [@ergebnis-bot]composer/composer:2.4.4 for compiling composer-normalize.phar ([#1004]), by [@localheinz]For a full diff see [2.28.2...2.28.3][2.28.2...2.28.3].
For a full diff see [2.28.2...2.28.3][2.28.2...2.28.3].
composer/composer:2.3.9 for compiling composer-normalize.phar ([#942]), by [@localheinz]For a full diff see [2.28.1...2.28.2][2.28.1...2.28.2].
For a full diff see [2.28.1...2.28.2][2.28.1...2.28.2].
composer/composer:2.3.8 for compiling composer-normalize.phar ([#941]), by [@localheinz]For a full diff see [2.28.0...2.28.1][2.28.0...2.28.1].
For a full diff see [2.28.0...2.28.1][2.28.0...2.28.1].
For a full diff see [2.27.0...2.28.0][2.27.0...2.28.0].
For a full diff see [2.27.0...2.28.0][2.27.0...2.28.0].
schema.json ([#933]), by [@ergebnis-bot]For a full diff see [2.26.0...2.27.0][2.26.0...2.27.0].
For a full diff see [2.26.0...2.27.0][2.26.0...2.27.0].
schema.json ([#930]), by [@ergebnis-bot]For a full diff see [2.25.2...2.26.0][2.25.2...2.26.0].
For a full diff see [2.25.2...2.26.0][2.25.2...2.26.0].
schema.json ([#923]), by [@ergebnis-bot]For a full diff see [2.25.1...2.25.2][2.25.1...2.25.2].
For a full diff see [2.25.1...2.25.2][2.25.1...2.25.2].
schema.json ([#916]), by [@ergebnis-bot]composer/composer:2.3.5 for compiling composer-normalize.phar ([#922]), by [@localheinz]justinrainbow/json-schema ([#920]), by [@dependabot]For a full diff see [2.25.0...2.25.1][2.25.0...2.25.1].
For a full diff see [2.25.0...2.25.1][2.25.0...2.25.1].
composer/composer:2.3.1 for compiling composer-normalize.phar ([#915]), by [@localheinz]For a full diff see [2.24.1...2.25.0][2.24.1...2.25.0].
For a full diff see [2.24.1...2.25.0][2.24.1...2.25.0].
schema.json ([#912]), by [@ergebnis-bot]composer/composer:2.3.0 for compiling composer-normalize.phar ([#913]), by [@localheinz]For a full diff see [2.24.0...2.24.1][2.24.0...2.24.1].
For a full diff see [2.24.0...2.24.1][2.24.0...2.24.1].
composer/composer:2.2.9 for compiling composer-normalize.phar ([#904]), by [@localheinz]humbug/box ([#905]), by [@localheinz]For a full diff see [2.23.1...2.24.0][2.23.1...2.24.0].
For a full diff see [2.23.1...2.24.0][2.23.1...2.24.0].
For a full diff see [2.23.0...2.23.1][2.23.0...2.23.1].
For a full diff see [2.23.0...2.23.1][2.23.0...2.23.1].
composer/composer:2.2.5 for compiling composer-normalize.phar ([#871]), by [@localheinz]ergebnis/json-normalizer beyond 2.1.0 for now ([#877]), by [@localheinz]For a full diff see [2.22.0...2.23.0][2.22.0...2.23.0].
For a full diff see [2.22.0...2.23.0][2.22.0...2.23.0].
ergebnis/json-normalizer ([#864]), by [@localheinz]composer/composer:2.2.3 for compiling composer-normalize.phar ([#863]), by [@localheinz]For a full diff see [2.21.0...2.22.0][2.21.0...2.22.0].
For a full diff see [2.21.0...2.22.0][2.21.0...2.22.0].
ergebnis/json-normalizer:^2.0.0 ([#858]), by [@dependabot]For a full diff see [2.20.0...2.21.0][2.20.0...2.21.0].
For a full diff see [2.20.0...2.21.0][2.20.0...2.21.0].
For a full diff see [2.19.0...2.20.0][2.19.0...2.20.0].
For a full diff see [2.19.0...2.20.0][2.19.0...2.20.0].
For a full diff see [2.18.0...2.19.0][2.18.0...2.19.0].
For a full diff see [2.18.0...2.19.0][2.18.0...2.19.0].
composer/composer:2.2.1 for compiling composer-normalize.phar ([#842]), by [@localheinz]For a full diff see [2.17.0...2.18.0][2.17.0...2.18.0].
For a full diff see [2.17.0...2.18.0][2.17.0...2.18.0].
schema.json ([#829]), by [@ergebnis-bot]For a full diff see [2.16.0...2.17.0][2.16.0...2.17.0].
For a full diff see [2.16.0...2.17.0][2.16.0...2.17.0].
schema.json ([#816]), by [@ergebnis-bot]composer/composer:2.1.14 for compiling composer-normalize.phar ([#825]), by [@localheinz]For a full diff see [2.15.0...2.16.0][2.15.0...2.16.0].
For a full diff see [2.15.0...2.16.0][2.15.0...2.16.0].
composer/composer:2.1.12 for compiling composer-normalize.phar ([#804]), by [@localheinz]composer/composer:^1.0.0 ([#807]), by [@localheinz]For a full diff see [2.14.0...2.15.0][2.14.0...2.15.0].
For a full diff see [2.14.0...2.15.0][2.14.0...2.15.0].
schema.json ([#754]), by [@ergebnis-bot]For a full diff see [2.13.4...2.14.0][2.13.4...2.14.0].
For a full diff see [2.13.4...2.14.0][2.13.4...2.14.0].
schema.json ([#744]), by [@ergebnis-bot]composer/composer ([#750]), by [@localheinz]For a full diff see [2.13.3...2.13.4][2.13.3...2.13.4].
For a full diff see [2.13.3...2.13.4][2.13.3...2.13.4].
composer/composer:2.0.13 for compiling composer-normalize.phar ([#743]), by [@localheinz]For a full diff see [2.13.2...2.13.3][2.13.2...2.13.3].
For a full diff see [2.13.2...2.13.3][2.13.2...2.13.3].
ergebnis/json-normalizer:^1.0.3 which correctly sorts composer-plugin-api ([#707]), by [@dependabot]For a full diff see [2.13.1...2.13.2][2.13.1...2.13.2].
For a full diff see [2.13.1...2.13.2][2.13.1...2.13.2].
ergebnis/json-normalizer:^1.0.2 which ignores the config.preferred-install hash only instead of all properties with the name preferred-install ([#647]), by [@localheinz]For a full diff see [2.13.0...2.13.1][2.13.0...2.13.1].
For a full diff see [2.13.0...2.13.1][2.13.0...2.13.1].
:clown_face: Made a mistake tagging this release *before- pulling changes merged into main.
For a full diff see [2.12.2...2.13.0][2.12.2...2.13.0].
For a full diff see [2.12.2...2.13.0][2.12.2...2.13.0].
composer/composer:^1.0.0 ([#644]), by [@localheinz]For a full diff see [2.12.1...2.12.2][2.12.1...2.12.2].
For a full diff see [2.12.1...2.12.2][2.12.1...2.12.2].
ergebnis/json-normalizer:^1.0.1 which ignores the preferred-install hash when sorting configuration hashes by key ([#646]), by [@dependabot]For a full diff see [2.12.0...2.12.1][2.12.0...2.12.1].
For a full diff see [2.12.0...2.12.1][2.12.0...2.12.1].
Composer\Console\Application when running as development dependency ([#643]), by [@localheinz]Your coding agent can read these notes before it upgrades. Set up the MCP server →