Changes between Version 199 and Version 200 of SummerOfCode
- Timestamp:
- Mar 22, 2013, 12:25:14 AM (11 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
SummerOfCode
v199 v200 93 93 * Potential mentors: cal 94 94 95 ==== Check for software update / ports needing upgrade ==== #livecheck96 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: Easy100 * Languages: Tcl 101 * Potential mentors: TBD 95 ==== Remove dependency on Xcode ==== #xcode 96 97 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). 98 99 * Difficulty: Medium to very challenging 100 * Languages: Tcl, C 101 * Potential mentors: TBD 102 102 103 103 ==== MacPorts port for self-management ==== #self-management … … 108 108 109 109 * Difficulty: Challenging 110 * Languages: Tcl, C111 * Potential mentors: TBD112 113 ==== Remove dependency on Xcode ==== #xcode114 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 challenging118 110 * Languages: Tcl, C 119 111 * Potential mentors: TBD … … 152 144 * Potential mentors: TBD 153 145 154 ==== Automatic testing==== #testing155 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 148 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. 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. 157 149 158 150 * Difficulty: Relatively easy to very challenging … … 168 160 * Potential mentors: larryv 169 161 162 ==== Improve Trace mode ==== #tracemode 163 164 Improve 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 172 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. 173 174 * Difficulty: Easy 175 * Languages: Tcl 176 * Potential mentors: TBD 170 177 171 178 ==== Improve startupitem code ==== #startupitem … … 200 207 * Potential mentors: TBD 201 208 202 ==== Trace mode ==== #tracemode203 204 I mprove 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 211 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). 205 212 206 213 * 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 219 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. 220 221 * Difficulty: Easy 222 * Languages: Tcl, C 223 * Potential mentors: larryv 224 225 ==== Interactive port command ==== #interactive 226 227 Write an interactive command-line tool that can be used instead of the non-interactive port(1). 228 229 The current port(1) should be viewed as batch mode reading from stdin. 230 231 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. 213 232 214 233 * Difficulty: Medium … … 216 235 * Potential mentors: TBD 217 236 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 === 237 239 238 240 ==== Portfiles ==== #portfiles 239 241 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.242 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. This might also include porting additional packages to MacPorts and cleaning up or removing obsolete ports. 241 243 242 244 * Classification: Medium … … 244 246 * Potential mentors: larryv 245 247 246 === Secondary tasks ===247 248 ==== Ports ==== #ports249 250 Port additional packages to MacPorts and cleanup or remove obsolete ports.251 252 * Difficulty: Medium253 * Potential mentors: larryv254 255 248 ==== Documentation and website ==== #docs 256 249 … … 269 262 * Difficulty: Easy 270 263 * Potential mentors: raimue 271 272 273 264 274 265