= Google Summer of Code 2009 = [[PageOutline]] This is the main tracking page for MacPorts' Google [http://code.google.com/soc/ "Summer of Code"]. [[Image(gsoc-2009-logo.png, 300, link=http://code.google.com/soc/)]] Information about the past years can be found at SummerOfCodeArchive. == Projects 2009 == The following students have been accepted for this year: * [wiki:enl Dmitry Gorbik], Logging * [wiki:juanger Juan Germán Castañeda Echevarría], GUI == Applications for SoC == === General Info === Applications must be done online, on the [http://socghop.appspot.com/ Google SoC website]. You will find more information on their page on [http://code.google.com/p/google-summer-of-code/wiki/AdviceforStudents Advice for Students]. Consult the official [http://code.google.com/opensource/gsoc/2009/faqs.html#timeline timeline] for any specific dates. There are several things to consider. We are willing to support and mentor students who want to gain an experience by working on The MacPorts Project. We have many ideas for potential internship subjects, yet we are open to anything that is both interesting and relevant to MacPorts. Motivated students do not necessarily need to know Tcl language beforehand, especially if they already know several script languages such as Python, Ruby, PHP or Perl. === For the MacPorts project === The best way to apply is to first make contact with us, either by sending a mail to the MacPorts developer [http://lists.macosforge.org/mailman/listinfo/macports-dev "mailing list"], to the potential mentors listed below, or to IRC members on #macports on [http://freenode.net/ FreeNode]. What we expect from students for their applications: * Write your own abstract and proposal, copying text from this idea page is not enough * Get familiar with the MacPorts project resources. Especially [GetMacPortsSource check out the code] and [http://guide.macports.org read the guide]. * Read the [http://www.tcl.tk/man/tcl8.5/tutorial/tcltutorial.html Tcl Tutorial] * Subscribe to the mailing lists [http://lists.macosforge.org/mailman/listinfo/macports-dev macports-dev] and [http://lists.macosforge.org/mailman/listinfo/macports-users macports-users] if you do not already read them. Don't be too shy to post. * Get in contact! Discuss your contribution ideas with potential mentors by e-mail, on the MacPorts development list or the IRC channel '''before applying'''. == Mentors == The following committers have agreed to be mentors for SoC 2009 (append @macports.org for e-mail) ||'''Name''' ||'''Area''' ||'''Email''' || ||[wiki:armahg George Armah] || GUI, Framework || armahg || ||James Berry || MPWA || jberry || ||[wiki:blb Bryan Blackburn] || Logging, self-management, general || blb || ||[wiki:snc Jeremy Lavergne] || Helping hand || snc || ||[wiki:perry Perry Lee] || Co-mentoring || perry || ||[wiki:raimue Rainer Mueller] || Administrator, config files, rev-upgrade, depcheck || raimue || == Tasks == This is a list of some potential tasks that student SoC members could undertake. These are just ideas, and while they express our current concerns, we are open to blue-sky projects related to MacPorts. Please note that this list is absolutely '''not exclusive'''! If you have any idea about what you want to see improved in MacPorts, you are free to propose this as your own project. In any case, we recommend to talk to mentors before writing your application. === Core Tasks === ==== Dependencies ==== #dependencies 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 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 f