135 Commits (089fcde6cfec4883e0e16faffdf2a06983222ff7)

Author SHA1 Message Date
Jordi Boggiano 362ebe4f68
Fix update mirrors to also update transport-options, fixes #7672 5 years ago
Jordi Boggiano db6882b57f
Fix updating or URLs to include dist type and shasum, fixes #8216 5 years ago
Jordi Boggiano c66bb0b1d0 Fix tests 5 years ago
Nils Adermann 6b2edeae56 Fix solver problem exceptions with unexpected contradictory "Conclusions"
This 5 character fix comes with a solver test as well as a functional
installer test essentially verifying the same thing. The solver test is
more useful when working on the solver. But the functional test is less
likely to be accidentally modified incorrectly during refactoring, as
every single package, version and link in the rather complex test
scenario is essential, and a modified version of the test may very well
still result in a successful installation but no longer verify the bug
described below.

Background:

In commit 451bab1c2c from May 19, 2012 I
refactored literals from complex objects into pure integers to reduce
memory consumption. The absolute value of an integer literal is the id
of the package it refers to in the package pool. The sign indicates
whether the package should be installed (positive) or removed (negative),

So a major part of the refactoring was swapping this call:

$literal->getPackageId()

For this:

abs($literal)

Unintentionally in line 554/523 I incorrectly applied this change to the
line:

$this->literalFromId(-$literal->getPackageId());

It was converted to:

-abs($literal);

The function literalFromId used to create a new literal object. By using
the abs() function this change essentially forces the resulting literal
to be negative, while the minus sign previously inverted the literal, so
positive into negative and vice versa.

This particular line is in a function meant to analyze a conflicting
decision during dependency resolution and to draw a conclusion from it,
then revert the state of the solver to an earlier position, and attempt
to solve the rest of the rules again with this new "learned" conclusion.

Because of this bug these conclusions could only ever occur in the
negative, e.g. "don't install package X". This is by far the most likely
scenario when the solver reaches this particular line, but there are
exceptions.

