Changes between Version 197 and Version 198 of SummerOfCode


Ignore:
Timestamp:
Mar 22, 2013, 12:17:00 AM (12 years ago)
Author:
neverpanic (Clemens Lang)
Comment:

Add sentence on variants and SAT solving

Legend:

Unmodified
Added
Removed
Modified
  • SummerOfCode

    v197 v198  
    8686This 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).
    8787
    88 Instead 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. If time permits, rolling back on failed updates can also be implemented.
     88Instead 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.
    8989There is also a [browser:trunk/dports/devel/libCUDF/Portfile libCUDF] port that might be helpful to look at.
    9090