From 4b4f97ee5471f78d811f039eaa722edd285431cc Mon Sep 17 00:00:00 2001 From: Dan Wallis Date: Sun, 31 Dec 2023 15:26:58 +0000 Subject: [PATCH 1/5] Update tests with new/desired behaviour --- .../No/VersionRange/Wildcard/Any/normalized.json | 4 +++- .../No/VersionRange/Wildcard/Any/original.json | 4 +++- .../No/VersionRange/Wildcard/Stable/normalized.json | 8 ++++++-- .../No/VersionRange/Wildcard/Stable/original.json | 8 ++++++-- .../No/VersionRange/Wildcard/Unstable/normalized.json | 8 ++++++-- .../No/VersionRange/Wildcard/Unstable/original.json | 8 ++++++-- 6 files changed, 30 insertions(+), 10 deletions(-) diff --git a/test/Template/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/ValueContainsPackagesAndVersionConstraints/HasEntries/Yes/HasNormalizedVersionConstraints/No/VersionRange/Wildcard/Any/normalized.json b/test/Template/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/ValueContainsPackagesAndVersionConstraints/HasEntries/Yes/HasNormalizedVersionConstraints/No/VersionRange/Wildcard/Any/normalized.json index 1ec47268..5858b011 100644 --- a/test/Template/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/ValueContainsPackagesAndVersionConstraints/HasEntries/Yes/HasNormalizedVersionConstraints/No/VersionRange/Wildcard/Any/normalized.json +++ b/test/Template/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/ValueContainsPackagesAndVersionConstraints/HasEntries/Yes/HasNormalizedVersionConstraints/No/VersionRange/Wildcard/Any/normalized.json @@ -2,6 +2,8 @@ "homepage": "https://getcomposer.org/doc/articles/versions.md#wildcard-version-range-", "value-contains-packages-and-version-constraints": { "version-range-wildcard-any/01-trimmed": "*", - "version-range-wildcard-any/02-untrimmed": "*" + "version-range-wildcard-any/02-untrimmed": "*", + "version-range-wildcard-any/03-lower-x": "*", + "version-range-wildcard-any/04-upper-X": "*" } } diff --git a/test/Template/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/ValueContainsPackagesAndVersionConstraints/HasEntries/Yes/HasNormalizedVersionConstraints/No/VersionRange/Wildcard/Any/original.json b/test/Template/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/ValueContainsPackagesAndVersionConstraints/HasEntries/Yes/HasNormalizedVersionConstraints/No/VersionRange/Wildcard/Any/original.json index 0979de3f..22a5a61e 100644 --- a/test/Template/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/ValueContainsPackagesAndVersionConstraints/HasEntries/Yes/HasNormalizedVersionConstraints/No/VersionRange/Wildcard/Any/original.json +++ b/test/Template/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/ValueContainsPackagesAndVersionConstraints/HasEntries/Yes/HasNormalizedVersionConstraints/No/VersionRange/Wildcard/Any/original.json @@ -2,6 +2,8 @@ "homepage": "https://getcomposer.org/doc/articles/versions.md#wildcard-version-range-", "value-contains-packages-and-version-constraints": { "version-range-wildcard-any/01-trimmed": "*", - "version-range-wildcard-any/02-untrimmed": " * " + "version-range-wildcard-any/02-untrimmed": " * ", + "version-range-wildcard-any/03-lower-x": "x", + "version-range-wildcard-any/04-upper-X": "X" } } diff --git a/test/Template/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/ValueContainsPackagesAndVersionConstraints/HasEntries/Yes/HasNormalizedVersionConstraints/No/VersionRange/Wildcard/Stable/normalized.json b/test/Template/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/ValueContainsPackagesAndVersionConstraints/HasEntries/Yes/HasNormalizedVersionConstraints/No/VersionRange/Wildcard/Stable/normalized.json index 4e96cb64..6883deb9 100644 --- a/test/Template/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/ValueContainsPackagesAndVersionConstraints/HasEntries/Yes/HasNormalizedVersionConstraints/No/VersionRange/Wildcard/Stable/normalized.json +++ b/test/Template/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/ValueContainsPackagesAndVersionConstraints/HasEntries/Yes/HasNormalizedVersionConstraints/No/VersionRange/Wildcard/Stable/normalized.json @@ -3,7 +3,11 @@ "value-contains-packages-and-version-constraints": { "version-range-wildcard-stable/01-major-minor-trimmed": "^1.0", "version-range-wildcard-stable/02-major-minor-untrimmed": "^1.0", - "version-range-wildcard-stable/03-major-minor-patch-trimmed": "~1.2.0", - "version-range-wildcard-stable/04-major-minor-patch-untrimmed": "~1.2.0" + "version-range-wildcard-stable/03-major-minor-lower-x": "^1.0", + "version-range-wildcard-stable/04-major-minor-upper-X": "^1.0", + "version-range-wildcard-stable/05-major-minor-patch-trimmed": "~1.2.0", + "version-range-wildcard-stable/06-major-minor-patch-untrimmed": "~1.2.0", + "version-range-wildcard-stable/07-major-minor-patch-lower-x": "~1.2.0", + "version-range-wildcard-stable/08-major-minor-patch-upper-X": "~1.2.0" } } diff --git a/test/Template/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/ValueContainsPackagesAndVersionConstraints/HasEntries/Yes/HasNormalizedVersionConstraints/No/VersionRange/Wildcard/Stable/original.json b/test/Template/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/ValueContainsPackagesAndVersionConstraints/HasEntries/Yes/HasNormalizedVersionConstraints/No/VersionRange/Wildcard/Stable/original.json index 272ea96f..9e15ee8a 100644 --- a/test/Template/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/ValueContainsPackagesAndVersionConstraints/HasEntries/Yes/HasNormalizedVersionConstraints/No/VersionRange/Wildcard/Stable/original.json +++ b/test/Template/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/ValueContainsPackagesAndVersionConstraints/HasEntries/Yes/HasNormalizedVersionConstraints/No/VersionRange/Wildcard/Stable/original.json @@ -3,7 +3,11 @@ "value-contains-packages-and-version-constraints": { "version-range-wildcard-stable/01-major-minor-trimmed": "1.*", "version-range-wildcard-stable/02-major-minor-untrimmed": " 1.* ", - "version-range-wildcard-stable/03-major-minor-patch-trimmed": "1.2.*", - "version-range-wildcard-stable/04-major-minor-patch-untrimmed": " 1.2.* " + "version-range-wildcard-stable/03-major-minor-lower-x": "1.x", + "version-range-wildcard-stable/04-major-minor-upper-X": "1.X", + "version-range-wildcard-stable/05-major-minor-patch-trimmed": "1.2.*", + "version-range-wildcard-stable/06-major-minor-patch-untrimmed": " 1.2.* ", + "version-range-wildcard-stable/07-major-minor-patch-lower-x": "1.2.x", + "version-range-wildcard-stable/08-major-minor-patch-upper-X": "1.2.X" } } diff --git a/test/Template/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/ValueContainsPackagesAndVersionConstraints/HasEntries/Yes/HasNormalizedVersionConstraints/No/VersionRange/Wildcard/Unstable/normalized.json b/test/Template/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/ValueContainsPackagesAndVersionConstraints/HasEntries/Yes/HasNormalizedVersionConstraints/No/VersionRange/Wildcard/Unstable/normalized.json index 9aca92fd..3ac23915 100644 --- a/test/Template/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/ValueContainsPackagesAndVersionConstraints/HasEntries/Yes/HasNormalizedVersionConstraints/No/VersionRange/Wildcard/Unstable/normalized.json +++ b/test/Template/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/ValueContainsPackagesAndVersionConstraints/HasEntries/Yes/HasNormalizedVersionConstraints/No/VersionRange/Wildcard/Unstable/normalized.json @@ -3,7 +3,11 @@ "value-contains-packages-and-version-constraints": { "version-range-wildcard-unstable/01-major-minor-trimmed": "^0.0", "version-range-wildcard-unstable/02-major-minor-untrimmed": "^0.0", - "version-range-wildcard-unstable/03-major-minor-patch-trimmed": "~0.1.0", - "version-range-wildcard-unstable/04-major-minor-patch-untrimmed": "~0.1.0" + "version-range-wildcard-unstable/03-major-minor-lower-x": "^0.0", + "version-range-wildcard-unstable/04-major-minor-upper-X": "^0.0", + "version-range-wildcard-unstable/05-major-minor-patch-trimmed": "~0.1.0", + "version-range-wildcard-unstable/06-major-minor-patch-untrimmed": "~0.1.0", + "version-range-wildcard-unstable/07-major-minor-patch-lower-x": "~0.1.0", + "version-range-wildcard-unstable/08-major-minor-patch-upper-X": "~0.1.0" } } diff --git a/test/Template/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/ValueContainsPackagesAndVersionConstraints/HasEntries/Yes/HasNormalizedVersionConstraints/No/VersionRange/Wildcard/Unstable/original.json b/test/Template/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/ValueContainsPackagesAndVersionConstraints/HasEntries/Yes/HasNormalizedVersionConstraints/No/VersionRange/Wildcard/Unstable/original.json index fe8bb1fa..1be4681b 100644 --- a/test/Template/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/ValueContainsPackagesAndVersionConstraints/HasEntries/Yes/HasNormalizedVersionConstraints/No/VersionRange/Wildcard/Unstable/original.json +++ b/test/Template/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/ValueContainsPackagesAndVersionConstraints/HasEntries/Yes/HasNormalizedVersionConstraints/No/VersionRange/Wildcard/Unstable/original.json @@ -3,7 +3,11 @@ "value-contains-packages-and-version-constraints": { "version-range-wildcard-unstable/01-major-minor-trimmed": "0.*", "version-range-wildcard-unstable/02-major-minor-untrimmed": " 0.* ", - "version-range-wildcard-unstable/03-major-minor-patch-trimmed": "0.1.*", - "version-range-wildcard-unstable/04-major-minor-patch-untrimmed": " 0.1.* " + "version-range-wildcard-unstable/03-major-minor-lower-x": "0.x", + "version-range-wildcard-unstable/04-major-minor-upper-X": "0.X", + "version-range-wildcard-unstable/05-major-minor-patch-trimmed": "0.1.*", + "version-range-wildcard-unstable/06-major-minor-patch-untrimmed": " 0.1.* ", + "version-range-wildcard-unstable/07-major-minor-patch-lower-x": "0.1.x", + "version-range-wildcard-unstable/08-major-minor-patch-upper-X": "0.1.X" } } From 5224b6b5839686b826be1dc575af2e74da3f8839 Mon Sep 17 00:00:00 2001 From: Dan Wallis Date: Sun, 31 Dec 2023 15:29:43 +0000 Subject: [PATCH 2/5] Replace x and X wildcards with * --- README.md | 14 +++++++++++ .../Composer/VersionConstraintNormalizer.php | 24 ++++++++++++++++++- 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index fb48c881..b4322deb 100644 --- a/README.md +++ b/README.md @@ -614,6 +614,20 @@ sections, the `Vendor\Composer\VersionConstraintNormalizer` will ensure that } ``` +- use of `x` or `X` for wildcards is replaced with `*` + + ```diff + { + "require": { + - "foo/bar": "1.x", + - "foo/baz": "2.3.X", + - "foo/qux": "x" + + "foo/bar": "^1.0", + + "foo/baz": "~2.3.0", + + "foo/qux": "*" + } + ``` + ## Changelog The maintainers of this project record notable changes to this project in a [changelog](CHANGELOG.md). diff --git a/src/Vendor/Composer/VersionConstraintNormalizer.php b/src/Vendor/Composer/VersionConstraintNormalizer.php index f072cded..788a6f5d 100644 --- a/src/Vendor/Composer/VersionConstraintNormalizer.php +++ b/src/Vendor/Composer/VersionConstraintNormalizer.php @@ -85,6 +85,7 @@ private function normalizeVersionConstraint(string $versionConstraint): string { $versionConstraint = self::normalizeVersionConstraintSeparators($versionConstraint); $versionConstraint = self::removeLeadingVersionPrefix($versionConstraint); + $versionConstraint = self::replaceWildcardXWithAsterisk($versionConstraint); $versionConstraint = self::replaceWildcardWithTilde($versionConstraint); $versionConstraint = self::replaceTildeWithCaret($versionConstraint); $versionConstraint = self::removeDuplicateVersionConstraints($versionConstraint); @@ -119,6 +120,27 @@ private static function normalizeVersionConstraintSeparators(string $versionCons }, $orConstraints)); } + private static function replaceWildcardXWithAsterisk(string $versionConstraint): string + { + $split = \explode( + ' ', + $versionConstraint, + ); + + foreach ($split as &$part) { + $part = \preg_replace( + '{^[xX]$}', + '*', + $part, + ); + } + + return \implode( + ' ', + $split, + ); + } + private static function replaceWildcardWithTilde(string $versionConstraint): string { $split = \explode( @@ -128,7 +150,7 @@ private static function replaceWildcardWithTilde(string $versionConstraint): str foreach ($split as &$part) { $part = \preg_replace( - '{^(\d+(?:\.\d+)*)\.\*$}', + '{^(\d+(?:\.\d+)*)\.[*xX]$}', '~$1.0', $part, ); From c412f5b00105b3317e88e5bcd188a26a24fb30c1 Mon Sep 17 00:00:00 2001 From: Dan Wallis Date: Sun, 31 Dec 2023 15:42:42 +0000 Subject: [PATCH 3/5] Reduce duplicate code --- .../Composer/VersionConstraintNormalizer.php | 96 +++++++------------ 1 file changed, 36 insertions(+), 60 deletions(-) diff --git a/src/Vendor/Composer/VersionConstraintNormalizer.php b/src/Vendor/Composer/VersionConstraintNormalizer.php index 788a6f5d..9b2b2599 100644 --- a/src/Vendor/Composer/VersionConstraintNormalizer.php +++ b/src/Vendor/Composer/VersionConstraintNormalizer.php @@ -122,64 +122,28 @@ private static function normalizeVersionConstraintSeparators(string $versionCons private static function replaceWildcardXWithAsterisk(string $versionConstraint): string { - $split = \explode( - ' ', + return self::applyRegularExpressionReplacementToVersionsInTurn( $versionConstraint, - ); - - foreach ($split as &$part) { - $part = \preg_replace( - '{^[xX]$}', - '*', - $part, - ); - } - - return \implode( - ' ', - $split, + '{^[xX]$}', + '*', ); } private static function replaceWildcardWithTilde(string $versionConstraint): string { - $split = \explode( - ' ', + return self::applyRegularExpressionReplacementToVersionsInTurn( $versionConstraint, - ); - - foreach ($split as &$part) { - $part = \preg_replace( - '{^(\d+(?:\.\d+)*)\.[*xX]$}', - '~$1.0', - $part, - ); - } - - return \implode( - ' ', - $split, + '{^(\d+(?:\.\d+)*)\.[*xX]$}', + '~$1.0', ); } private static function replaceTildeWithCaret(string $versionConstraint): string { - $split = \explode( - ' ', + return self::applyRegularExpressionReplacementToVersionsInTurn( $versionConstraint, - ); - - foreach ($split as &$part) { - $part = \preg_replace( - '{^~(\d+(?:\.\d+)?)$}', - '^$1', - $part, - ); - } - - return \implode( - ' ', - $split, + '{^~(\d+(?:\.\d+)?)$}', + '^$1', ); } @@ -196,22 +160,10 @@ private static function removeDuplicateVersionConstraints(string $versionConstra private static function removeLeadingVersionPrefix(string $versionConstraint): string { - $split = \explode( - ' ', + return self::applyRegularExpressionReplacementToVersionsInTurn( $versionConstraint, - ); - - foreach ($split as &$part) { - $part = \preg_replace( - '{^(|[!<>]=|[~<>^])v(\d+.*)$}', - '$1$2', - $part, - ); - } - - return \implode( - ' ', - $split, + '{^(|[!<>]=|[~<>^])v(\d+.*)$}', + '$1$2', ); } @@ -348,4 +300,28 @@ private static function joinAndConstraints(string ...$andConstraints): string $andConstraints, ); } + + /** + * @param non-empty-string $find + */ + private static function applyRegularExpressionReplacementToVersionsInTurn(string $versionConstraint, string $find, string $replace): string + { + $split = \explode( + ' ', + $versionConstraint, + ); + + foreach ($split as &$part) { + $part = \preg_replace( + $find, + $replace, + $part, + ); + } + + return \implode( + ' ', + $split, + ); + } } From 227bf02062eae76c8bdb45e989ebd3fc06dd4209 Mon Sep 17 00:00:00 2001 From: Dan Wallis Date: Sun, 31 Dec 2023 16:51:54 +0000 Subject: [PATCH 4/5] Account for 1.x.x usage too --- .../Composer/VersionConstraintNormalizer.php | 15 +++++++++++++++ .../VersionRange/Wildcard/Stable/normalized.json | 6 +++++- .../No/VersionRange/Wildcard/Stable/original.json | 6 +++++- .../Wildcard/Unstable/normalized.json | 6 +++++- .../VersionRange/Wildcard/Unstable/original.json | 6 +++++- 5 files changed, 35 insertions(+), 4 deletions(-) diff --git a/src/Vendor/Composer/VersionConstraintNormalizer.php b/src/Vendor/Composer/VersionConstraintNormalizer.php index 9b2b2599..56051f00 100644 --- a/src/Vendor/Composer/VersionConstraintNormalizer.php +++ b/src/Vendor/Composer/VersionConstraintNormalizer.php @@ -122,6 +122,21 @@ private static function normalizeVersionConstraintSeparators(string $versionCons private static function replaceWildcardXWithAsterisk(string $versionConstraint): string { + // '1.x.x' -> '1.*' + $versionConstraint = self::applyRegularExpressionReplacementToVersionsInTurn( + $versionConstraint, + '{^(\d+)\.[xX]\.[xX]$}', + '$1.*', + ); + + // '1.x' -> '1.*' + $versionConstraint = self::applyRegularExpressionReplacementToVersionsInTurn( + $versionConstraint, + '{^(\d+)\.[xX]$}', + '$1.*', + ); + + // 'x' -> '*' return self::applyRegularExpressionReplacementToVersionsInTurn( $versionConstraint, '{^[xX]$}', diff --git a/test/Template/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/ValueContainsPackagesAndVersionConstraints/HasEntries/Yes/HasNormalizedVersionConstraints/No/VersionRange/Wildcard/Stable/normalized.json b/test/Template/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/ValueContainsPackagesAndVersionConstraints/HasEntries/Yes/HasNormalizedVersionConstraints/No/VersionRange/Wildcard/Stable/normalized.json index 6883deb9..659cc52a 100644 --- a/test/Template/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/ValueContainsPackagesAndVersionConstraints/HasEntries/Yes/HasNormalizedVersionConstraints/No/VersionRange/Wildcard/Stable/normalized.json +++ b/test/Template/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/ValueContainsPackagesAndVersionConstraints/HasEntries/Yes/HasNormalizedVersionConstraints/No/VersionRange/Wildcard/Stable/normalized.json @@ -8,6 +8,10 @@ "version-range-wildcard-stable/05-major-minor-patch-trimmed": "~1.2.0", "version-range-wildcard-stable/06-major-minor-patch-untrimmed": "~1.2.0", "version-range-wildcard-stable/07-major-minor-patch-lower-x": "~1.2.0", - "version-range-wildcard-stable/08-major-minor-patch-upper-X": "~1.2.0" + "version-range-wildcard-stable/08-major-minor-patch-upper-X": "~1.2.0", + "version-range-wildcard-stable/09-major-minor-patch-lower-x": "^1.0", + "version-range-wildcard-stable/10-major-minor-patch-upper-X": "^1.0", + "version-range-wildcard-stable/11-major-minor-patch-mixed-xX": "^1.0", + "version-range-wildcard-stable/12-major-minor-patch-mixed-Xx": "^1.0" } } diff --git a/test/Template/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/ValueContainsPackagesAndVersionConstraints/HasEntries/Yes/HasNormalizedVersionConstraints/No/VersionRange/Wildcard/Stable/original.json b/test/Template/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/ValueContainsPackagesAndVersionConstraints/HasEntries/Yes/HasNormalizedVersionConstraints/No/VersionRange/Wildcard/Stable/original.json index 9e15ee8a..fd8c5d91 100644 --- a/test/Template/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/ValueContainsPackagesAndVersionConstraints/HasEntries/Yes/HasNormalizedVersionConstraints/No/VersionRange/Wildcard/Stable/original.json +++ b/test/Template/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/ValueContainsPackagesAndVersionConstraints/HasEntries/Yes/HasNormalizedVersionConstraints/No/VersionRange/Wildcard/Stable/original.json @@ -8,6 +8,10 @@ "version-range-wildcard-stable/05-major-minor-patch-trimmed": "1.2.*", "version-range-wildcard-stable/06-major-minor-patch-untrimmed": " 1.2.* ", "version-range-wildcard-stable/07-major-minor-patch-lower-x": "1.2.x", - "version-range-wildcard-stable/08-major-minor-patch-upper-X": "1.2.X" + "version-range-wildcard-stable/08-major-minor-patch-upper-X": "1.2.X", + "version-range-wildcard-stable/09-major-minor-patch-lower-x": "1.x.x", + "version-range-wildcard-stable/10-major-minor-patch-upper-X": "1.X.X", + "version-range-wildcard-stable/11-major-minor-patch-mixed-xX": "1.x.X", + "version-range-wildcard-stable/12-major-minor-patch-mixed-Xx": "1.X.x" } } diff --git a/test/Template/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/ValueContainsPackagesAndVersionConstraints/HasEntries/Yes/HasNormalizedVersionConstraints/No/VersionRange/Wildcard/Unstable/normalized.json b/test/Template/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/ValueContainsPackagesAndVersionConstraints/HasEntries/Yes/HasNormalizedVersionConstraints/No/VersionRange/Wildcard/Unstable/normalized.json index 3ac23915..b89ca0a8 100644 --- a/test/Template/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/ValueContainsPackagesAndVersionConstraints/HasEntries/Yes/HasNormalizedVersionConstraints/No/VersionRange/Wildcard/Unstable/normalized.json +++ b/test/Template/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/ValueContainsPackagesAndVersionConstraints/HasEntries/Yes/HasNormalizedVersionConstraints/No/VersionRange/Wildcard/Unstable/normalized.json @@ -8,6 +8,10 @@ "version-range-wildcard-unstable/05-major-minor-patch-trimmed": "~0.1.0", "version-range-wildcard-unstable/06-major-minor-patch-untrimmed": "~0.1.0", "version-range-wildcard-unstable/07-major-minor-patch-lower-x": "~0.1.0", - "version-range-wildcard-unstable/08-major-minor-patch-upper-X": "~0.1.0" + "version-range-wildcard-unstable/08-major-minor-patch-upper-X": "~0.1.0", + "version-range-wildcard-unstable/09-major-minor-patch-lower-x": "^0.0", + "version-range-wildcard-unstable/10-major-minor-patch-upper-X": "^0.0", + "version-range-wildcard-unstable/11-major-minor-patch-mixed-xX": "^0.0", + "version-range-wildcard-unstable/12-major-minor-patch-mixed-Xx": "^0.0" } } diff --git a/test/Template/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/ValueContainsPackagesAndVersionConstraints/HasEntries/Yes/HasNormalizedVersionConstraints/No/VersionRange/Wildcard/Unstable/original.json b/test/Template/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/ValueContainsPackagesAndVersionConstraints/HasEntries/Yes/HasNormalizedVersionConstraints/No/VersionRange/Wildcard/Unstable/original.json index 1be4681b..c96e2e71 100644 --- a/test/Template/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/ValueContainsPackagesAndVersionConstraints/HasEntries/Yes/HasNormalizedVersionConstraints/No/VersionRange/Wildcard/Unstable/original.json +++ b/test/Template/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/ValueContainsPackagesAndVersionConstraints/HasEntries/Yes/HasNormalizedVersionConstraints/No/VersionRange/Wildcard/Unstable/original.json @@ -8,6 +8,10 @@ "version-range-wildcard-unstable/05-major-minor-patch-trimmed": "0.1.*", "version-range-wildcard-unstable/06-major-minor-patch-untrimmed": " 0.1.* ", "version-range-wildcard-unstable/07-major-minor-patch-lower-x": "0.1.x", - "version-range-wildcard-unstable/08-major-minor-patch-upper-X": "0.1.X" + "version-range-wildcard-unstable/08-major-minor-patch-upper-X": "0.1.X", + "version-range-wildcard-unstable/09-major-minor-patch-lower-x": "0.x.x", + "version-range-wildcard-unstable/10-major-minor-patch-upper-X": "0.X.X", + "version-range-wildcard-unstable/11-major-minor-patch-mixed-xX": "0.x.X", + "version-range-wildcard-unstable/12-major-minor-patch-mixed-Xx": "0.X.x" } } From 41c6799c2170d381690e9e3d8acbf384acd4b139 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Sat, 17 Feb 2024 13:35:57 +0100 Subject: [PATCH 5/5] Fix: Update CHANGELOG.md --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4ca54241..fe0bf9ee 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), For a full diff see [`4.5.0...main`][4.5.0...main]. +### Changed + +- Adjusted `Vendor\Composer\VersionConstraintNormalizer` to replace `x` and `X` wildcards with `*` ([#1052]), by [@fredden] + ## [`4.5.0`][4.5.0] For a full diff see [`4.4.1...4.5.0`][4.4.1...4.5.0]. @@ -690,6 +694,7 @@ For a full diff see [`5d8b3e2...0.1.0`][5d8b3e2...0.1.0]. [#1001]: https://github.com/ergebnis/json-normalizer/pull/1001 [#1027]: https://github.com/ergebnis/json-normalizer/pull/1027 [#1039]: https://github.com/ergebnis/json-normalizer/pull/1039 +[#1052]: https://github.com/ergebnis/json-normalizer/pull/1052 [#1073]: https://github.com/ergebnis/json-normalizer/pull/1073 [#1074]: https://github.com/ergebnis/json-normalizer/pull/1074 [#1075]: https://github.com/ergebnis/json-normalizer/pull/1075