Changes between Version 200 and Version 201 of SummerOfCode


Ignore:
Timestamp:
Mar 22, 2013, 12:26:52 AM (11 years ago)
Author:
neverpanic (Clemens Lang)
Comment:

try to remove some of the text that might scare people off this task

Legend:

Unmodified
Added
Removed
Modified
  • SummerOfCode

    v200 v201  
    8484==== Dependency calculation using SAT solving ==== #dependencies
    8585
    86 This task consists of implementing a new dependency engine for MacPorts. The current dependency engine properly deals with installing packages, but it does not deal satisfactorily with [[ticket:126|dependencies on variants]] (and versions), uninstalling and upgrading. This task requires a complete formalization of the use cases (installation, upgrade, uninstallation) and of the user needs before any implementation, as well as a deep understanding of the dependency relations (required for fetching, building, configuring; static and dynamic linking; dependence at runtime).
     86This task consists of implementing a new dependency engine for MacPorts. The current dependency engine properly deals with installing packages, but it does not deal satisfactorily with [[ticket:126|dependencies on variants]] and versions, uninstalling and upgrading. This task requires understanding the dependency relations (required for fetching, building, configuring; static and dynamic linking; dependence at runtime).
    8787
    8888Instead of re-inventing the wheel it might be helpful to use software available to solve the problem of dependency calculation, e.g. by implementing an interface to a [http://www.mancoosi.org/cudf/ Common Upgradeability Description Format]-based SAT solver. Such a solver could generate an execution plan we could propose to the user and finally execute when confirmed. For this task, the MacPorts concept of variants needs to be transformed into a representation the SAT solvers will be able to optimize. If time permits, rolling back on failed updates can also be implemented.