composer/semver
Composer Semver is a PHP library for parsing and validating version constraints, normalizing versions, and comparing releases. Extracted from Composer, it supports semver-style rules where possible while staying compatible with PHP’s version_compare.
list return types by @gharlan in https://github.com/composer/semver/pull/171Full Changelog: https://github.com/composer/semver/compare/3.4.3...3.4.4
Full Changelog: https://github.com/composer/semver/compare/3.4.2...3.4.3
Full Changelog: https://github.com/composer/semver/compare/3.4.1...3.4.2
Full Changelog: https://github.com/composer/semver/compare/3.4.0...3.4.1
Full Changelog: https://github.com/composer/semver/compare/3.3.2...3.4.0
Full Changelog: https://github.com/composer/semver/compare/3.2.8...3.2.9
Full Changelog: https://github.com/composer/semver/compare/3.2.7...3.2.8
^2.x-dev and ~2.x-dev, not very useful but seen in the wild and failed to validate with 3.0.1
x || [@dev](https://github.com/dev), not very useful but seen in the wild and failed to validate with 1.5.2/1.6.0
foobar-dev being equal to dev-foobar, dev-foobar is the official way to write it but we need to support the other for BC and conveniencex || [@dev](https://github.com/dev), not very useful but seen in the wild and failed to validate with 1.5.2/1.6.0
foobar-dev being equal to dev-foobar, dev-foobar is the official way to write it but we need to support the other for BC and convenience^2.x-dev and ~2.x-dev, not very useful but seen in the wild and failed to validate with 1.5.2
EmptyConstraint, replace it with MatchAllConstraint
*.* and such variants will not match all dev-* versions anymore, only * doesIntervals class to check if a constraint is a subsets of another one, and allow compacting complex MultiConstraints into simpler onesCompilingMatcher class to speed up constraint matching against simple Constraint instancesMatchAllConstraint and MatchNoneConstraint which match everything and nothingdev-master, dev-trunk and dev-default now normalize to dev-master, dev-trunk and dev-default instead of 9999999-dev in 1.x
AbstractConstraintgetUpperBound and getLowerBound to ConstraintInterface. They return Composer\Semver\Constraint\Bound instancesMultiConstraint::create to create the most-optimal form of ConstraintInterface from an array of constraint strings~ operator~ operator was inconsistentHow can I help you explore Laravel packages today?