Jordi Boggiano
892eaacedf
Optimize show -a by loading only the requested package ( #11659 )
...
Fixes #11648
2023-09-27 11:28:33 +02:00
Dezső BICZÓ
57a48df34e
Support advisories from multiple repositories for the same package ( #11436 )
2023-05-07 15:12:04 +02:00
Jordi Boggiano
131da999ac
Fix CS ( #11003 )
2022-08-17 14:20:07 +02:00
Jordi Boggiano
efd426f8bb
Extract some common logic for filtering away dev requirements into a RepositoryUtils
2022-06-30 15:05:34 +02:00
Jordi Boggiano
8c9f82dc1e
Move security advisory loading to repositories, allows others to provider them and reduces load on packagist.org for summary advisory reports
2022-06-24 16:26:57 +02:00
Jordi Boggiano
556450b15b
Allow using temporary update constraints on all packages (incl non-root), fixes #10436 ( #10773 )
2022-05-27 14:51:46 +02:00
Jordi Boggiano
6a466a120a
Enable strict types on all files
2022-02-24 13:24:34 +01:00
Jordi Boggiano
0db443ba5f
Add visibility to all consts, fixes #10550
2022-02-23 14:28:04 +01:00
Jordi Boggiano
6da38f83a0
Add parameter types to all the things
2022-02-22 16:48:53 +01:00
Jordi Boggiano
eda9014bef
Add return types to all code which is not being extended by open source packages
2022-02-18 14:32:38 +01:00
Jordi Boggiano
a16ed3d0ed
Add return types to private/internal methods
2022-02-18 11:22:01 +01:00
Jordi Boggiano
abdc6893a6
Add void types where no return statement is present
2022-02-18 10:38:54 +01:00
Jordi Boggiano
86fb8d4412
Fix CS
2022-02-18 08:50:11 +01:00
Yanick Witschi
34183f49f9
Implemented PoolOptimizer
2021-11-11 16:13:24 +01:00
Jordi Boggiano
44b69ba77f
Upgrade php-cs-fixer to 3.x and fix CS
2021-10-27 16:21:45 +02:00
Anatoly Pashin
b1a96a3141
PHPStan level 6 in src/Composer/Repository ( #10197 )
2021-10-25 12:58:31 +02:00
Jordi Boggiano
01d734125c
Add more type info
2021-08-30 17:45:35 +02:00
Jordi Boggiano
d3c176ec69
PHPStan Level 5 ( #10070 )
...
* Bump PHPStan to level 5
* Update seld/phar-utils to latest
* Add phpstan-setup / phpstan scripts
2021-08-21 17:41:52 +02:00
Jordi Boggiano
5d6f9b2528
Prefer @phpstan- annotations as that is what we run against
2021-03-10 10:52:16 +01:00
Jordi Boggiano
4940009f83
Bump phpstan to level 3 ( #9734 )
...
Clean up PackageInterface/CompletePackageInterface, add missing methods, type things in solver as BasePackage, added CompleteAliasPackage, ..
2021-03-09 15:49:40 +01:00
Jordi Boggiano
b7d770659b
CS fixes
2020-11-22 14:52:39 +01:00
Jordi Boggiano
14ec957e96
Fix composer show -a usage, fixes #9304
2020-10-20 17:34:07 +02:00
Yanick Witschi
bd6f62c535
Consistently reuse the new PlatformRepository::isPlatformPackage() method
2020-09-01 17:19:19 +02:00
Oleg Andreyev
f262feebec
fixing error message for higher repository priority, when higher repo has only a dev-branch
2020-08-22 20:07:13 +03:00
Graham Campbell
643852a2b0
Marked getRootAliasesPerPackage as static
2020-06-16 13:48:59 +01:00
Jordi Boggiano
a797ee1322
Fix inline aliases not being loaded when extracting dev requirements, fixes #8954
2020-06-16 13:50:29 +02:00
Jordi Boggiano
a695f686c3
Add some docblocks and make sure RepositorySet/PoolBuilder accept regular rootAliases and not pre-normalized ones
2020-04-08 11:46:06 +02:00
Nils Adermann
c270d3cfa6
PoolBuilder: make io non-nullable, NullIO can be used instead
2020-04-01 15:27:51 +02:00
Nils Adermann
01fe92905a
The update allow list is now generated while building the pool
...
This reduces code complexity while making partial updates more
predictable. This also allows composer require to successfully run a
partial update for a new package with transitive dependency updates.
2020-03-27 21:41:49 +01:00
Jordi Boggiano
08cee4c3e9
Implement getProviders equally on all repos
2020-03-12 15:39:26 +01:00
Nils Adermann
ee8df484c4
Separate createPool and createPoolWithAllPackages, fix test description
2020-03-12 13:17:04 +01:00
Nils Adermann
281d8930ff
For dev extraction skip pool building, we already have a working package set
...
Also reduce getProviders back to just providers, and add some todos
2020-03-12 12:19:46 +01:00
Nils Adermann
1f467046d7
Implement getProviders on reposet for all repo types and add replacers
...
This way errors during require dev extraction make more sense
2020-03-11 17:38:16 +01:00
Jordi Boggiano
9c84f4d79f
Make sure InstalledRepository itself can be added too but requires allowing installed repos in reposet
2020-03-11 17:02:25 +01:00
Jordi Boggiano
2d8a8ed7e3
Add InstalledRepository to clean up some concepts and usages, remove BaseRepository
2020-02-13 21:44:24 +01:00
Jordi Boggiano
835a91532d
Add PRE_POOL_CREATE event, fixes #8348
2020-02-12 10:41:04 +01:00
Jordi Boggiano
2f4ea3a463
Fix show command, refactor RepositorySet constructor
2020-01-30 20:21:17 +01:00
Jordi Boggiano
c41df325d8
Remove RepositorySet from Solver and remove getPool from RepositorySet
2020-01-30 15:23:22 +01:00
Jordi Boggiano
29efc473a1
Suggest which providers could be required to fulfill a virtual package requirement, fixes #2811
2020-01-30 14:43:55 +01:00
Jordi Boggiano
3fc7e10c5c
Improve error reporting of solver issues, refs #7779
...
Fixes #8525
Fixes #6513
2020-01-30 14:43:54 +01:00
Nils Adermann
0b4e8952f6
PHP5 disallows require as a function name, use requireName analog to fixPackage
2020-01-19 23:28:00 +01:00
Nils Adermann
5bdc0fc9c5
Request jobs replaced by root require / fixed package
...
The only type of request job remaining was "install" which is really a
root requirement. The only other kind of input for the solver is now a
set of fixed packages.
Rules have been updated to account for only two kinds of former job
reason: FIXED or ROOT_REQUIRE. The job property has always been
redundant and has been removed, since reasonData suffices.
Problem reasons are always rules, so the unnecessary wrapping in an
array has been removed.
We now only ever generate a single rule per root require or fixed
package, so there is no need for the solver to special handle disabling
"jobs" anymore, the rule can just be disabled as usual.
For consistency special handling of rules for jobs in problems has been
integrated into the rule class like all other rule reasons. As part of
this change the error message for root requirements has been improved a
bit to make it clearer where the package installation request came from.
The word job has also been removed from operations, which are called
operations, not jobs.
2020-01-19 23:21:07 +01:00
Jordi Boggiano
304753ff69
Remove callback and pass stabilities all the way instead
...
This allows optimizing the loading of ~dev files, and cleans up a few things
2020-01-17 14:57:32 +01:00
Jordi Boggiano
e50f78043a
Try to load packages from lock file only and avoid loading other versions for pinned packages
2020-01-17 12:20:03 +01:00
Jordi Boggiano
dd556f989b
Use LockArrayRepository instead of RepositoryInterface to clearly indicate which type of repo it is in some places
2020-01-15 14:56:58 +01:00
Jordi Boggiano
f68731e663
Remove package/repo priority concept as it is enforced by the pool builder now
2020-01-15 14:52:44 +01:00
Yanick Witschi
d1dc367d86
Removed the filters from the pool
2019-11-27 17:57:24 +01:00
Nils Adermann
f1e4ccbe1d
Fix handling of reference updates and root references
2019-09-07 01:58:12 +02:00
Nils Adermann
c875f538ea
Make root alias behaviour consistent, add root ref handling, lock to newest metadata
...
root aliases during install should come from the lock file only, for
better reproducibility we don't reuse the value from update for the
following install
2019-02-14 17:57:29 +01:00
Nils Adermann
c0f19f6c57
Move construction of pool from repo set into a pool builder
...
Pool construction depends on the install request now, so only required
packages get loaded, add some structure for future asynchronously
loading composer repositories
2018-09-12 11:49:09 +02:00