1
0
Fork 0
Commit Graph

160 Commits (dd8af946fd89ba0075833a22b3a61a6bcb5095bb)

Author SHA1 Message Date
Nils Adermann 6ef65e5319 Add a new RepositorySet class and restrict pool usage to the solver
Breaking change for the plugin interface so bumping the version of
composer-plugin-api to 2.0.0

First step for a refactoring of the package metadata loading mechanism
2018-09-10 15:27:54 +02:00
Jordi Boggiano c917865fe9 Fix handling of dev versions and consolidate logic, refs #7119 2018-04-13 13:55:02 +02:00
Jordi Boggiano 9041622b86 Fix version guessing regression and a few other issues, fixes #7127 2018-04-12 15:16:39 +02:00
Jordi Boggiano 066351c5b9 Remove use of deprecated getMock method 2018-04-12 10:24:56 +02:00
Jordi Boggiano 842a7ea922 Fix dev-master not being normalized correctly for the root package, fixes #7007 2018-01-22 16:44:17 +01:00
Jordi Boggiano 0a9abeef88 Merge branch '1.5' 2017-12-17 15:05:08 +01:00
Alessandro Lai 54adf0b61e Add regression test about VersionGuesser pretty_version handling 2017-12-17 13:49:07 +01:00
Gabriel Caruso afc9a7643e Use PHPUnit\Framework\TestCase instead of PHPUnit_Framework_TestCase 2017-11-30 13:44:43 -02:00
Jordi Boggiano 5ba6d7d436 Fix pretty guessed versions to show nicely on numeric branches, refs #6845 2017-11-30 15:19:11 +01:00
Jérôme Vasseur 71c2ecbace Fix platform package detection in VersionParser 2017-11-03 19:48:52 +01:00
Jordi Boggiano b07be842a0 Remove feature-branches option as it is misnamed and duplicates the non-feature-branches option, refs #6475 2017-08-07 18:14:04 +02:00
Claus Due 965f1f42d1 Add support for feature-branches setting
A negative list of non-feature-branches names
is already supported - this patch adds a list of
branches names which *will* be considered as
feature branches.

Allows changing the currently hardcoded set of
expected feature branch names, from:

* master|trunk|default|develop

To any set of names or patterns that you desire.
2017-06-11 19:02:51 +02:00
Nicole Cordes d834fcfac5 Change commitHash to match real life examples 2017-04-03 12:00:31 +01:00
Nicole Cordes c0f5a64e81 Use long array sysntax for PHP 5.3 compatibility 2017-03-31 17:09:04 +02:00
Nicole Cordes c2fe198ebc Re-add unit test for FETCH_HEAD parsing 2017-03-31 15:37:39 +02:00
Nicole Cordes 313e6b914d Fix Git branch parsing for detached HEAD on a commit
Current versions of Git output the commit hash as detached HEAD instead
of FETCH_HEAD. The VersionGuesser should be able to handle commit hashes
as well as FETCH_HEAD to detect the correct branch of a commit.
2017-03-31 15:02:50 +02:00
Jordi Boggiano 843877cd6d Fix hg version guessing, fixes #6236, fixes #6235 2017-03-08 17:12:13 +01:00
Filippo Tessarotto 04b1ddb79f VersionGuesser test for HG 2017-03-08 16:10:12 +01:00
Jordi Boggiano e54c7478ee Attempt at fixing support for git 2.11, refs #5942 2016-12-07 01:02:55 +01:00
Rob Bast 873f17261c
try to fix test instead of guarding implementation 2016-12-01 14:03:20 +01:00
Rob Bast 9f2bd34c87
test copied from #5724 2016-09-27 17:39:44 +02:00
Jordi Boggiano 6146f7aded Take into account prefer-stable and dev packages when computing outdated, refs #5251 2016-04-28 22:38:38 +01:00
Jordi Boggiano 2dcd76aa43 Fix test suite 2016-02-25 14:24:27 +00:00
Sash 582e361a88 Fixing array accessing 2016-02-22 21:47:33 +00:00
Sash f6899e5c38 #4828 Using version guesser to pull out the commit has for git repositories. The return value is now an array with version and commit values. 2016-02-22 21:19:01 +00:00
Jordi Boggiano 966a982738 CS fixes 2015-11-21 19:28:10 +00:00
Jordi Boggiano 4b269f4ded Follow stability option in create-project to select the best possible version, refs #4563 2015-11-14 15:04:04 +00:00
Jordi Boggiano 507415e404 Make VersionSelector prefer stable by default and allow specifying a PHP version that must be matched, fixes #4318 2015-10-27 14:43:04 +00:00
Rob Bast a1427d7fd6 replace all occurences in code and comments 2015-09-24 16:32:36 +02:00
Rob Bast 1ccfc8eb96 add semver, deprecated existing classes 2015-09-24 16:28:28 +02:00
Jordi Boggiano 89c6a68a76 Updates to path repository and path downloader, refs #4365 2015-09-12 22:28:03 +01:00
Samuel ROZE bb81e3721a Move the `proc_open` test in setUp 2015-08-25 09:19:10 +01:00
Samuel ROZE dfccb686ce Replace usage of brackets by legacy array notation 2015-08-18 15:16:15 +01:00
Samuel ROZE 5261a5fa03 Move version guessing in `VersionGuesser` class 2015-08-18 14:58:18 +01:00
Kunal Mehta 14d1f0f3f6 Move VersionParser::parseLinks() to ArrayLoader::parseLinks()
Working towards #3545.

