Changes between Version 196 and Version 197 of SummerOfCode


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

merge sat solving and dependency rewrite, it's essentially the same thing

Legend:

Unmodified
Added
Removed
Modified
  • SummerOfCode

    v196 v197  
    8282* Potential mentors: TBD
    8383
     84==== Dependency calculation using SAT solving ==== #dependencies #depcalc
     85
     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 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).
     87
     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. If time permits, rolling back on failed updates can also be implemented.
     89There is also a [browser:trunk/dports/devel/libCUDF/Portfile libCUDF] port that might be helpful to look at.
     90
     91* Difficulty: Challenging
     92* Languages: Tcl, C
     93* Potential mentors: cal
     94
    8495==== Check for software update / ports needing upgrade ==== #livecheck
    8596
     
    89100* Languages: Tcl
    90101* Potential mentors: TBD
    91 
    92 ==== Dependencies ==== #dependencies
    93 
    94 This task consists of implementing a new dependencies 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 very challenging 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).
    95 
    96 * Difficulty: Very challenging
    97 * Languages: Tcl, C
    98 * Potential mentors: TBD
    99102
    100103==== MacPorts port for self-management ==== #self-management
     
    181184* Potential mentors: larryv
    182185
    183 ==== Dependency calculation using SAT solving ==== #depcalc
    184 
    185 Implement an interface to a [http://www.mancoosi.org/cudf/ Common Upgradeability Description Format]-based SAT solver and print a summary before executing the calculated plan. If time permits you can try different solvers or implement rolling back on failure.
    186 There is also a [browser:trunk/dports/devel/libCUDF/Portfile libCUDF] port that might be helpful to look at.
    187 
    188 * Difficulty: Challenging
    189 * Languages: Tcl, C
    190 * Potential mentors: cal
    191 
    192186==== Reclaim disk space ==== #reclaim
    193187