Changes between Version 200 and Version 201 of SummerOfCode
- Timestamp:
- Mar 22, 2013, 12:26:52 AM (12 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
SummerOfCode
v200 v201 84 84 ==== Dependency calculation using SAT solving ==== #dependencies 85 85 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 ofthe dependency relations (required for fetching, building, configuring; static and dynamic linking; dependence at runtime).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 understanding the dependency relations (required for fetching, building, configuring; static and dynamic linking; dependence at runtime). 87 87 88 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. 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.