parseLinks is a wrapper around VersionParser::parseConstraints() that
creates Link objects, and better belongs in ArrayLoader.
2015-07-03 19:35:54 -07:00
Kunal Mehta f634c6946d Update callers of VersionParser::formatVersion()
Tests were moved to BasePackageTest.
2015-07-02 00:06:56 -07:00
Kunal Mehta 99dab8aebd Move VersionParser::formatVersion() to BasePackage::getFullPrettyVersion()
Working towards #3545.

formatVersion() does not belong in VersionParser since it depends upon a
Package object, and is creating a more complete pretty formatted
version, not parsing anything.

The new getFullPrettyVersion() method can be seen as an extension to
getPrettyVersion(), and is located in BasePackage as a result.

Callers to VersionParser::formatVersion() were not updated in this
commit to demonstrate that no functionality was changed in this
refactor. They will be updated in a follow up commit.
2015-07-01 23:54:08 -07:00
Sam Minnee 2cd698874f Include pre-releases in >=2.3.0 comparison. Fixes #4080.
This is a change to the >=2.3.0 comparison. Without this change, such a
comparison will exclude pre-release versions.

The rationale is that this makes the comparison more consistent with
<2.3.0 (which excludes all pre-releases) and ~2.3.0 (which includes
pre-releases).
2015-06-30 13:10:20 +01:00
nevvermind 12c833864c Revert converting `1.0.0` to `^1.0`. 2015-06-08 22:45:20 +01:00
nevvermind eb2aa14830 Make plugins have actual constraints instead of fixed versions
Instead of developing plugins against a single, fixed Plugin API version - `"composer-plugin-api": "1.0.0"`, this change will allow plugin developers to use versions like `"composer-plugin-api": "~1.1"` or `"composer-plugin-api": ">=2.1 <3.0"`, aka actual Composer-compatible constraints.

Only the "1.0", "1.0.0" and "1.0.0" Plugin API versions will be regarded as BC versions, and internally converted to "^1.0"; every other declared version string will be kept as it is.

Because of this new constraint flexibility, plugin version mismatches will be skipped, which means those plugin will NOT be registered to the system. Previously, a mismatch triggered a warning, but plugins were still registered.
2015-06-02 14:10:09 +01:00
Rob Bast 46e0a506b9 Added another testcase + fix 2015-06-02 14:20:48 +02:00
Rob Bast a256f3dfca Added one failing testcase and one successful
Demonstrates that it handles x.y.z properly as long as z !== 0
2015-06-02 14:03:45 +02:00
Jordi Boggiano 4ce0adb23c Use the caret operator for all require operations 2015-04-29 23:53:40 +01:00
Jordi Boggiano 43c1caad0d Merge remote-tracking branch 'Seldaek/caret-op-for-semver'
Conflicts:
	tests/Composer/Test/Package/Version/VersionSelectorTest.php