If you experienced a solver problem description that contained a
statement like "Conclusion: don't install vendor/package 1.2.3" which
directly contradicted other statements listed as part of the problem,
this could likely have been the cause.
5 years ago
Jordi Boggiano acea4a4d4d Warn on invalid package name or require/provide/.., fixes #7874 6 years ago
Sascha Egerer 1845adcfbd Fix update whitelist pattern resolving and add more tests 6 years ago
Sascha Egerer 50cb5fe3da Update all whitelist matching root dependencies
The update command can receive a pattern like `vendor/prefix-*`
to update all matching packages.
This has not worked if multiple packages, depending on each other,
where matched to the given pattern. No package has been updated
in this case as only the first package matching the pattern was
added to the whitelist.
6 years ago
Christophe Coevoet 8c3898aa57 Update tests for replace conflicts
This reverts the test changes done in b4698568d2 to the original tests added
in 1425bb7fc3.
6 years ago
Jordi Boggiano 0b3bc4ccb9 Merge branch '1.5' 7 years ago
Nils Adermann 7dffe79a0f Update tests of solver problem message to match new message 7 years ago
Matthew Grasmick 11db6f90c2 Cleaning up comments 7 years ago
Matthew Grasmick ad465aa769 Updating var names. 7 years ago
Matthew Grasmick 21722f6e42 Fixing test version constraints. 7 years ago
Matthew Grasmick f29e98cdf9 Fixes #6661: Allow a given package and its dependencies (including siblings) to be updated. 7 years ago
Stephen Beemsterboer 06bb6c7530 Move plugins with no dependencies to the front, followed by plugins with their dependencies 7 years ago
Stephen 6c4800b8d2 Update corresponding test for plugin moving 7 years ago
Fabien Potencier 57ec0d1815 added more information in the output 8 years ago
Jordi Boggiano 59596ff012 Make sure we do not overwrite binaries but only re-create missing ones, refs #5127 8 years ago
Jordi Boggiano 88d5b74c74 Merge remote-tracking branch 'j0k3r/re-install-binaries' 8 years ago
Lucas CHERIFI 7e34d9ab97 Typo fix ;-) 8 years ago
Jordi Boggiano 72362a085a Fix #refs handling, fixes #5291 8 years ago
Jordi Boggiano ac75680b1e Make sure the abandoned state is copied over even if the packages are installed already 8 years ago
Jordi Boggiano 4de17cef6b Always resolve dev packages even when doing an update with --no-dev, fixes #5016 8 years ago
Jordi Boggiano 11daebcb3a Merge pull request #5210 from Seldaek/fix_partial_updates_from_dirty_state
Fix partial updates from a dirty state and apply exactly the locked state
8 years ago
Jordi Boggiano c7c8335b8b Fix updating of dev refs if they are not whitelisted 8 years ago
Jordi Boggiano de5bfcb4c5 Fix partial updates from a dirty state and apply exactly the locked state, fixes #3468 8 years ago
Jordi Boggiano feda2a283f Improve error reporting some more, fixes #4310 8 years ago
Jordi Boggiano 6d20146d08 Normalize URL updates to point to the correct reference and always update URLs consistently, fixes #3849, fixes #4126 8 years ago
Jordi Boggiano 23af589076 Add test case for solver problem improvements 8 years ago
Jeremy Benoist e9fc0e6548 Re-install binaries on update/install
Binaries are re-installed after an update/install (ie: removed and then installed)
8 years ago
Jordi Boggiano 55b0ed8c8b Change installs into updates if there is no lock file, simplify some code, fixes #5034 8 years ago
Rob Bast dfdcfab822 simplified existing test, added a new test 8 years ago
Nils Adermann 4af74b54e0 Ignore self references when anlaysing independent root requirements
When creating a transaction we try to identify all requirements that are
not themselves required by any other package. If a package references
itself this should not mark it as being required by another package.
8 years ago
Jordi Boggiano 7b404c4717 Add failing test for #3990 8 years ago
Rob Bast 5db0f623b0 enable test again 9 years ago
Rob Bast baa84d9be1 adjust test and assertion to be more flexible 9 years ago
Rob Bast baabc612f6 adjust message, skip test
currently we have no way to put dynamic values or wildcards in EXPECT-OUTPUT
9 years ago
Rob Bast 94daeca57b add test and adjust rule error message 9 years ago
Rob Bast df23153932 fix output 9 years ago
Rob Bast be5719eb53 Merge remote-tracking branch 'upstream/master' into repro-4795
* upstream/master: (98 commits)
  Fallback to zlib extension to unpack gzip on non Windows systems
  Zip extension does not provide zlib support
  Unified all Windows tests throughout the code.
  Added Platform utility and unit test for it.
  Remove warnings for non-writable dirs, refs #3588
  [doc] add -H flag to sudo commands
  use full json content to determine reference, closes #4859
  typos
  Make sure COMPOSER_AUTH is also loaded in Config, refs #4546
  Use proper defaults for IO authentications
  Add verbosity input support to IOInterface
  Update SolverTest.php
  Update broken-deps-do-not-replace.test
  Update SolverProblemsException.php
  Cleaned up check+conversion that was no longer required.
  Cleaner notation for expected exceptions in fixtures.
  Introduced more generic, less invasive way to test for exceptions in fixtures, more in line with how phpunit works.
  Included unit test for circular root dependencies.
  Expanded InstallerTest to support expecting Exceptions by supplying "EXCEPTION" as "--EXPECT--"
  Clarified error message and added braces.
  ...
9 years ago
Jordi Boggiano 8771eca527 Merge remote-tracking branch 'curry684/issue-4767' 9 years ago
Rob Bast 0e584aa980 resolve issue 9 years ago
Jordi Boggiano 49d7d65933 Add verbosity input support to IOInterface 9 years ago
Jefferson Carpenter 087b901545 Update broken-deps-do-not-replace.test 9 years ago
Niels Keurentjes 523362c7c5 Cleaner notation for expected exceptions in fixtures. 9 years ago
Niels Keurentjes 639ee0701c Introduced more generic, less invasive way to test for exceptions in fixtures, more in line with how phpunit works. 9 years ago
Niels Keurentjes bd241cb896 Included unit test for circular root dependencies. 9 years ago
Rob Bast 17d6b98707 add A to root requirements 9 years ago
Rob Bast 0f09982858 add a test attempting to reproduce composer/composer#4795 9 years ago
Matthias Pigulla 3c08318ea0 Add test 9 years ago