All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
For a full diff see 4.8.0...main
.
For a full diff see 4.7.0...4.8.0
.
For a full diff see 4.6.0...4.7.0
.
- Added support for PHP 8.4 (#1195), by @localheinz
For a full diff see 4.5.0...4.6.0
.
- Adjusted
Vendor\Composer\VersionConstraintNormalizer
to replacex
andX
wildcards with*
(#1052), by @fredden - Allowed installation on PHP 8.4 (#1171), by @localheinz
For a full diff see 4.4.1...4.5.0
.
- Required
ergebnis/json:^1.2.0
(#1073), by @localheinz - Required
ergebnis/json-printer:^3.5.0
(#1074), by @localheinz - Required
ergebnis/json-pointer:^3.4.0
(#1075), by @localheinz - Required
ergebnis/json-schema-validator:^4.2.0
(#1076), by @localheinz - Added support for PHP 8.3 (#1077), by @localheinz
- Added support for PHP 7.4 (#1079), by @localheinz
For a full diff see 4.4.0...4.4.1
.
- Stopped sorting an item in
repositories
when it disables packagist (#1039), by @localheinz
For a full diff see 4.3.0...4.4.0
.
- Started removing
v
prefixes from version constraints (#1027), by @fredden - Started sorting items in the
exclude
andonly
properties of items listed in therepositories
section (#1001), by @fredden
For a full diff see 4.2.0...4.3.0
.
- Sort
allow-plugins
andpreferred-install
as sensibly as is feasible (#980), by @fredden - Adjusted
Vendor\Composer\VersionConstraintNormalizer
to remove overlapping individual versions too (#982), by @fredden - Added support for PHP 8.3 (#988), by @localheinz
- Required
ergebnis/json-printer:^3.4.0
(#989), by @dependabot - Required
ergebnis/json:^1.1.0
(#991), by @dependabot - Required
ergebnis/json-schema-validator:^4.1.0
(#992), by @dependabot
For a full diff see 4.1.0...4.2.0
.
- Dropped support for PHP 8.0 (#917), by @localheinz
- Adjusted
Vendor\Composer\VersionConstraintNormalizer
to prefer tilde operators (~
) over wildcard operators (*
), and caret operators (^
) over tilde operators (~
) (#756), by @fredden
For a full diff see 4.0.2...4.1.0
.
- Adjusted
Vendor\Composer\VersionConstraintNormalizer
to remove extra spaces in inline aliases (#889), by @fredden - Adjusted
Vendor\Composer\VersionConstraintNormalizer
to remove useless inline aliases (#889), by @fredden
- Adjusted
SchemaNormalizer
to account for objects with string and integer-like properties (#868), by @alexis-saransig-lullabot and @fredden - Adjusted
SchemaNormalizer
to account for objects where schema describes additional properties (#873), by @fredden and @localheinz
For a full diff see 4.0.1...4.0.2
.
- Adjusted
Vendor\Composer\VersionConstraintNormalizer
to sort versions naturally (#863), by @localheinz
For a full diff see 4.0.0...4.0.1
.
- Adjusted
Vendor\Composer\ComposerJsonNormalizer
to stop sortingrepositories
(#858), by @localheinz - Reverted inlining
Vendor\Composer\BinNormalizer
(#860), by @localheinz - Partially reverted removal of
Vendor\Composer\ConfigHashNormalizer
to ensureconfig
is sorted by ket (#861), by @localheinz
For a full diff see 3.0.0...4.0.0
.
- Added
FormatNormalizer
(#781), by @localheinz
- Dropped support for PHP 7.4 (#757), by @localheinz
- Required
ergebnis/json-schema-validator:^4.0.0
([#771]), by @localheinz - Allowed configuring the
Normalizer\SchemaNormalizer
to exclude properties from being sorted (#774), by @localheinz - Adjusted
Vendor\Composer\BinNormalizer
,Vendor\Composer\PackageHashNormalizer
,Vendor\Composer\VersionConstraintNormalizer
, andSchemaNormalizer
to encode JSON withJSON_PRETTY_PRINT
flag (#795), by @localheinz - Adjusted
Vendor\Composer\BinNormalizer
,Vendor\Composer\PackageHashNormalizer
,Vendor\Composer\VersionConstraintNormalizer
, andSchemaNormalizer
to encode JSON withJSON_UNESCAPED_SLASHES
flag (#801), by @localheinz - Adjusted
Vendor\Composer\BinNormalizer
,Vendor\Composer\PackageHashNormalizer
,Vendor\Composer\VersionConstraintNormalizer
, andSchemaNormalizer
to encode JSON withJSON_UNESCAPED_UNICODE
flag (#802), by @localheinz - Adjusted
Vendor\Composer\ComposerJsonNormalizer
to reject JSON when it is not an object (#804), by @localheinz - Adjusted
Vendor\Composer\ComposerJsonNormalizer
to composeWithFinalNewLineNormalizer
([#806]), by @localheinz - Adjusted
Vendor\Composer\VersionConstraintNormalizer
to skip normalization of version constraints when they can not be parsed byComposer\Semver\VersionParser
(#813), by @fredden and @localheinz - Adjusted
Vendor\Composer\VersionConstraintNormalizer
to sort versions in ascending order (#816), by @fredden - Adjusted
Vendor\Composer\VersionConstraintNormalizer
to normalize version constraints separators inand
constraints from space (,
) to space ( - Adjusted
Vendor\Composer\VersionConstraintNormalizer
to remove overlapping version constraints inor
version constraints (#850), by @fredden - Adjusted
Vendor\Composer\VersionConstraintNormalizer
to remove duplicate version constraints (#856), by @localheinz
- Adjusted
Vendor\Composer\ComposerJsonNormalizer
to stop sortingscripts.auto-scripts
(#776), by @localheinz - Adjusted
Vendor\Composer\ComposerJsonNormalizer
to stop sortingextra.installer-paths
(#777), by @localheinz - Adjusted
Vendor\Composer\ComposerJsonNormalizer
to stop sortingconfig.allow-plugins
(#778), by @localheinz - Adjusted
Vendor\Composer\ComposerJsonNormalizer
to stop sortingconfig.preferred-install
(#779), by @localheinz - Adjusted
Vendor\Composer\ComposerJsonNormalizer
to stop sorting children ofextra.patches
(#780), by @localheinz
- Started using
ergebnis/json
and removedJson
andException\InvalidJsonEncoded
(#772), by @localheinz - Removed
Vendor\Composer\ConfigHashNormalizer
(#775), by @localheinz - Removed
AutoFormatNormalizer
(#793), by @localheinz - Removed
FixedFormatNormalizer
(#794), by @localheinz - Inlined and removed
Vendor\Composer\BinNormalizer
(#805), by @localheinz
For a full diff see 2.2.0...3.0.0
.
- Required
ergebnis/json-schema-validator:^3.0.0
(#666), by @dependabot - Renamed
Exception\ExceptionInterface
toException\Exception
(#667), by @localheinz - Removed
Exception
suffix from all exceptions (#668), by @localheinz - Renamed
NormalizerInterface
toNormalizer
(#669), by @localheinz - Renamed
Format\Formatter
toFormat\DefaultFormatter
(#672), by @localheinz - Renamed
Format\FormatterInterface
toFormat\Formatter
(#673), by @localheinz - Required
ergebnis/json-pointer:^3.0.0
andergebnis/json-schema-validator:^3.1.0
(#697), by @localheinz - Required
ergebnis/json-pointer:^3.1.0
(#698), by @dependabot - Required
justinrainbow/json-schema:^5.2.12
(#705), by @dependabot
- Adjusted
ConfigHashNormalizer
to sort keys correctly (#723), by [@fredded]
For a full diff see 2.1.0...2.2.0
.
- Stopped checking whether
type
property in schema is set toarray
orobject
(#632), by @localheinz - Adjusted
SchemaNormalizer
to normalize additional object properties (#639), by @localheinz - Adjusted
SchemaNormalizer
to normalize array values for which schema does not declare item schema (#641), by @localheinz
For a full diff see 2.0.0...2.1.0
.
- Adjusted
SchemaNormalizer
to supportanyOf
(#623), by @localheinz
For a full diff see 1.0.3...2.0.0
.
- Dropped support for PHP 7.2 (#564), by @localheinz
- Dropped support for PHP 7.3 (#573), by @localheinz
- Renamed
Format::__toString()
,Indent::__toString()
, andJson::__toString()
toFormat::toString()
,Indent::toString()
, andJson::toString()
, requiring consumers to explicitly invoke methods instead of allowing to cast tostring
(#589), by @localheinz - Started using the
SchemaValidator
provided byergebnis/json-schema-validator
(#595), by @localheinz - Renamed
Format\JsonEncodeOptions::value()
toFormat\JsonEncodeOptions::toInt()
(#603), by @localheinz - Extracted
Format\Format::create()
as named constructor and reduced visibility of__construct
toprivate
(#608), by @localheinz - Stopped composing
Format\Format
intoJson
(#616), by @localheinz - Renamed
FinalNewLineNormalizer
toWithFinalNewLineNormalizer
(#618), by @localheinz - Renamed
NoFinalNewLineNormalizer
toWithoutFinalNewLineNormalizer
(#619), by @localheinz
- Updated
justinrainbow/json-schema
(#517), by @dependabot - Stopped sorting the newly added
allow-plugins
configuration (#590), by @dependabot
- Removed
Validator\Result
,Valdiator\SchemaValidator
, andValidator\SchemaValidatorInterface
(#597), by @dependabot
For a full diff see 1.0.2...1.0.3
.
- Adjusted
Vendor\Composer\PackageHashNormalizer
to take into account the newly adddedcomposer-plugin-api
as platform requirement (#463), by @localheinz
For a full diff see 1.0.1...1.0.2
.
- Adjusted
Vendor\Composer\ConfigHashNormalizer
to take into account the full property path, not only the property name (#429), by @localheinz
For a full diff see 1.0.0...1.0.1
.
- Adjusted
Vendor\Composer\ConfigHashNormalizer
to ignore thepreferred-install
hash (#425), by @localheinz
For a full diff see 0.14.1...1.0.0
.
- Adjusted
Vendor\Composer\ConfigHashNormalizer
to recursively sort hashes by key (#424), by @localheinz
For a full diff see 0.14.0...0.14.1
.
- Adjusted
Vendor\Composer\ConfigHashNormalizer
to continue normalizing properties when a property has an empty value (#423), by @localheinz
For a full diff see 0.13.1...0.14.0
.
- Extracted an
Indent::CHARACTERS
constant that exposes a map of indent styles to indent characters (#384), by @localheinz
For a full diff see 0.13.0...0.13.1
.
- Dropped support for PHP 7.1 (#335), by @localheinz
For a full diff see 0.12.0...0.13.0
.
- Added support for PHP 8.0 (#308), by @localheinz
For a full diff see 0.11.0...0.12.0
.
- Added
SchemaValidator::validate()
, which returns aResult
composing validation error messages (#268), by @localheinz
- Deprecated
SchemaValidator::isValid()
(#269), by @localheinz
For a full diff see 0.10.1...0.11.0
.
- Merged in normalizers from
ergebnis/composer-json-normalizer
(#203), by @localheinz
- Removed the
ChainUriRetriever
(#202), by @localheinz
For a full diff see 0.10.0...0.10.1
.
- Brought back support for PHP 7.1 (#191), by @localheinz
For a full diff see 0.9.0...0.10.0
.
- Added a
ChainUriRetriever
which allows specifying multiple URI retrievers (#102), by @localheinz - Added this changelog (#103), by @localheinz
-
Allowing injection of a
UriRetriever
into theSchemaNormalizer
, and defaulting to aChainUriRetriever
which composesFileGetContents
andCurl
URI retrievers (#104), by @localheinz -
Dropped
null
default values of constructor arguments ofAutoFormatNormalizer
,FixedFormatNormalizer
,Formatter
,IndentNormalizer
to expose hard dependencies (#109), by @localheinz -
Dropped nullable return type declaration from
ChainUriRetriever::getContentType()
, defaulting to an emptystring
whenChainUriRetriever::retrieve()
wasn't invoked yet (#132), by @localheinz -
Started using
ergebnis/json-printer
instead oflocalheinz/json-printer
(#176), by @localheinz -
Renamed vendor namespace
Localheinz
toErgebnis
after move to @ergebnis (#181), by @localheinzRun
$ composer remove localheinz/json-normalizer
and
$ composer require ergebnis/json-normalizer
to update.
Run
$ find . -type f -exec sed -i '.bak' 's/Localheinz\\Json\\Normalizer/Ergebnis\\Json\\Normalizer/g' {} \;
to replace occurrences of
Localheinz\Json\Normalizer
withErgebnis\Json\Normalizer
.Run
$ find -type f -name '*.bak' -delete
to delete backup files created in the previous step.
- Dropped support for PHP 7.1 (#163), by @localheinz
For a full diff see 0.8.0...0.9.0
.
- Added
JsonEncodeOptions
value object (#93), by @localheinz
- Turned method on
Format
into named constructor onIndent
value object (#94), by @localheinz - Turned method on
Format
into named constructor onJsonEncodeOptions
value object(#95), by @localheinz - Turned method on
Format
into named constructor onNewLine
value object (#96), by @localheinz
- Removed capability to create
Json
value object from decoded data (#88), by @localheinz - Removed
IndentInterface
(#89), by @localheinz - Removed
NewLineInterface
(#90), by @localheinz - Removed
FormatInterface
(#91), by @localheinz - Removed
JsonInterface
(#92), by @localheinz
For a full diff see 0.7.0...0.8.0
.
- Added named constructor to
Json
value object to allow creation from data (#86), by @localheinz
- Renamed
InvalidJsonException
toInvalidJsonEncodedException
(#85), by @localheinz
ExceptionInterface
now extendsThrowable
(#82), by @BackEndTea- Extension
ext/json
is now explicitly required (#84), by @localheinz
For a full diff see 0.6.0...0.7.0
.
- Added
Indent
value object (#73), by @localheinz - Added
NewLine
value object (#76), by @localheinz - Added
Json
value object (#64), by @localheinz - Added exceptions (#79), by @localheinz
- Removed the
Sniffer
in favour of a named constructor onFormat
value object (#77), by @localheinz
- Added more test cases for sniffing JSON without whitespace (#67), by @localheinz
- Added missing types in a Docblock (#68), by @localheinz
- The
Format
value object now rejects mixed tabs and spaces as indent (#69), by @localheinz - Added more test cases for JSON without indent (#72), by @localheinz
- Sniff only pure indents, no mixed spaces and tabs (#71), by @localheinz
For a full diff see 0.5.2...0.6.0
.
- Added sniffing of new-line character sequence (#55), by @localheinz
For a full diff see 0.5.1...0.5.2
.
- Keep resolving references until there are none left (#49), by @localheinz
For a full diff see 0.5.0...0.5.1
.
- Resolve referenced schema in
oneOf
combination (#47), by @localheinz
For a full diff see 0.4.0...0.5.0
.
- Added handling of arrays where schema describes tuple (#37), by @localheinz
- Added handling of arrays were schema has reference definition (#40), by @localheinz
- Added handling of
oneOf
(#45), by @localheinz
For a full diff see 0.3.0...0.4.0
.
- Extracted
Formatter
(#31), by @localheinz
- Renamed
FormatSniffer
toSniffer
(#30), by @localheinz
For a full diff see 0.2.0...0.3.0
.
- Require PHP 7.1 (#27), by @localheinz
- Allow to mutate
Format
value object (#29), by @localheinz
For a full diff see 0.1.0...0.2.0
.
- Added
FixedFormatNormalizer
(#17), by @localheinz
For a full diff see 5d8b3e2...0.1.0
.
- Added
IndentNormalizer
(#1), by @localheinz - Added
FinalNewLineNormalizer
(#2), by @localheinz - Added
NoFinalNewLineNormalizer
(#3), by @localheinz - Added
JsonEncodeNormalizer
(#7), by @localheinz - Added
CallableNormalizer
(#8), by @localheinz - Added
ChainNormalizer
(#9), by @localheinz - Added
Format
value object (#10), by @localheinz - Added
FormatSniffer
(#12), by @localheinz - Added
AutoFormatNormalizer
(#13), by @localheinz - Added
SchemaNormalizer
(#15), by @localheinz