Jordi Boggiano
cbef7b9172
Detect and output a better hint for dependencies on the root package, fixes #9837
3 years ago
Jordi Boggiano
44e6591573
Improve error reporting for exts overridden by platform config, fixes #9876
3 years ago
Jordi Boggiano
298246dccb
Also condense dev-* versions if there are many, refs #9850
3 years ago
Jordi Boggiano
9b7a8d4543
Hint at a branch rename if we detect dev-master can not be found but dev-main or dev-default exists, fixes #9850
3 years ago
Jordi Boggiano
549dabf878
Merge branch '2.0'
3 years ago
Jordi Boggiano
e6cede4a61
Make sure update mirrors/--lock keeps the release date of the original reference when dev versions have newer commits, refs #9812
3 years ago
Jordi Boggiano
f10ae542ff
Always mark symlinked path packages for update even during partial updates to make sure they always reflect the current state on disk, fixes #9751
3 years ago
Jordi Boggiano
5d6f9b2528
Prefer @phpstan- annotations as that is what we run against
3 years ago
Jordi Boggiano
4940009f83
Bump phpstan to level 3 ( #9734 )
...
Clean up PackageInterface/CompletePackageInterface, add missing methods, type things in solver as BasePackage, added CompleteAliasPackage, ..
3 years ago
Jordi Boggiano
8392508e23
Merge branch '2.0'
3 years ago
Jordi Boggiano
ab84916422
Fix unclear error when a package can be found in lock but not in the remote repo, fixes #9750
3 years ago
Jordi Boggiano
40800df6bd
Fix CS
3 years ago
Arnaud Vanwambeke
7402ef33fc
Dont recommend to use with all dependencies option when it is already used
3 years ago
Jordi Boggiano
7f3a56f39b
Merge pull request #9360 from naderman/pool-builder-unlock-consider-all-constraints
...
PoolBuilder: Ensure versions matching locked constraints get loaded
4 years ago
Jordi Boggiano
d00edab884
Merge pull request #9477 from naderman/fix-alias-conflicts
...
Explicit conflicts should conflict with aliases of packages too
4 years ago
Nils Adermann
7197278fe9
Always install aliases together with their original package
...
Restores some Composer 1.x behavior like unbound constraints conflicting
with default branches unless they are branch aliased.
Simplifies conflicts with aliases because packages cannot be installed
without their aliases, so we do not need to know which aliases are
uninstalled in lock file or installed.json.
4 years ago
Jordi Boggiano
b7d770659b
CS fixes
4 years ago
Andrés De la Cruz
480a6439fd
Fix phpstan phpdocs issues ( #9478 )
4 years ago
Nils Adermann
d19b858e20
Improve decisions debug output
4 years ago
Nils Adermann
780e6fc027
Avoid creating unnecessary conflict rules for provide/replace of aliases
4 years ago
Nils Adermann
3764b3007d
Explicit conflict rule generation needs to use pool->whatProvides
...
If relying on packages added by name in the generator aliases will be
skipped.
4 years ago
Nils Adermann
27f200caf1
Create ROOT_ALIAS rules inside package rule generation
4 years ago
Nils Adermann
4215344c93
Rule generator cleanup: no need for 2 added package arrays, more specific root alias rule
4 years ago
Jordi Boggiano
b7e1383083
Make sure the alias package gets added to conflict rules etc, and only add it if aliased package is actually added
4 years ago
Jordi Boggiano
7b183956d8
Make sure the root aliases always get installed when a package is updated, fixes #9448
4 years ago
Nils Adermann
2d91fbc65a
PoolBuilder: never mark skipped packages for loading
...
Reorder code in loadPackage to avoid duplicate calls
4 years ago
Nils Adermann
7ddd1c64af
PoolBuilder: On unlock ensure consider all locked requirements for unlocked package
4 years ago
Nils Adermann
7dc67fbbad
Problem: Update fallback error message for requires without matches
4 years ago
Jordi Boggiano
769ce48289
Fix typo
4 years ago
Jordi Boggiano
e770cb4dcf
Fix var name
4 years ago
Jordi Boggiano
2d4e1e0dce
Make sure Transaction sorts operations correctly to begin with
4 years ago
Jordi Boggiano
b74afd772b
Merge pull request #9309 from naderman/fix-solver-9290
...
MultiConflictRule conflict analysis handling on level 1 decisions
4 years ago
Nils Adermann
9338401be7
CS: Typehint array, remove unnecessary docblock, call spl_object_hash once
4 years ago
Nils Adermann
7b4cb9c370
Solver: Prevent infinite recursion in analyzeUnsolvableRule
...
In complex scenarios reasons for learned rules can themselves be learned
rules caused by other learned rules which had the some of the same
reasons. In this situation iterating over all problem rules requires
keeping track of which rules have previously been analyzed to avoid and
endless loop.
Side effect is that the sorting of problems including learned rules
changes slightly.
4 years ago
Nils Adermann
9641ad6025
SolverProblemException: Hide learnt rules on output
...
Results in too much error output which is not helpful. Very repetitive
and hard to understand. In issue 8903 even leads to endless recursion
bug.
4 years ago
Nils Adermann
7f41698157
Solver: on analyze, when reaching last decision > l1 skip other multi rule literals
4 years ago
Jordi Boggiano
99a5469b5e
More hints
4 years ago
Jordi Boggiano
59acf9d4aa
Remove dev hint for 2.0, fixes #8738
4 years ago
Jordi Boggiano
8d0596163c
Rename abstract class back to the previously present SolverOperation, mark it internal, reintroduce some duplication
4 years ago
Bezpiatov
140de5480d
Fixed variable usage
4 years ago
Bezpiatov
9a5121ed27
Refactor Operation classes to use constants instead of strings for comparison
4 years ago
Nils Adermann
8a2bae82ab
Improve docblocks on fixed/locked/fixedLocked packages in request
...
Also fixes two small code review issues
4 years ago
Nils Adermann
fdde9e5933
On composer install we fix locked packages, but consider them locked for error reporting
4 years ago
Nils Adermann
74fb313c39
Separate locked packages from fixed packages in request
...
Locked packages are basically like removable fixed packages, so we still
only load one version, but we do not require their installation unless
something the user needs requires their use. So they automatically get
removed if they are no longer needed on any update.
4 years ago
Nils Adermann
73e24ea9fb
Partial updates should remove all unused dependencies
...
Instead of marking locked packages as fixed, we change the pool builder
to load only the locked version and treat it like a fixed package, but
removing the actual request fix, makes the solver treat it as a regular
optional dependency. As a consequence locked packages may be removed on
a partial update of another package, but they cannot be updated.
4 years ago
Nils Adermann
85eb007f4f
Transaction: Define a total order on packages to keep behavior on PHP8
...
So far the ordering of alias packages with the same name was undefined
so the actual order was determined by implementation of the sorting
algorithm in PHP. As of PHP8 sort is stable by default which changes the
outcome in some of our test cases.
With the fully defined total order the order can longer change depending
on sorting algorithm used and remains the same across PHP versions.
4 years ago
Jordi Boggiano
24abd233ec
Merge branch 'master' into code-improvements
4 years ago
Jordi Boggiano
09ef026d43
Remove OperationInterface::getReason, closes #9230 , closes #9263
4 years ago
Simon Berger
2223b93efd
Several small code improvements
4 years ago
Simon Berger
80d71ccb3f
Merged isset, unset and str_replace calls
4 years ago
Simon Berger
974e7ba296
Removed unneccesary elseifs
4 years ago
Simon Berger
33d7a64df9
Removed unused private functions
4 years ago
Simon Berger
a6475a7118
Removed unused variables, properties and parameters of private functions
4 years ago
Simon Berger
002fd39bc6
Removed passing of parameters with default value
4 years ago
Markus Staab
cf9786f112
Improve error message further
4 years ago
Jordi Boggiano
6cf4ba051c
Update messaging about plugin errors
4 years ago
Simon Berger
bae227ec2d
Changed all substr calls used to compare fragments of text to strpos
...
Some additional code cleanups in those classes
Reverted change causing issues
4 years ago
Jordi Boggiano
199696d120
Fix undefined method call
4 years ago
Jordi Boggiano
b159e4da7e
Merge pull request #9172 from Toflar/platform-repo-cleanup
...
Consistently reuse new PlatformRepository::isPlatformPackage()
4 years ago
Yanick Witschi
bd6f62c535
Consistently reuse the new PlatformRepository::isPlatformPackage() method
4 years ago
Nils Adermann
4ac9f44571
Clear up PoolBuilder comment after code move
4 years ago
Nils Adermann
7b990f3767
PoolBuilder: Move merging of constaints to be loaded into relevant section
4 years ago
Nils Adermann
b2670945bd
PoolBuilder: clear up comment, matching and identity are different for constraints
4 years ago
Yanick Witschi
a1e1cd8fa4
Do not trigger Intervals::isSubsetOf() over and over again for platform packages
4 years ago
Jordi Boggiano
9a04ecefbf
Merge branch 'master' into filter-packages
4 years ago
Jordi Boggiano
f516d36f6f
Make sure Request::requireName can not be called twice for the same name
4 years ago
Jordi Boggiano
448daea696
Add support for detecting packages not matching only due to minimum stability
4 years ago
Oleg Andreyev
f262feebec
fixing error message for higher repository priority, when higher repo has only a dev-branch
4 years ago
Jordi Boggiano
00e268cdbf
Clear Intervals cache when we are done with it
4 years ago
Jordi Boggiano
2d3905157d
Merge branch '1.10'
4 years ago
Tyson Andre
e5c7835d57
Properly support PHP 8.0 Named Arguments
...
See https://wiki.php.net/rfc/named_params#internal_functions
(implemented but not yet merged)
An ArgumentCountError will be thrown when passing variadic arguments to
a function with call_user_func_array() if extra unknown named arguments
are encountered.
Fatal error: Uncaught ArgumentCountError: array_merge() does not accept unknown named parameters in phar:///path/to/composer.phar/src/Composer/DependencyResolver/DefaultPolicy.php:84
(e.g. for `['phpunit/phpunit' => [72]]`)
4 years ago
Jordi Boggiano
071350286f
Compact constraints to avoid ending up with very long multi constraints
4 years ago
Jordi Boggiano
22367a68f9
Avoid loading same packages multiple times
4 years ago
Yanick Witschi
6ba0f3adf9
Merge branch 'master' into filter-packages
...
* master: (59 commits)
Update deps
Reuse repository manager and others directly from the Composer instance, refs #9057
Fix usage of create-project with local filesystem repos
Fix return value
Add support for multiple --repository additions in create-project, and make --add-repository delete the lock file, fixes #8853
Remove cygwin php handling in UAC elevation
Clean up a little to make impl less invasive and to handle replacers/providers
Supply event dispatcher in Create Project Command
Avoid attempting to use /etc/xdg as base config home, fixes #9053 , refs #9045
Create an issue @ Docker repository on tag
Mark transaction classes internal, refs #8827
Prepare 1.10.9 release
Remove highest/lowest builds for 1.10 maintenance branch
Fix bitbucket detection of redirects to login page, fixes #9041
Fix doc comment
Fixed spelling mistake
Add Windows UAC elevation to self-update command
GitLab: clarify interactive auth prompt
Improve support for XDG and default to XDG config dir if both that and ~/.composer are available, fixes #9045
Fix #9033 - inconsistent behavior with minor-only flag
...
4 years ago
Jordi Boggiano
89d35af83d
Mark transaction classes internal, refs #8827
4 years ago
Nils Adermann
3f5dde9873
Solver: Ensure multi conflict rules still get added to learned pool
4 years ago
Nils Adermann
edef748169
Solver: Clarify when/why undecided literals can get skipped in analyze
4 years ago
Nils Adermann
851050e85c
Solver: multiconflict analyze handles positive decision same as regular literal
4 years ago
Nils Adermann
6e05345be7
Solver: Move analyze handling of multiconflict rule to clearer location
...
This way we're not looking at the previous decision at the top of the
loop but working with the current decision at the bottom
4 years ago
Nils Adermann
b34f916470
Solver: No need to check previous decision if we reached the first one
4 years ago
Nils Adermann
2631210493
Solver: analyze multi conflict rules in conflict resolution correctly
4 years ago
Jordi Boggiano
6f9b39180c
Add phpdocs
4 years ago
Jordi Boggiano
05dacbdabb
Rename DEV_MASTER_ALIAS to DEFAULT_BRANCH_ALIAS
4 years ago
Yanick Witschi
ea0ce9dd7d
Merge branch 'master' into filter-packages
4 years ago
Nils Adermann
edd2aa27db
Add missing isVerbose argument to problem formatting call
4 years ago
Jordi Boggiano
83c64a9d19
Reuse operation formatting logic in downloaders
4 years ago
Jordi Boggiano
5aae7f4f20
Merge remote-tracking branch 'jderusse/optimize-compile'
4 years ago
Jordi Boggiano
a797ee1322
Fix inline aliases not being loaded when extracting dev requirements, fixes #8954
4 years ago
Graham Campbell
fa799970ad
Replace whitelist with allow list
4 years ago
Jordi Boggiano
2fa58ccf96
Reduce amount of packages loaded by avoiding extensions of the constraint beyond the root constraint
4 years ago
Jordi Boggiano
4b9b499ce5
Fix issue loading aliases and fix markPackageNameForLoading when called twice in a row for same package it would overwrite the constraint the second time
4 years ago
Jordi Boggiano
f2befc46c9
Avoid storing duplicate packages when loading the same package twice
4 years ago
Jordi Boggiano
67a88880ec
Get rid of EmptyConstraint
4 years ago
Jordi Boggiano
cb19347031
Update to latest master
4 years ago
Yanick Witschi
b6c436598b
Updated to latest semver intervals
4 years ago
Yanick Witschi
6ef47baca1
Added a todo for package dupes
4 years ago
Yanick Witschi
014e9d5dd1
Fixed last remaining pool builder test
4 years ago
Yanick Witschi
5097ed6480
Fixed another test
4 years ago
Yanick Witschi
5a835db24d
Fixed another partial update test
4 years ago
Yanick Witschi
7be24dccd9
Fixed some of the partial update tests
4 years ago