All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.
3.4.3 2024-09-19
- Fixed some type annotations
3.4.2 2024-07-12
- Fixed PHP 5.3 syntax error
3.4.1 2024-07-12
- Fixed normalizeStability's return type to enforce valid stabilities
3.4.0 2023-08-31
- Support larger major version numbers (#149)
3.3.2 2022-04-01
- Fixed handling of non-string values (#134)
3.3.1 2022-03-16
- Fixed possible cache key clash in the CompilingMatcher memoization (#132)
3.3.0 2022-03-15
- Improved performance of CompilingMatcher by memoizing more (#131)
- Added CompilingMatcher::clear to clear all memoization caches
3.2.9 2022-02-04
- Revert #129 (Fixed MultiConstraint with MatchAllConstraint) which caused regressions
3.2.8 2022-02-04
- Updates to latest phpstan / CI by @Seldaek in #130
- Fixed MultiConstraint with MatchAllConstraint by @Toflar in #129
3.2.7 2022-01-04
- Fixed: typo in type definition of Intervals class causing issues with Psalm scanning vendors
3.2.6 2021-10-25
- Fixed: type improvements to parseStability
3.2.5 2021-05-24
- Fixed: issue comparing disjunctive MultiConstraints to conjunctive ones (#127)
- Fixed: added complete type information using phpstan annotations
3.2.4 2020-11-13
- Fixed: code clean-up
3.2.3 2020-11-12
- Fixed: constraints in the form of
X || Y, >=Y.1
and other such complex constructs were in some cases being optimized into a more restrictive constraint
3.2.2 2020-10-14
- Fixed: internal code cleanups
3.2.1 2020-09-27
- Fixed: accidental validation of broken constraints combining ^/~ and wildcards, and -dev suffix allowing weird cases
- Fixed: normalization of beta0 and such which was dropping the 0
3.2.0 2020-09-09
- Added: support for
x || @dev
, not very useful but seen in the wild and failed to validate with 1.5.2/1.6.0 - Added: support for
foobar-dev
being equal todev-foobar
, dev-foobar is the official way to write it but we need to support the other for BC and convenience
3.1.0 2020-09-08
- Added: support for constraints like
^2.x-dev
and~2.x-dev
, not very useful but seen in the wild and failed to validate with 3.0.1 - Fixed: invalid aliases will no longer throw, unless explicitly validated by Composer in the root package
3.0.1 2020-09-08
- Fixed: handling of some invalid -dev versions which were seen as valid
3.0.0 2020-05-26
- Break: Renamed
EmptyConstraint
, replace it withMatchAllConstraint
- Break: Unlikely to affect anyone but strictly speaking a breaking change,
*.*
and such variants will not match alldev-*
versions anymore, only*
does - Break: ConstraintInterface is now considered internal/private and not meant to be implemented by third parties anymore
- Added
Intervals
class to check if a constraint is a subsets of another one, and allow compacting complex MultiConstraints into simpler ones - Added
CompilingMatcher
class to speed up constraint matching against simple Constraint instances - Added
MatchAllConstraint
andMatchNoneConstraint
which match everything and nothing - Added more advanced optimization of contiguous constraints inside MultiConstraint
- Added tentative support for PHP 8
- Fixed ConstraintInterface::matches to be commutative in all cases
2.0.0 2020-04-21
- Break:
dev-master
,dev-trunk
anddev-default
now normalize todev-master
,dev-trunk
anddev-default
instead of9999999-dev
in 1.x - Break: Removed the deprecated
AbstractConstraint
- Added
getUpperBound
andgetLowerBound
to ConstraintInterface. They returnComposer\Semver\Constraint\Bound
instances - Added
MultiConstraint::create
to create the most-optimal form of ConstraintInterface from an array of constraint strings
1.7.2 2020-12-03
- Fixed: Allow installing on php 8
1.7.1 2020-09-27
- Fixed: accidental validation of broken constraints combining ^/~ and wildcards, and -dev suffix allowing weird cases
- Fixed: normalization of beta0 and such which was dropping the 0
1.7.0 2020-09-09
- Added: support for
x || @dev
, not very useful but seen in the wild and failed to validate with 1.5.2/1.6.0 - Added: support for
foobar-dev
being equal todev-foobar
, dev-foobar is the official way to write it but we need to support the other for BC and convenience
1.6.0 2020-09-08
- Added: support for constraints like
^2.x-dev
and~2.x-dev
, not very useful but seen in the wild and failed to validate with 1.5.2 - Fixed: invalid aliases will no longer throw, unless explicitly validated by Composer in the root package
1.5.2 2020-09-08
- Fixed: handling of some invalid -dev versions which were seen as valid
- Fixed: some doctypes
1.5.1 2020-01-13
- Fixed: Parsing of aliased version was not validating the alias to be a valid version
1.5.0 2019-03-19
- Added: some support for date versions (e.g. 201903) in
~
operator - Fixed: support for stabilities in
~
operator was inconsistent
1.4.2 2016-08-30
- Fixed: collapsing of complex constraints lead to buggy constraints
1.4.1 2016-06-02
- Changed: branch-like requirements no longer strip build metadata - composer/semver#38.
1.4.0 2016-03-30
- Added: getters on MultiConstraint - composer/semver#35.
1.3.0 2016-02-25
- Fixed: stability parsing - composer/composer#1234.
- Changed: collapse contiguous constraints when possible.
1.2.0 2015-11-10
- Changed: allow multiple numerical identifiers in 'pre-release' version part.
- Changed: add more 'v' prefix support.
1.1.0 2015-11-03
- Changed: dropped redundant
test
namespace. - Changed: minor adjustment in datetime parsing normalization.
- Changed:
ConstraintInterface
relaxed, setPrettyString is not required anymore. - Changed:
AbstractConstraint
marked deprecated, will be removed in 2.0. - Changed:
Constraint
is now extensible.
1.0.0 2015-09-21
- Break:
VersionConstraint
renamed toConstraint
. - Break:
SpecificConstraint
renamed toAbstractConstraint
. - Break:
LinkConstraintInterface
renamed toConstraintInterface
. - Break:
VersionParser::parseNameVersionPairs
was removed. - Changed:
VersionParser::parseConstraints
allows (but ignores) build metadata now. - Changed:
VersionParser::parseConstraints
allows (but ignores) prefixing numeric versions with a 'v' now. - Changed: Fixed namespace(s) of test files.
- Changed:
Comparator::compare
no longer throwsInvalidArgumentException
. - Changed:
Constraint
now throwsInvalidArgumentException
.
0.1.0 2015-07-23
- Added:
Composer\Semver\Comparator
, various methods to compare versions. - Added: various documents such as README.md, LICENSE, etc.
- Added: configuration files for Git, Travis, php-cs-fixer, phpunit.
- Break: the following namespaces were renamed:
- Namespace:
Composer\Package\Version
->Composer\Semver
- Namespace:
Composer\Package\LinkConstraint
->Composer\Semver\Constraint
- Namespace:
Composer\Test\Package\Version
->Composer\Test\Semver
- Namespace:
Composer\Test\Package\LinkConstraint
->Composer\Test\Semver\Constraint
- Namespace:
- Changed: code style using php-cs-fixer.