Skip to content

Latest commit

 

History

History
229 lines (155 loc) · 9.85 KB

CHANGELOG.md

File metadata and controls

229 lines (155 loc) · 9.85 KB

Change Log

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