Change Log
All notable changes to this project will be documented in this file.
This project adheres to Semantic Versioning.
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
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
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 to dev-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 with MatchAllConstraint
- Break: Unlikely to affect anyone but strictly speaking a breaking change,
*.*
and such variants will not match all dev-*
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
and MatchNoneConstraint
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
and dev-default
now normalize to dev-master
, dev-trunk
and dev-default
instead of 9999999-dev
in 1.x
- Break: Removed the deprecated
AbstractConstraint
- Added
getUpperBound
and getLowerBound
to ConstraintInterface. They return Composer\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 to dev-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
1.4.0 2016-03-30
1.3.0 2016-02-25
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 to Constraint
.
- Break:
SpecificConstraint
renamed to AbstractConstraint
.
- Break:
LinkConstraintInterface
renamed to ConstraintInterface
.
- 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 throws InvalidArgumentException
.
- Changed:
Constraint
now throws InvalidArgumentException
.
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
- Changed: code style using php-cs-fixer.