2015-04-29 23:49:27 +01:00
Jordi Boggiano cd38d1e096 Tweaks to also support 1.0-dev style aliases, refs #3480 2015-01-20 10:26:10 +00:00
Damian Mooyman 7bb85ff21e Support aliases for numeric branches. Fixes #3461 2015-01-20 17:42:01 +13:00
Jordi Boggiano d4523119ea Use caret operator for 0.x releases when guessing versions, fixes #3518 2014-12-08 17:05:50 +00:00
Jordi Boggiano 06e96a78e2 Update ranges for 0.N versions, refs #3518 2014-12-08 17:04:59 +00:00
Jordi Boggiano 9438f3a58f Use better semver ranges for 0.x versions, fixes #3518 2014-12-08 16:57:27 +00:00
Jordi Boggiano 92f4c1fb35 Allow and ignore semver build metadata, fixes #2422 2014-12-08 15:52:32 +00:00
Jordi Boggiano f363f9d370 Add support for caret (^) operator 2014-12-08 15:39:52 +00:00
Jordi Boggiano ebab9db27a Add support for hyphen ranges 2014-12-08 13:44:42 +00:00
Jordi Boggiano 69ef80124f Add support for capital X in 3.X and || for OR 2014-12-08 12:59:01 +00:00
Jordi Boggiano 4c713978e9 Add more tests and validate that there is only one comma 2014-12-07 18:07:30 +00:00
Jordi Boggiano ca168d478b Spaces are now equivalent to comma in constraints and mean AND 2014-12-07 18:07:29 +00:00
Jordi Boggiano 029f709300 Fix parsing stability suffixes in multi constraints, fixes #1732 2014-12-07 17:46:04 +00:00
Jordi Boggiano 95d49ce638 Add additional test for beta without dash separator support, fixes #3331 2014-10-06 12:42:19 +01:00
Jordi Boggiano e6165e6495 Tweak rules to allow guessing based on branch aliases and avoid greedy constraints on alpha/beta/RC packages, refs #3096 2014-09-23 15:19:23 +01:00
Jordi Boggiano cf75ec7763 Merge remote-tracking branch 'weaverryan/require-version-select' 2014-09-22 17:48:13 +01:00
François Pluchino 6c6a623229 Fix invalid version format 2014-09-22 11:58:26 +02:00
Ryan Weaver 895e62e859 Refactoring selection of the "recommended" version (e.g ~1.2) and adding some tests
This also modifies the behavior slightly (from a recommendation by seldaek) to always
propose the minor version of the recommendation (e.g. ~1.2 instead of ~1.2.1).
2014-09-12 11:26:51 -04:00
Ryan Weaver aea2e901a9 Extracting logic into a new class related to selecting the latest version
Also refactored InitCommand slightly so that you can use this "latest version"
functionality when searching for a package as well.
2014-09-12 11:26:51 -04:00
Jordi Boggiano ac497feaba CS fixes 2014-06-10 16:13:12 +02:00
Jordi Boggiano 80499bb024 Detect ~> misuse and suggest fix, fixes #2476 2013-12-06 13:32:19 +01:00
Jordi Boggiano f59f443fce CS fixes and one more test for safety, fixes #1855 2013-08-12 02:22:32 +02:00
Sam Minnee 324ef0f9bb Fixed upper bound of wildcard matches.
Follow-on from 95b4348afa
2013-05-20 19:10:04 +12:00
Sam Minnee 95b4348afa Fixed lower bound of tilde and wildcard matches.
The lower bound of ~1.2 and 1.2.* style version requirements now uses >= 1.2.0.0-dev instead of
> 1.1.9999999.9999999.  This is more straightforward to read, and behaves equivalently.
2013-05-20 19:03:21 +12:00
Sam Minnee 34a21516c8 Fix tilde constraints without a stability suffix to work like wildcard constraints.
With this fix, a tilde constraint such as ~3.1 won't match unstable versions of 3.1,
but a wildcard constraint such as 3.1.* would.  This seems like a confusing
inconsistency, and so I have corrected it.
2013-05-13 11:04:15 +12:00
Jordi Boggiano 9d948eb795 Merge branch 'disjunctive' 2013-05-04 10:48:14 +02:00
Jordi Boggiano 0cccafbe81 Add disjunctive multi-constraints with |, refs #643, fixes #1342 2013-04-27 15:20:35 +02:00
Jordi Boggiano e16caa9bd7 Add EmptyConstraint 2013-04-27 14:32:22 +02:00
Jordi Boggiano 1f79f36227 Add a couple version parser tests 2013-04-04 17:35:55 +02:00
Christian Riesen 6f5ab3ed5c Add other valid versions to test for stability 2013-02-25 16:51:01 +01:00
Jordi Boggiano 97dfbefa72 Add support for arbitrary values for the references in version constraints 2013-02-13 13:26:27 +01:00
Jordi Boggiano 908d2d91da Fix case insensitive matching 2013-02-11 11:52:50 +01:00
Jordi Boggiano cea4c05021 Fix parsing of ~ version constraint with unstable versions, fixes #1476 2013-01-13 16:36:40 +01:00
Jordi Boggiano a59a5c4581 Merge remote-tracking branch 'simensen/sem-version-support' 2012-10-19 13:55:47 +02:00
Beau Simensen 081ead1635 Version Parsing: Consider <x.y.z to be <x.y.z-dev
> Consider `<x.y.z` to be `<x.y.z-dev.` Because in 99%
> of the cases that's what the intent is. Could be
> overriden with `<x.y.z-stable`.

