Nils Adermann
80a5fdf398
Remove obsolete rules and their generation
...
The only automatic conflict we have results from packages using the same name
either by literally having the same name and being different versions or they
replace the same name, so
- removed all types of obsolete rules
- simplified rule generation significantly
- got rid of provide filtering in the pool
- fixed some language in error handling
2020-04-07 11:11:18 +02:00
Nils Adermann
4e3d989978
A package providing a name should not conflict with a package replacing it
...
Simplified whatProvides, mustMatchName is unused, removed unused
function from policy
2020-04-07 11:08:47 +02:00
Nils Adermann
8072ec9b7c
Number 2: Adjust forgotten error message in test to new language
2020-04-02 16:31:30 +02:00
Nils Adermann
ce0c2d44cd
Adjust forgotten error message in test to new language
2020-04-02 16:20:54 +02:00
Nils Adermann
4fab2c7759
Error wording use "thus cannot" instead of "can thus not"
2020-04-02 16:02:17 +02:00
Nils Adermann
88e3f24b91
Fix description of test case
2020-04-02 15:42:42 +02:00
Nils Adermann
9858718ef6
Give a clearer error message explaining how to update a conflicting locked dependency
2020-04-02 15:32:02 +02:00
Jordi Boggiano
379baa1560
Merge pull request #8717 from naderman/t/pool-builder-allow-list
...
Move processing of partial update argument list into the pool builder
2020-04-02 12:53:02 +02:00
Nils Adermann
f7b5cbd1fc
Lock file should not contain new aliases for packages which were not updated
2020-04-02 01:12:34 +02:00
Nils Adermann
5ad93959cf
PoolBuilder: On partial update of a new dep with mutual replace, unfix replacer
...
Test also verifies provider does not get uninstalled in partial update
for another package name
2020-04-02 00:54:49 +02:00
Nils Adermann
613450e58a
PoolBuilder: properly clean up alias packages when unfixing packages
...
Prevent aliases to be duplicated: no need to apply root aliases from
composer.json on packages currently locked, they should have their
aliases in the lock file, otherwise request an update.
2020-04-02 00:08:53 +02:00
Nils Adermann
14000e7575
PoolBuilder: Ensure alias references get removed when unfixing a locked package
...
Use the last key + 1 for an index instead of count, since we unset elements somtimes
2020-04-01 16:40:45 +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
9fb09049ff
Rename and document constants for partial update behavior
2020-03-30 16:21:27 +02:00
Jordi Boggiano
1b1d59ee6c
Make FileDownloader always download file first in vendor-dir/composer/$tmp instead of next to install path to avoid issues with custom installers not being loaded when downloading on first install, and use cleanup method properly
2020-03-28 20:38:50 +01:00
Nils Adermann
ef42d323b1
Test: partial update adding a new dep on a locked package should mark it for update
2020-03-27 23:07:02 +01:00
Nils Adermann
443553423b
Mark replaced packages for update when using --with-dependencies
...
This is necessary to allow the requiring of new packages which replace
packages currently locked without requiring explicitly listing them as
an argument, so simplifies the composer require command
2020-03-27 22:59:00 +01:00
Nils Adermann
17b50157e4
Test: composer update new/plg --with-dependencies updates locked transitive deps
2020-03-27 22:46:54 +01:00
Nils Adermann
392d0abd21
Rename test files and standardize on allow list rather than whitelist
2020-03-27 22:15:04 +01: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
Graham Campbell
fd63588dce
Fixed up tests
2020-03-19 13:27:23 +00:00
Jordi Boggiano
7a05286f55
Fix build
2020-03-13 13:33:54 +01:00
Jordi Boggiano
70f23e42f3
Fix tests
2020-03-13 11:26:12 +01:00
Jordi Boggiano
e15f7d6bb7
Merge branch 'master' into 2.0
2020-03-13 11:18:23 +01:00
Aaron Johnson
33479f00ab
Add backticks to test.
2020-03-12 23:20:10 -04:00
Jordi Boggiano
08cee4c3e9
Implement getProviders equally on all repos
2020-03-12 15:39:26 +01:00
Jordi Boggiano
d09daa8d5a
Merge pull request #8684 from naderman/dev-require-errors
...
Handle dev extraction exit codes instead of completing broken lock with errors
2020-03-12 13:20:55 +01:00
Nils Adermann
ee8df484c4
Separate createPool and createPoolWithAllPackages, fix test description
2020-03-12 13:17:04 +01:00
Nils Adermann
3ec59204fc
Update test: require-dev is now allowed to satisfy providers from require
2020-03-12 12:28:46 +01:00
Jordi Boggiano
73a5cc63cc
Always use Removing for consistency between dry-run and actual install
2020-03-12 08:12:12 +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
589aa351a8
Change Uninstalling to Removing in lock operations
2020-03-11 16:44:08 +01:00
Jordi Boggiano
a7a975ec1c
Alias dev-master/trunk/default to 9999999-dev instead of normalizing the version to that, fixes #8323
2020-03-11 15:04:18 +01:00
Jordi Boggiano
97e2a249e8
Merge branch 'master' into 2.0
2020-03-11 09:34:55 +01:00
Jordi Boggiano
ffac8646fc
Fix tests
2020-03-11 09:34:40 +01:00
Jordi Boggiano
3e82542812
Fix test
2020-03-10 17:11:19 +01:00
Jordi Boggiano
c033644f8b
Present lock changes alphabetically, with uninstalls first, then all install/updates mixed
2020-03-10 16:08:40 +01:00
Jordi Boggiano
24a5a0dacb
Skip invalid PSR-0/4 classes from optimized autoloader, fixes #8403
2020-03-10 15:40:45 +01:00
Jordi Boggiano
d63eb8179e
Merge branch 'master' into 2.0
2020-03-10 14:05:33 +01:00
Jordi Boggiano
6d3d7c39ac
Merge pull request #8621 from remorhaz/master
...
Fix incorrect --no-dev handling of replaced packages
2020-02-28 23:49:09 +01:00
Jordi Boggiano
9cab8c10cc
Merge branch 'master' into 2.0
2020-02-28 13:31:56 +01:00
Jordi Boggiano
0b9c658bef
Add plugin-api-version used to generate a lock file in itself
2020-02-28 10:21:24 +01:00
remorhaz
8df263a756
Test added for issue #8622 fix
2020-02-26 17:39:54 +02:00
Jordi Boggiano
0ad322e51f
Fix tests
2020-02-14 16:55:21 +01:00
Jordi Boggiano
bc002ae1fb
Merge branch 'master' into 2.0
2020-02-14 15:42:17 +01:00
Nils Adermann
d665ea7ea9
After update and install commands display how many packages want funding
2020-02-14 10:08:36 +01:00
Nils Adermann
5c4f524d6a
Add funding field to composer.json
...
You can specify a list of funding options each with a type and URL. The
type is used to specify the kind of funding or the platform through
which funding is possible.
2020-02-14 10:08:35 +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
c5c6d44a0b
Refactor away some unnecessary RepositorySet usages
2020-02-13 17:51:22 +01:00
Jordi Boggiano
44d1e15294
Simplify suggester output when updating, refactor suggest command to reuse SuggestedPackagesReporter and make smarter defaults, fixes #6267
2020-02-13 16:13:29 +01:00
Jordi Boggiano
5d8dc48bd4
Fix test on windows
2020-02-13 10:05:42 +01:00
Nils Adermann
4bb314e4af
Merge pull request #8566 from Seldaek/installer-events
...
Restore installer events and add a PRE_POOL_CREATE hook for plugins
2020-02-12 15:26:14 +01:00
Jordi Boggiano
23efda9155
Try to fix windows build
2020-02-12 15:11:59 +01:00
Jordi Boggiano
d52ce3c37f
Replace pre/post-dependencies-solving by a pre-operations-exec event happening only on install from lock
2020-02-12 14:35:31 +01:00
Jordi Boggiano
71855e6430
Restore PRE/POST_DEPENDENCY_SOLVING events
2020-02-12 10:41:03 +01:00
Jordi Boggiano
4d74f5ba95
Fix exclude-from-classmap handling to avoid foo matching foo* directories, fixes #8563 , refs #8575
2020-02-12 10:23:03 +01:00
Jordi Boggiano
c7ba751319
Merge commit 'refs/pull/8575/head' of github.com:composer/composer
2020-02-12 10:11:58 +01:00
Jordi Boggiano
7e142b5d6b
Use Upgrading for package installs too
2020-02-11 17:51:02 +01:00
Jordi Boggiano
02433c3659
Merge pull request #8565 from glaubinix/t/create-project-add-repository
...
Create project: add option to add the repository to the composer.json
2020-02-11 13:47:34 +01:00
Jordi Boggiano
9609729de7
Change update to upgrade for package update operations which are upgrades, refs #8594
2020-02-11 13:43:38 +01:00
Jordi Boggiano
fc5682ed9f
Fix build
2020-02-11 11:41:31 +01:00
Jordi Boggiano
be8dd528b8
Merge remote-tracking branch 'origin/master' into 2.0
2020-02-11 11:33:52 +01:00
Jordi Boggiano
31068b7bed
Merge pull request #8594 from IonBazan/downgrading-dry-run
...
Distinguish between updates and downgrades in dry-run
2020-02-11 10:49:09 +01:00
Ion Bazan
11ae757e99
fix risky tests
2020-02-11 17:27:56 +08:00
Ion Bazan
a180f48921
Distinguish between updates and downgrades in dry-run
2020-02-11 16:35:35 +08:00
Stephan Vock
2a564a9f36
Create project: add option to add the repository to the composer.json
2020-02-10 16:46:28 +00:00
Jordi Boggiano
5843a282bc
Merge pull request #8562 from adrianosferreira/fix-archive-format-cli
...
Uses config data from Composer object whenever possible on ArchiveCommand
2020-02-10 17:26:26 +01:00
Adriano Ferreira
97d077c43b
Uses config data from Composer object whenever possible on ArchiveCommand
...
It was previously blindly getting a new instance from the factory thus ignoring what is on Composer object config data.
2020-02-10 13:15:58 -02:00
Jordi Boggiano
21ab2f85bb
Fix 7.4 build
2020-02-07 23:21:48 +01:00
Jordi Boggiano
589abb06a3
PHPStan fixes
2020-02-07 23:10:10 +01:00
Jordi Boggiano
45ecbae8f5
Merge branch 'master' into 2.0
2020-02-07 22:20:51 +01:00
Ion Bazan
a9bace37f6
fix windows build
2020-02-07 15:18:18 +08:00
Ion Bazan
58b34d13e8
fix risky tests (without any assertion)
2020-02-07 14:35:07 +08:00
Ion Bazan
db32d6bc18
do not use env
2020-02-07 13:07:01 +08:00
Ion Bazan
a2137d5263
use Symfony PHPUnit Bridge
2020-02-07 12:22:22 +08:00
Jeroen Versteeg
cabf373bf4
Added test for exclude-from-classmap (see issue #8563 )
2020-02-04 12:57:26 +01:00
Jordi Boggiano
006c3de542
Fix tests and make TTY usage on ProcessExecutor cleaner
2020-01-31 16:33:34 +01:00
Jordi Boggiano
2f4ea3a463
Fix show command, refactor RepositorySet constructor
2020-01-30 20:21:17 +01:00
Jordi Boggiano
189d5adab0
Fix reporting of replace conflicts to not mention provides
2020-01-30 17:13:12 +01:00
Jordi Boggiano
ec90c17e3b
Fix conflict order to be more accurate
2020-01-30 15:55:37 +01:00
Jordi Boggiano
1e68555e0a
Sanitize URLs in getRepoName and centralize the Url sanitization process
2020-01-30 15:50:46 +01:00
Jordi Boggiano
c41df325d8
Remove RepositorySet from Solver and remove getPool from RepositorySet
2020-01-30 15:23:22 +01:00
Jordi Boggiano
f982a10447
Update after rebase
2020-01-30 14:52:47 +01:00
Jordi Boggiano
1d4cdb60d0
Improve error reporting for conflicts/replaces of various kinds, fixes #7254
2020-01-30 14:43:56 +01:00
Jordi Boggiano
6c9d9e775c
Clean up and deduplicate the output of RULE_LEARNED
2020-01-30 14:43:56 +01:00
Jordi Boggiano
e6029d725a
Add individual test checking for clashes between requirements at root and transitive dependency level
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
Jordi Boggiano
8a41f1a5ca
Allow providers which are selected to be installed in place of existing packages which do not satisfy requirements, fixes #6753
2020-01-30 14:09:55 +01:00
Jordi Boggiano
3f48acf56a
Add test checking references update to latest and remove TODO
2020-01-28 16:01:17 +01:00
Jordi Boggiano
292d4b3c8f
Make sure a lock file is always written and things work well even without any dependencies in the require/require-dev
2020-01-28 15:14:58 +01:00
Jordi Boggiano
7e6fe585bc
Merge branch 'master' into 2.0
2020-01-28 14:22:25 +01:00
Jordi Boggiano
fb93036a70
Fix putenv to avoid leaving the environment in a dirty state
2020-01-28 14:22:11 +01:00
Jordi Boggiano
8584d15e8c
Merge branch 'master' into 2.0
2020-01-28 14:04:27 +01:00
Adriano Ferreira
acc040f745
Append the bin dir on each listener iteration
...
The "composer install" can create the vendor/dir folders and be used as a script item on composer.json. Having another script running after it that relies on vendor/bir binaries (such as phpunit) will cause it to not find the binary. This fix addresses the issue by trying to append the path on each script iteration.
2020-01-20 08:11:08 -02: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
921a97457d
Add PoolBuilder test harness for writing .test files
2020-01-19 19:46:16 +01:00
Jordi Boggiano
1d31190472
Keep track of unacceptable fixed packages for later to use in error reporting and make sure the pool state is consistent
2020-01-17 15:48:31 +01:00
Jordi Boggiano
ebe910c3a5
Tweak test to follow changes
2020-01-17 15:16:01 +01:00
Jordi Boggiano
b5e34ca767
Fix remove tests
2020-01-17 14:57:33 +01:00