Changes between Version 199 and Version 200 of SummerOfCode


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

reorder (according to my entirely subjective wishlist), merge Portfiles and Ports, write more docs for the trace task

Legend:

Unmodified
Added
Removed
Modified
  • SummerOfCode

    v199 v200  
    9393* Potential mentors: cal
    9494
    95 ==== Check for software update / ports needing upgrade ==== #livecheck
    96 
    97 The livecheck mechanism could be extended to automatically send reports when ports are outdated, similar to how the lint mechanism sends reports on portfile commits.
    98 
    99 * Difficulty: Easy
    100 * Languages: Tcl
    101 * Potential mentors: TBD 
     95==== Remove dependency on Xcode ==== #xcode
     96
     97MacPorts currently requires a full Xcode installation, even if the user only wishes to install prepackaged binaries or compile ports that do not use Xcode projects for building. This task be as simple as allowing MacPorts to install binary packages without Xcode present, or as complex as enabling MacPorts to be completely self-sufficient (not requiring Xcode or the Command Line Tools at all).
     98
     99* Difficulty: Medium to very challenging
     100* Languages: Tcl, C
     101* Potential mentors: TBD
    102102
    103103==== MacPorts port for self-management ==== #self-management
     
    108108
    109109* Difficulty: Challenging
    110 * Languages: Tcl, C
    111 * Potential mentors: TBD
    112 
    113 ==== Remove dependency on Xcode ==== #xcode
    114 
    115 MacPorts currently requires a full Xcode installation, even if the user only wishes to install prepackaged binaries or compile ports that do not use Xcode projects for building. This task be as simple as allowing MacPorts to install binary packages without Xcode present, or as complex as enabling MacPorts to be completely self-sufficient (not requiring Xcode or the Command Line Tools at all).
    116 
    117 * Difficulty: Medium to very challenging
    118110* Languages: Tcl, C
    119111* Potential mentors: TBD
     
    152144* Potential mentors: TBD
    153145
    154 ==== Automatic testing ==== #testing
    155 
    156 MacPorts currently includes a [[source:trunk/base/tests|test framework]] to test features of the infrastructure. However, the tests do not cover all the code and they are not executed on an automatic basis. This task consists of extending the test framework and could be broadened to develop a code coverage technology for MacPorts to make the infrastructure more robust to future changes.
     146==== Increase test coverage ==== #testing
     147
     148MacPorts currently includes a [[source:trunk/base/tests|test framework]] to test features of the infrastructure. However, the tests do not cover all the code. This task consists of extending the test framework and could be broadened to develop a code coverage technology for MacPorts to make the infrastructure more robust to future changes.
    157149
    158150* Difficulty: Relatively easy to very challenging
     
    168160* Potential mentors: larryv
    169161
     162==== Improve Trace mode ==== #tracemode
     163
     164Improve trace mode to the point where developers (and the build server) could run with it always turned on. This currently requires fixing some (minor) remaining bugs in the trace code itself, adjust the build system to always build the tracing library as universal binary and improving the Tcl backend of trace mode (e.g. by adding more features like a list of accessed files, speeding up the lookup by using better data structures).
     165
     166* Difficulty: Medium to Easy
     167* Programming languages: Tcl, C
     168* Potential mentors: cal
     169
     170==== Check for software update / ports needing upgrade ==== #livecheck
     171
     172The livecheck mechanism could be extended to automatically send reports when ports are outdated, similar to how the lint mechanism sends reports on portfile commits.
     173
     174* Difficulty: Easy
     175* Languages: Tcl
     176* Potential mentors: TBD
    170177
    171178==== Improve startupitem code ==== #startupitem
     
    200207* Potential mentors: TBD
    201208
    202 ==== Trace mode ==== #tracemode
    203 
    204 Improve trace mode to the point where developers (and the build server) could run with it always turned on.
     209==== Migrate muniversal into base (lipo merging) ==== #muniversal
     210
     211Integrate the [[source:trunk/dports/_resources/port1.0/group/muniversal-1.0.tcl|muniversal portgroup]] into base. Not just a direct copy-and-paste, but in a way that makes sense and preserves the way portfiles are expected to behave (which the current portgroup doesn't).
    205212
    206213* Difficulty: Medium
    207 * Programming languages: Tcl, C
    208 * Potential mentors: TBD
    209 
    210 ==== Migrate muniversal into base (lipo merging) ==== #muniversal
    211 
    212 Integrate the [[source:trunk/dports/_resources/port1.0/group/muniversal-1.0.tcl|muniversal portgroup]] into base. Not just a direct copy-and-paste, but in a way that makes sense and preserves the way portfiles are expected to behave (which the current portgroup doesn't).
     214* Languages: Tcl, C
     215* Potential mentors: TBD
     216
     217==== Improve fetching from version control ==== #fetchtypes
     218
     219Make cvs/svn/git/hg/bzr fetch types checkout into the distfiles dir and then export into the work dir, to [[ticket:16373|avoid having to re-fetch]] after cleaning the work dir.
     220
     221* Difficulty: Easy
     222* Languages: Tcl, C
     223* Potential mentors: larryv
     224
     225==== Interactive port command ==== #interactive
     226
     227Write an interactive command-line tool that can be used instead of the non-interactive port(1).
     228
     229The current port(1) should be viewed as batch mode reading from stdin.
     230
     231An interactive tool would ask for user input to resolve many situations that cause port(1) to simply error out. For example, if you try to install a port and one of its dependencies conflicts with something already installed, it could ask if you want to deactivate the installed one and its dependents.
    213232
    214233* Difficulty: Medium
     
    216235* Potential mentors: TBD
    217236
    218 ==== Fetching from version control ==== #fetchtypes
    219 
    220 Make cvs/svn/git/hg/bzr fetch types checkout into the distfiles dir and then export into the work dir, to [[ticket:16373|avoid having to re-fetch]] after cleaning the work dir.
    221 
    222 * Difficulty: Easy
    223 * Languages: Tcl, C
    224 * Potential mentors: larryv
    225 
    226 ==== Interactive port command ==== #interactive
    227 
    228 Write an interactive command-line tool that can be used instead of the non-interactive port(1).
    229 
    230 The current port(1) should be viewed as batch mode reading from stdin.
    231 
    232 An interactive tool would ask for user input to resolve many situations that cause port(1) to simply error out. For example, if you try to install a port and one of its dependencies conflicts with something already installed, it could ask if you want to deactivate the installed one and its dependents.
    233 
    234 * Difficulty: Medium
    235 * Languages: Tcl, C
    236 * Potential mentors: TBD
     237
     238=== Secondary tasks ===
    237239
    238240==== Portfiles ==== #portfiles
    239241
    240 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.
     242Sweep 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. This might also include porting additional packages to MacPorts and cleaning up or removing obsolete ports.
    241243
    242244* Classification: Medium
     
    244246* Potential mentors: larryv
    245247
    246 === Secondary tasks ===
    247 
    248 ==== Ports ==== #ports
    249 
    250 Port additional packages to MacPorts and cleanup or remove obsolete ports.
    251 
    252 * Difficulty: Medium
    253 * Potential mentors: larryv
    254 
    255248==== Documentation and website ==== #docs
    256249
     
    269262* Difficulty: Easy
    270263* Potential mentors: raimue
    271 
    272 
    273264
    274265