Select best version one interface at a time
commit2938ee82a3216cc98bd734a8fabcbd89e858205b
authorThomas Leonard <talex5@gmail.com>
Sat, 13 Mar 2010 21:43:07 +0000 (13 21:43 +0000)
committerThomas Leonard <talex5@gmail.com>
Sat, 13 Mar 2010 22:03:05 +0000 (13 22:03 +0000)
treef3192e29acf5a57a223a8661a0250ff2c5720e14
parent610ea29b0e86a2424837dec24b74503f8b98810a
Select best version one interface at a time

Instead of minimising a global cost function over all components at once, just
try to select the locally best implementation of the root interface. Then
select the best version of the first dependency, etc.

Note that we still apply all *constraints* globally (we choose a version of the
root that is compatible with some combination of the other components), but of
the legal combinations, we decide on the best one using only local information.

For example, we can no longer select an older version of the application in
order to get later versions of several dependencies. This is much faster, and
easier to understand.
zeroinstall/injector/solver.py