Show last authors
1 {{box cssClass="floatinginfobox" title="**Contents**"}}
2 {{toc/}}
3 {{/box}}
4
5 = Getting started with the XWiki community =
6
7 The general starting point for anyone new to the XWiki community and interested in helping out would be the page on [[dev:Community.Contributing]].
8
9 It can be a bit overwhelming at first when going through all the online documentation for develpers available at http://dev.xwiki.org
10
11 It also matters what type of project you are planning to do. Usually, you don`t need to know how to build XWiki itself. What is more important is to understand is how to build applications/extensions //on top// of XWiki. For that, make sure to check out the guide on [[Getting started with XWiki for extension developers>>Drafts.GettingStartedWithXWiki]].
12
13 Of course, for any specific questions [[feel free to ask>>GoogleSummerOfCode.WebHome||anchor="HContactus"]].
14
15 To learn about how XWiki is developed (tools, practices, SCM organization, etc), check the [[dev wiki>>dev:Main.WebHome]].
16
17 For understanding how XWiki works, check the [[Architecture>>doc:platform:DevGuide.Architecture]].
18
19 = Increasing your chances of being accepted as a student =
20
21 * Before the student application period completes, any student applying at XWiki has to **show us that they are able to code**. As such, we require that each GSoC student applying picks one or several [[existing JIRA issues>>https://jira.xwiki.org/issues/?jql=category%3D10000%20AND%20resolution%20%3D%20Unresolved%20AND%20status%20in%20(Open%2C%20Reopened)%20AND%20assignee%20in%20(EMPTY)%20ORDER%20BY%20priority%20ASC%2C%20created%20DESC%2C%20updated%20ASC]] and sends Pull Requests that fix them before the deadline is up. It can be anything (bug fixes or improvements) but it needs to be of a moderate complexity, so either one more complex issue or a mix of several less complex ones. Applications without any accepted Pull Requests will have a very low chance of being selected.
22 ** There is a [[list of onboarding issues>>https://jira.xwiki.org/issues/?jql=labels%3DOnboarding]] that you could start with.
23 * Make the proposal as detailed and thought-out as possible. **Show us that you understand your project**, what needs to be done and what you plan to do about it (including a timeline with milestones that you plan to follow). A student who writes a proposal with a few lines that are a rewrite or the project description from the proposal list won't get good points.
24
25 = Suggested way of working for accepted GSoC students =
26
27 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 GSoC 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. Also, if these practices are followed, it'll be much easier to integrate the resulting work into XWiki's official releases.
28
29 So here are some practices we'd like GSoC students to follow (please comment on the [[forum (dev category)>>https://forum.xwiki.org/c/Dev/]] if you'd like to change some of them or propose other things):
30
31 * GSoC students should be considered like any XWiki contributor which means they should respect the same rules and that they are not committers on XWiki core. Note that a GSoC student can become a Committer in the [[same manner a contributor can become one>>Community.Committership]].
32 * GSoC students will be given access to [[Contrib>>contrib:Main.WebHome]], where they'll create their project (a repository inside xwiki-contrib). For projects which need to modify some existing code, [[JIRA>>https://jira.xwiki.org]] issues will need to be created and Pull Requests to be used. It's important that Pull Requests be of good quality and small in order to be applied quickly. Once a project reach a good level of maturity (meaning it works and the code is of code quality, documented, etc.) we could even include them in an XWiki flavor (even the main XWiki flavor if applicable). At the very least, the project will be published and available as an extension published on [[extensions.xwiki.org>>extensions:Main.WebHome]] and will be installable by anyone having an XWiki instance.
33 * GSoC students should obey all [[Community rules>>Community.WebHome]]. For example this means:
34 ** using the XWiki coding conventions;
35 ** using the defined communication channels: Matrix and [[forum>>https://forum.xwiki.org/]];
36 ** etc.
37 * **GSoC students have time allocated to familiarize with the XWiki community and development process. As such, we require that each GSoC student continues fixing [[existing JIRA issues>>https://jira.xwiki.org/issues/?jql=project%20in%20%28XWIKI%2C%20XRENDERING%2C%20XCOMMONS%2C%20XE%29%20AND%20resolution%20%3D%20Unresolved%20AND%20status%20in%20%28Open%2C%20Reopened%29%20AND%20assignee%20in%20%28EMPTY%29%20ORDER%20BY%20priority%20ASC%2C%20created%20DESC%2C%20updated%20ASC]] and creating Pull Requests during the Community Bonding Period (23rd April - 14th May, [[always check the timeline>>https://developers.google.com/open-source/gsoc/timeline]]).** This is a critical integration step to ensure all GSoC students understand how XWiki works, how to ask questions and to communicate properly with the community and, ultimately, get to know each other.
38 * GSoC student should post a quick introduction on the [[forum (dev category)>>https://forum.xwiki.org/c/Dev/]] to explain who they are and what they're going to work on.
39 * GSoC students must periodically [[update their progress report>>DocumentingStudentProgress]] for the project they have been assigned to.
40 * GSoC students should create a [[Design page>>design:Main.WebHome]] where they document technical aspects of the feature they are working on: architecture, use cases, problems, various solutions with pros and cons, etc. This page should be written as an XWiki community member and not a GSoC student (there is the [[progress report>>DocumentingStudentProgress]] for that), ensuring that the page will remain relevant even after the GSoC period end.
41 * GSoC student should always go to the [[forum (dev category)>>https://forum.xwiki.org/c/Dev/]] when communicating about their project. They should not talk directly to their mentors. They should use the XWiki Matrix channel if they need to talk to them. The goal is that everyone in the XWiki community helps them, answers their questions but also knows what they are doing. This will make the integration of their work back into XWiki 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 mention their mentor's in the forum if they want.
42 * GSoC students should not block on anything for a long period of time. They should ask plenty of questions on the forum ([["Discuss" category for questions about using XWiki>>https://forum.xwiki.org/c/Discuss/]] and [["Dev" category for questions about GSOC development>>https://forum.xwiki.org/c/Dev/]]) (but they should also be autonomous!)
43 * GSoC students should be as much as possible in contact with the community, following the forum (and answering questions, when they know what to say), stay on the Matrix channel, give regular status updates on their project. This does not mean that a GSoC 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.
44 * When taking a vacation/break, students have to notify the mentor; a mysterious disappearance could lead to a negative feedback afterwards.
45
46 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.
47
48 Good generic advices:
49
50 * http://www.slideshare.net/felipecerda/i-want-2-do-project-tell-me-wat-2-do
51 * http://www.youtube.com/watch?v=vBRRR0BQyz0
52
53 == Conditions for success ==
54
55 Students will need to meet these criteria for success:
56
57 1. Must have something that works and is in some finished state.
58 1. Must be integrated or close to be integrated in XWiki without too much effort
59 1. Must have interacted correctly and continuously with the community
60 1. 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).

Get Connected