Getting started with the XWiki community

The general starting point for anyone new to the XWiki community and interested in helping out would be the page on Contributing.

It can be a bit overwhelming at first when going through all the online documentation for develpers available at http://dev.xwiki.org

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.

Of course, for any specific questions feel free to ask.

To learn about how XWiki is developed (tools, practices, SCM organization, etc), check the dev wiki.

For understanding how XWiki works, check the Architecture.

Increasing your chances of being accepted as a student

  • 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 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.
  • 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.

Suggested way of working for accepted GSoC students

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.

So here are some practices we'd like GSoC students to follow (please comment on the mailinglist if you'd like to change some of them or propose other things):

  • 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.
  • GSoC students will be given access to Contrib, where they'll create their project (a repository inside xwiki-contrib). For projects which need to modify some existing code, JIRA 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 and will be installable by anyone having an XWiki instance.
  • GSoC students should obey all Community rules. For example this means:
    • using the XWiki coding conventions;
    • using the defined communication channels: IRC and mailing list;
    • etc.
  • 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 and creating Pull Requests during the Community Bonding Period (22 April - 23 May May). 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.
  • GSoC 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.
  • GSoC students must periodically update their progress report for the project they have been assigned to.
  • GSoC students should create a Design page 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 for that), ensuring that the page will remain relevant even after the GSoC period end.
  • GSoC 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 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 CC their mentor's email address if they want but the mails have to go to the XWiki dev list.
  • GSoC 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!)
  • GSoC 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 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.
  • When taking a vacation/break, students have to notify the mentor; a mysterious disappearance could lead to a negative feedback afterwards.

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.

Good generic advises:

Conditions for success

Students will need to meet these criteria for success: 

  1. Must have something that works and is in some finished state.
  2. Must be integrated or close to be integrated in XWiki without too much effort
  3. Must have interacted correctly and continuously with the community
  4. The work must have been enough (it's supposed to be a 2 men/month effort)

Note that the real important part is 3) since this is a criteria for success for 1), 2) and 4).

Tags:
Created by Ecaterina Moraru (Valica) on 2014/02/13 18:05
    

Get Connected