Wiki source code of XWiki @ Google Summer of Code 2023
Show last authors
author | version | line-number | content |
---|---|---|---|
1 | {{velocity output="false"}} | ||
2 | #set ($gsocYear = "2023") | ||
3 | #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 = '${gsocYear}' order by doc.creationDate") | ||
4 | #set ($projectDocNames = $xwiki.searchDocuments($sql)) | ||
5 | |||
6 | #set ($projects = []) | ||
7 | #set ($selectedProjectToStudentMap = {}) | ||
8 | #set ($availableMentorsMap = {}) | ||
9 | #foreach ($item in $projectDocNames) | ||
10 | #set ($projectDocument = $xwiki.getDocument($item)) | ||
11 | #set ($discard = $projects.add($projectDocument)) | ||
12 | #set ($projectObject = $projectDocument.getObject('GoogleSummerOfCode.ProjectClass')) | ||
13 | #set ($projectStatusValue = $projectObject.getProperty('status').value) | ||
14 | #if ("$!projectStatusValue" != '' && $projectStatusValue != 'proposed') | ||
15 | #set ($projectStudent = $projectObject.getProperty('assignee').value) | ||
16 | #set ($discard = $selectedProjectToStudentMap.put($projectDocument, $projectStudent)) | ||
17 | #end | ||
18 | #set ($projectMentors = $projectObject.getValue('leader').split(',')) | ||
19 | #foreach ($projectMentor in $projectMentors) | ||
20 | ## Store it like this so that we can sort by the reference lowercase (poor man's ignore case sorting). | ||
21 | #set ($discard = $availableMentorsMap.put($projectMentor.trim().toLowerCase(), $projectMentor.trim())) | ||
22 | #end | ||
23 | #end | ||
24 | |||
25 | #macro (displayProject $project $student) | ||
26 | #set ($discard = $project.use('GoogleSummerOfCode.ProjectClass')) | ||
27 | (% style="border: 1px dotted #CCC; margin: 0 auto 10px; padding: 0 8px 4px;" %)((( | ||
28 | (% style="margin-top: 0;padding-top: 22px" %) | ||
29 | == [[$project.displayTitle>>$project.fullName]] #if ("$!student" != '')by ${xwiki.getUserName($student, false)}#end == | ||
30 | (% class="projectdesc" %)((( | ||
31 | $project.details | ||
32 | (% class="clearfloats" %)((())) | ||
33 | ))) | ||
34 | (% style="font-size: 80%; color: #888;" %)((( | ||
35 | #if ("$!project.getValue('leader')" != '') | ||
36 | //Coordinated by// $project.display('leader', 'view') | ||
37 | #end | ||
38 | #if ("$!project.getValue('assignee')" != '') | ||
39 | //Contributor// $project.display('assignee', 'view') | ||
40 | #end | ||
41 | #if ("$!project.getValue('workload')" != "") | ||
42 | //Estimated workload//: **$project.display('workload', 'view')**. | ||
43 | #end | ||
44 | #if ("$!project.getValue('difficulty')" != "") | ||
45 | //Difficulty//: **$project.display('difficulty', 'view')**. | ||
46 | #end | ||
47 | [[Read more...>>$project.fullName]] | ||
48 | ))) | ||
49 | ))) | ||
50 | #end | ||
51 | {{/velocity}} | ||
52 | |||
53 | {{box cssClass="floatinginfobox" title="**Contents**"}} | ||
54 | {{toc/}} | ||
55 | {{/box}} | ||
56 | |||
57 | This page hosts information and project ideas for the open source project [[XWiki>>http://www.xwiki.org]] related to the {{velocity}}[[Google Summer of Code ${gsocYear}>>https://summerofcode.withgoogle.com/]]{{/velocity}} mentorship program. | ||
58 | |||
59 | = About GSoC = | ||
60 | |||
61 | You can learn a lot about the program by reading the {{velocity}}[[GSoC FAQ>>https://developers.google.com/open-source/gsoc/faq]]{{/velocity}}. The timeline of this year's edition is given {{velocity}}[[here>>https://developers.google.com/open-source/gsoc/timeline]]{{/velocity}}. | ||
62 | |||
63 | = Getting Started = | ||
64 | |||
65 | {{warning}} | ||
66 | As a **new GSoC Contributor candidate**, you're probably looking for this section! Please **read** it carefully (and the **linked resources**) before asking for guidance or where to start. It applies to all proposed projects and it covers many topics asked by newcomers. | ||
67 | {{/warning}} | ||
68 | |||
69 | 1. Being part of the XWiki community means knowing [[**our rules and practices**>>GoogleSummerOfCode.Guidelines]]. | ||
70 | 1. As a GSOC Contributor or candidate, you need to make sure you read and apply our [[**guidelines**>>GoogleSummerOfCode.Guidelines]]. It also contains suggested way of getting to know the XWiki project and its community. This is where you find out what you need to get up to speed with developing extensions or making changes to the XWiki product. | ||
71 | |||
72 | Please **do not skip this part**. Don't be that person joining the community and asking "where do I start?". This is your first test you need to pass :) | ||
73 | |||
74 | = Application template = | ||
75 | |||
76 | When applying for one of our projects, please provide [[this information about yourself and the project you choose>>GoogleSummerOfCode.student application form]] in the application which you submit to Google. | ||
77 | |||
78 | {{velocity}} | ||
79 | #if ($selectedProjectToStudentMap.size() > 0) | ||
80 | |||
81 | = Selected Projects for GSoC ${gsocYear} ($selectedProjectToStudentMap.size()) = | ||
82 | |||
83 | The projects below, out of all the proposed projects, have been selected to participate in GSoC ${gsocYear}. | ||
84 | |||
85 | #foreach ($selectedProjectDocument in $sorttool.sort($selectedProjectToStudentMap.keySet(), 'displayTitle')) | ||
86 | #set ($studentIndex = $mathtool.sub($foreach.count, 1)) | ||
87 | #displayProject($selectedProjectDocument "$!selectedProjectToStudentMap.get($selectedProjectDocument)") | ||
88 | #end | ||
89 | |||
90 | #end | ||
91 | {{/velocity}} | ||
92 | |||
93 | = Proposed Projects ({{velocity}}$projects.size(){{/velocity}}) = | ||
94 | |||
95 | {{info}} | ||
96 | You can contribute to this list! We encourage would-be mentors to propose ideas or even to revive old ideas from the previous years, but, if you do, make sure to **assign yourselves as mentors** for the proposed project. Proposals without mentors will be discarded, as we have learned from previous years that they are counter-productive. | ||
97 | |||
98 | Candidate Contributors are also encouraged to propose projects, but make sure you first present and discuss your idea on the [[forum (dev category)>>https://forum.xwiki.org/c/Dev/]] and that they **find a mentor** interested in the idea who should then be assigned to the project proposal. | ||
99 | |||
100 | We also recommend candidates interested in joining XWiki for GSoC {{velocity}}${gsocYear}{{/velocity}} to **manifest themselves as early as possible** so that we can start working with them on this project list. Communication is the key to success at GSoC! | ||
101 | {{/info}} | ||
102 | |||
103 | {{velocity}} | ||
104 | #foreach ($project in $sorttool.sort($projects, 'displayTitle')) | ||
105 | * {{html}}<a href="#H$util.encodeURI("${project.displayTitle.replaceAll('[^a-zA-Z0-9\.]', '')}")">$project.displayTitle</a>{{/html}} | ||
106 | #end | ||
107 | #if($hasEdit) | ||
108 | |||
109 | {{html}} | ||
110 | <form class="xformInline" action="$xwiki.getDocument("${doc.space}.CreateProject").getURL()" id="newproject"> | ||
111 | <div> | ||
112 | <label for="newProjectName">Propose a new project:</label> | ||
113 | <input id="newProjectName" type='text' name='page' value='' size='30' placeholder="Short project title"/> | ||
114 | <span class='buttonwrapper'> | ||
115 | <input class='button' type='submit' value='Add to list'/> | ||
116 | </span> | ||
117 | <input type='hidden' name='parent' value="$doc.fullName" /> | ||
118 | <input type='hidden' name='classname' value='GoogleSummerOfCode.ProjectClass' /> | ||
119 | <input type='hidden' name='template' value='GoogleSummerOfCode.ProjectClassTemplate' /> | ||
120 | <input type='hidden' name='space' value="$doc.space"/> | ||
121 | <input type='hidden' name='xaction' value='create'/> | ||
122 | <input type='hidden' name='year' value="${gsocYear}" size='30'/> | ||
123 | </div> | ||
124 | </form> | ||
125 | {{/html}} | ||
126 | |||
127 | #end | ||
128 | |||
129 | #foreach ($project in $sorttool.sort($projects, 'displayTitle')) | ||
130 | #displayProject($project '') | ||
131 | #end | ||
132 | {{/velocity}} | ||
133 | |||
134 | = Mentors ({{velocity}}$availableMentorsMap.size(){{/velocity}}) = | ||
135 | |||
136 | The following community members are assigned to mentor the proposed projects: | ||
137 | |||
138 | {{velocity}} | ||
139 | {{html clean="false"}} | ||
140 | #foreach ($mentor in $sorttool.sort($availableMentorsMap.keySet())) | ||
141 | #displayUser($availableMentorsMap.get($mentor)) | ||
142 | #end | ||
143 | {{/html}} | ||
144 | {{/velocity}} | ||
145 | |||
146 | = Contact us = | ||
147 | |||
148 | You can ask for more information about each project proposal and interact with the community and mentors through the usual communication channels: [[forum>>Community.Discuss||anchor="HForum"]] or the [[Matrix channel>>Community.Chat]]. | ||
149 | |||
150 | = What's next after GSOC? = | ||
151 | |||
152 | First and foremost: Thank you for having participated to XWiki! | ||
153 | |||
154 | We want to keep you in the community for as long as possible. We understand that you may have school projects to carry on and won't have the time to continue participating much immediately after GSOC. However, we're really keen to see you coming back to this community when things settle a bit more and you get some time again. | ||
155 | |||
156 | Here's some visibility and ideas of what's next after you've completed a GSOC project and opportunities you may have: | ||
157 | |||
158 | * You could be voted as [[Committer>>doc:Community.Committership]] | ||
159 | * You could get hired by one of the [[companies doing some business on top of the XWiki project>>doc:xwiki:Main.Supporters.SponsoringCompanies.WebHome]] | ||
160 | * Become a [[Google Code-In mentor>>doc:GoogleCodeIn.WebHome]] | ||
161 | * You could propose a school project, PhD, etc about XWiki to your teachers! | ||
162 | * You'll be able to add a nice line to your CV about having participated to an open source project :) | ||
163 | * You can ask for recommendations on LinkedIn, Facebook, etc about your work as a GSOC Contributor | ||
164 | * (Future, doesn't exist ATM) Your name on the [[Hall of Fame>>doc:Community.HallOfFame]] | ||
165 | * (Future, doesn't exist ATM) Receive an XWiki GSOC t-shirt | ||
166 | * (Future, doesn't exist ATM) Be sponsored to take about XWiki at conferences | ||
167 | * (Future, doesn't exist ATM) Be able to implement some bounties for XWiki and get paid for it | ||
168 | * (Future, doesn't exist ATM) Be invited to physically participate to an XWiki conference | ||
169 | |||
170 | = Org Admin Resources = | ||
171 | |||
172 | If you are one of this year's XWiki Organization Administrators, make sure to check out the [[Organization Admin Guide>>GoogleSummerOfCode.OrganizationAdministratorGuide]]. | ||
173 | |||
174 | = Previous GSoC editions = | ||
175 | |||
176 | * [[The XWiki GSoC 2022 page>>GoogleSummerOfCode2022]] | ||
177 | * [[The XWiki GSoC 2021 page>>GoogleSummerOfCode2021]] | ||
178 | * [[The XWiki GSoC 2020 page>>GoogleSummerOfCode2020]] | ||
179 | * [[The XWiki GSoC 2019 page>>GoogleSummerOfCode2019]] | ||
180 | * [[The XWiki GSoC 2018 page>>GoogleSummerOfCode2018]] | ||
181 | * [[The XWiki GSoC 2017 page>>GoogleSummerOfCode2017]] | ||
182 | * [[The XWiki Google Code-In 2017 page>>dev:GoogleCodeIn.WebHome]] | ||
183 | * [[The XWiki GSoC 2016 page>>GoogleSummerOfCode2016]] | ||
184 | * [[The page prepared for GSoC 2015>>GoogleSummerOfCode2015]] (XWiki was not selected for GSoC 2015) | ||
185 | * [[The page prepared for GSoC 2014>>GoogleSummerOfCode2014]] (XWiki was not selected for GSoC 2014) | ||
186 | * [[The XWiki GSoC 2013 page>>GoogleSummerOfCode2013]] | ||
187 | * [[The XWiki GSoC 2012 page>>GoogleSummerOfCode2012]] | ||
188 | * [[The XWiki GSoC 2011 page>>GoogleSummerOfCode2011]] | ||
189 | * [[The page prepared for GSoC 2010>>GoogleSummerOfCode2010]] (XWiki was not selected for GSoC 2010) | ||
190 | * [[The XWiki GSoC 2009 page>>GoogleSummerOfCode2009]] | ||
191 | * [[The XWiki GSoC 2008 page>>GoogleSummerOfCode2008]] | ||
192 | * [[The XWiki GSoC 2007 page>>GoogleSummerOfCode2007]] |