Changes between Version 12 and Version 13 of SummerOfCode


Ignore:
Timestamp:
Mar 12, 2007, 11:39:24 PM (17 years ago)
Author:
pguyot (Paul Guyot)
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SummerOfCode

    v12 v13  
    2626This is a list of some potential tasks that student SoC members could undertake. Selection of particular tasks should be undertaken only following discussion with mentor and further exploration of the topic on the MacPorts development list and irc channel.
    2727
    28 === Ports ===
     28=== Main Tasks (Base/Infrastructure Code) ===
    2929
     30==== Task 1: Dependencies ====
     31 * Implement support for richer dependencies, including dependencies on versions and, potentially, variants (major)
     32
     33==== Task 2: Python Group ====
     34 * Improve python group code (medium)
     35
     36==== Task 3: Virtual "chroot" ====
     37 * Finish the work Paul Guyot started with the trace code and create real "virtual chroot" environments for building ports, constraining what their configure scripts can see and validating that their explicit dependencies are correct and fully-formed. (major)
     38
     39==== Task 4: Binaries ====
     40 * Working in concert (or cooperatively) with whomever does (virtual chroot), get package building working all the way to a point where complete package builds can be done for all of MacPorts and the results made available to users as pre-build package collections. (major)
     41
     42==== Task 5: Graphical user interface ====
     43 * Come up with a front-end for installing packages (or building ports, where no package exists) for naive end-users. (major)
     44
     45==== Task 6: Pkgview (depot-to-depot dependencies) ====
     46 * Take what Will started with the notion of a depot location vs an installed location (e.g. /opt/local/var/db/dports/software/gawk/3.1.5_2/opt/local/bin/gawk vs /opt/local/bin/gawk) and finish the job, making depot-to-depot dependencies finally work.  That is to say that if port foo depends on version 1.2.3 of port bar, it should be compiled and linked in such a way that it's wired to the depot location of bar, not the "activated" location.  That will finally fix the fragility problem where deactivating port bar vers n-1 in order to install port bar vers n (because other things depend on n) won't also require breaking everything that relies on n-1. (major)
     47
     48==== Task 7: Root privileges ====
     49 * Implement facility to reduce need to execute macports as root, by adding facilities to mark ports as requiring root, by dropping root privileges where possible, and perhaps by keeping repository in per-user space. (medium)
     50
     51==== Task 8: Portfiles ====
     52 * Sweep through all Portfiles and look for useful opportunities to add more built-in Tcl functions that make Portfiles more (usefully) terse, powerful, flexible or easier to write.  I'm sure there is an entirely family of helper functions yet to be written here. (medium)
     53
     54=== Additional tasks ===
     55
     56==== Task 9: Ports ====
    3057 * Porting of additional packages to MacPorts (uncategoried)
    31  * Sweep through all Portfiles and look for useful opportunities to add more built-in Tcl functions that make Portfiles more (usefully) terse, powerful, flexible or easier to write.  I'm sure there is an entirely family of helper functions yet to be written here. (medium)
    3258 * Cleanup and/or remove obsolete ports (medium)
    3359
    34 
    35 === Base/Infrastructure Code ===
    36 
    37  * Implement support for richer dependencies, including dependencies on versions and, potentially, variants (major)
    38  * Improve python group code (medium)
    39  * Finish the work Paul Guyot started with the trace code and create real "virtual chroot" environments for building ports, constraining what their configure scripts can see and validating that their explicit dependencies are correct and fully-formed. (major)
    40  * Working in concert (or cooperatively) with whomever does (virtual chroot), get package building working all the way to a point where complete package builds can be done for all of MacPorts and the results made available to users as pre-build package collections. (major)
    41  * Come up with a front-end for installing packages (or building ports, where no package exists) for naive end-users. (major)
    42  * Take what Will started with the notion of a depot location vs an installed location (e.g. /opt/local/var/db/dports/software/gawk/3.1.5_2/opt/local/bin/gawk vs /opt/local/bin/gawk) and finish the job, making depot-to-depot dependencies finally work.  That is to say that if port foo depends on version 1.2.3 of port bar, it should be compiled and linked in such a way that it's wired to the depot location of bar, not the "activated" location.  That will finally fix the fragility problem where deactivating port bar vers n-1 in order to install port bar vers n (because other things depend on n) won't also require breaking everything that relies on n-1. (major)
    43  * Implement facility to reduce need to execute macports as root, by adding facilities to mark ports as requiring root, by dropping root privileges where possible, and perhaps by keeping repository in per-user space. (medium)
    44 
    45 === Documentation and Website ===
    46 
     60==== Task 10: Documentation and Website ====
    4761 * Improve macports documentation (minor - medium)
    4862 * Improve macports website (minor - medium)