You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

9.5 KiB

Change Log

All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.

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

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 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.