Hide last authors
Marta Girdea 1.1 1 1 XWiki and Google Summer of Code 2009
2 #info("XWiki is accepted for the fifth year as a mentoring organization for GSoC 2009. The coding period has begun and lasts until August 17<sup>th</sup>. You can monitor the student progress on the [dedicated wiki>http://gsoc.myxwiki.org/].")
3
4 This page hosts information and project ideas for the Google Summer of Code 2009. Students can come up with their own ideas, and propose them on the [mailing list>Community.MailingLists] or the [IRC channel>Community.IRC].
5
6 #info("The XWiki GSoC 2008 page is over *[here>GoogleSummerOfCode2008]*.\\The XWiki GSoC 2007 page is over *[here>GoogleSummerOfCode2007]*.")
7
8 Topics:
Eduard Moraru 1.12 9 #toc("2" "2" "")
Marta Girdea 1.1 10
11 #set ($sql = ", BaseObject obj, StringProperty year where obj.name=doc.fullName and obj.className='GoogleSummerOfCode.ProjectClass' and doc.name<>'ProjectClassTemplate' and year.id.id = obj.id and year.id.name = 'year' and year.value = '2009' order by doc.name")
12 #set ($projects= $xwiki.searchDocuments($sql))
13
14 #macro (displayProject $project $item $student)
15 <div style="border: 1px dotted #CCC; margin: 10px auto; padding: 4px 8px;">
16 #if ($student != "")
17 1.1.1 [$project.display("name")>$item] by $student
18 #else
19 1.1.1 [$project.display("name")>$item]
20 #end
21 <div class="projectdesc">
22 $project.details
23 <div class="clearfloats"></div>
24 </div>
25 <div style="font-size: 80%; color: #888;">~~Coordinated by~~ *$project.leader*. #if("$!project.workload" != "")~~Estimated workload~~: *$project.workload*.#end [Read more...>$item]</div>
26 </div>
27 #end
28
29 1.1 Suggested way of working for SoC students
30
31 #error("Important Dates (timeline): http://socghop.appspot.com/document/show/program/google/gsoc2009/timeline")
32
33 First and foremost, working on XWiki needs to be fun and a good learning process! However the XWiki project is already following some development rules that we're asking SoC students to follow too. This is for the good of the XWiki project but more importantly it's a good way to learn how an open source community works and if these practices are followed then it'll be much easier to integrate the resulting work into XWiki's official releases.
34
35 So here are some practices we'd like SoC students to follow (please comment on the list if you'd like to change some of them or propose other things):
36
37 * SoC students should be considered like any XWiki contributor which means they should respect the same rules and which means they are not committers on XWiki core. Note that a SoC student can become a Committer in the [same manner a contributor can become one>Community.Committership].
38 * SoC students will be given commit access to the sandbox only where they'll create their project (one top level directory for each project). For projects which need to modify some existing code, JIRA issues will need to be created and patches attached. It's important that patches be of good quality and small in order to be applied quickly. Once sandbox projects reach a good level of maturity (meaning they work and the code is of code quality, documented, etc) then we'd like to migrate them to the main release tree.
39 * SoC students should obey all [Community rules>Community.WebHome]. For example this means:
40 ** using the XWiki coding conventions
41 ** using the defined communication channels: IRC and mailing list
42 ** etc
43 * *SoC students have time allocated to familiarize with XWiki development process. As such we'd like each SoC student to pick one or several existing issues in JIRA and send a patch that fixes it/them before that period ends (from April 20th to May 23rd)* This is a critical integration step to ensure all SoC students understand how XWiki works and it's a chance to start asking questions and get to know each other.
44 * SoC student should post a quick introduction on the xwiki dev mailing list to explain who they are and what they're going to work on.
45 * SoC student should always go to the list when communicating about their project. They should not talk directly to their mentors. They should use the XWiki IRC channel if they need to talk to them. The goal is that everyone in the XWiki community help them, answer their questions but also know what they are doing. This will make patch applications and integration of their work back into XWiki trunk easier later on. This is very important and a criteria of success for the student. This is about learning how open source works... Note that student can also CC their mentor's email address if they want but the mails have to go to the XWiki dev list.
46 * SoC students should not block on anything for a long period of time. They should ask plenty of questions on the list (but they should also be autonomous!)
47 * SoC students should be as much as possible in contact with the community, following the mailing lists (and answering mails, when they know what to say), stay on the IRC channel, give regular status updates on their project. This does not mean that a SoC student is not allowed to take a break, of course, but that while working a student should be integrated as much as possible with the community.
48 * When taking a vacation/break, notify the mentor; a mysterious disappearance could lead to a negative feedback afterwards.
49
50 Remember that this is not a summer job, or a Rent-a-coder like project, but a rewarded successful integration in an free software/open source community. If all you are interested in is the money, then better look for a real job, as Free Software requires passionate people; an ideal candidate is more interested in the t-shirt.
51
52
53
54 1.1 Conditions for success
55
56 Students will need to meet these criteria for sucess:
57 * 1) Must have something that works and is in some finished state.
58 * 2) Must be integrated or close to be integrated in xwiki without too much effort
59 * 3) Must have interacted correctly and continuously with the community
60 * 4) The work must have been enough (it's supposed to be a 2 men/month effort)
61
62 Note that the real important part is 3) since this is a criteria for success for 1), 2) and 4).
63
64 1.1 Student Application template
65
66 Please use [this template>GoogleSummerOfCode.student application form] as the basis for your student application which must be submitted to google.
67
Eduard Moraru 1.3 68
69
Eduard Moraru 1.4 70 1.1 Selected Projects for GSoC 2009
Marta Girdea 1.1 71
72 #foreach ($item in $projects)
73 #set($project = $xwiki.getDocument($item))
74 $project.use("GoogleSummerOfCode.ProjectClass")
Eduard Moraru 1.10 75 #if ("$!{project.getValue('status')}" != '' && "$!project.getValue('status')" != "proposed")
Marta Girdea 1.1 76 #displayProject($project $item "")
77 #end
78 #end
79
80
81
82 1.1 Proposed Projects
83 #foreach ($item in $projects)
84 #set($project = $xwiki.getDocument($item))
85 $project.use("GoogleSummerOfCode.ProjectClass")
86 * <a href="#H$util.encodeURI("[$project.display('name')>$item]").replaceAll('[^a-zA-Z0-9]', '')">$project.display('name')</a>
87 #end
88
89
90 #if($hasEdit)
91 <form action="" id="newproject">
92 <input type="hidden" name="parent" value="GoogleSummerOfCode.WebHome" />
93 <input type="hidden" name="template" value="GoogleSummerOfCode.ProjectClassTemplate" />
94 <input type="hidden" name="sheet" value="1" />
95 <input type="hidden" name="webname" value="GoogleSummerOfCode"/>
96 <input type="hidden" name="name" value=""/>
97 <table>
98 <tr>
99 <td>
100 <input type="text" name="project" value="" size="30"/>
101 </td>
102 <td>
103 <input type="submit" value="Add this Project" onclick='if (updateName(this.form.project,this.form.name)) { action="../../inline/" + this.form.webname.value + "/" + this.form.name.value; this.form.submit(); }' />
104 </td>
105 </tr>
106 </table>
107 </form>
108 #end
109
110 $projects.size() projects proposed in total.
111
112 #foreach ($item in $projects)
113 #set($project = $xwiki.getDocument($item))
114 $project.use("GoogleSummerOfCode.ProjectClass")
115 #displayProject($project $item "")
116 #end

Get Connected