- @Seldaek

refs #643
2012-10-08 10:44:37 -07:00
Beau Simensen 96a76eeffc Semantic Version Parsing: ~version
Implemented `~` according to #643 and used the following versions
as a test case as defined by @Seldaek:

 * "~1.2.3.4" = ">=1.2.3.4 <1.2.4.0-dev"
 * "~1.2.3" = ">=1.2.3 <1.3.0-dev"
 * "~1.2" = ">=1.2.0 <2.0.0-dev"
 * "~1" = ">=1.0.0 <2.0.0-dev"

Refs #643
2012-10-06 07:49:11 -07:00
Jordi Boggiano 62bb5b339b Allow parsing of stability modifiers combined with multi-constraints 2012-10-05 19:05:39 +02:00
Jordi Boggiano 0932f65a17 Return 7 chars and not 6 for short git hashes, formatting fixes 2012-09-04 16:27:22 +02:00
Jordi Boggiano 338730b19b Merge remote-tracking branch 'zczapran/issue/1043_wrong_output_for_versions_when_updating' 2012-09-04 16:22:29 +02:00
Jordi Boggiano e01a9c564d Fix parsing of stability for lowercased RC versions 2012-09-04 15:59:44 +02:00
Zbigniew Czapran 730f206cea removed unneccesary PackageMock and trailing whitespaces 2012-08-30 23:44:54 +01:00
Zbigniew Czapran 80c2736021 in VersionParser only truncate the version if hash 2012-08-30 22:01:21 +01:00
Jordi Boggiano fe15c6a827 Make dev version matches preserve the proper case, fixes #935 2012-08-11 18:34:01 +02:00
Alexey Prilipko 75d3d57117 Version parser stability regexp update 2012-07-10 21:50:58 +11:00
Alexey Prilipko e130386612 Add '<>' operator for Version Parser 2012-06-19 12:11:11 +11:00
Nils Adermann 41215a0e47 Require first version of a root package alias, rather than alias
This makes sure that the alias will always be installed, even if it isn't
technically needed.
2012-05-24 23:29:08 +02:00
Jordi Boggiano c10eb66ac4 Ignore references when parsing dev versions 2012-05-17 04:07:15 +02:00
Jordi Boggiano ef28f3b067 Basic handling of stability flags 2012-05-09 19:10:06 +02:00
Jordi Boggiano 70a3c68f73 Add package stability 2012-05-09 19:10:01 +02:00
Jordi Boggiano 595182aec0 Add/fix tests 2012-04-13 02:47:55 +02:00
Jordi Boggiano 8654c43c62 Fix version parser regression, fixes #550 2012-04-09 16:00:02 +02:00
Jordi Boggiano f604ca5762 Allow .x in version constraints as alias for .* 2012-04-08 17:02:43 +02:00
Martin Hasoň 736ea800e3 Added isDev method to the VersionParser class 2012-03-03 19:49:24 +01:00
Jordi Boggiano 1213067d96 Add test 2012-02-22 09:40:15 +01:00
Jordi Boggiano 59d2b1145c Add lock file alias support and a bunch of fixes 2012-02-21 16:44:49 +01:00
Jordi Boggiano 82054f2060 Add aliasing: `foo as bar` will require foo and automatically make it replace the bar version 2012-02-21 14:03:24 +01:00
Jordi Boggiano ae7107fc22 Add more test requirements 2012-02-19 16:57:28 +01:00