Hello XWiki Summer-of-Coders 2007,
First of all, thank you for showing your interest in Open Source
development, and for choosing XWiki as the project which will get you
acquainted with this kind of development.
[For all xwiki community members who don't know what the summer of
code is, check XWiki's SOC page on
http://www.xwiki.org/xwiki/bin/
view/GoogleSummerOfCode/]
The goal of the Summer of Code program is to introduce young students
like you in the fantastic world of Open Source. If you only view this
as a better paid summer job, then you can't be any more wrong. Our
mission, as your mentors, is to ease your understanding of how things
work, to help you learn new things you won't be thought in school, to
integrate you in a large and very friendly community, and to help you
understand how a very large project is managed, planned, developed.
Open Source is not only about the code. It is more about the
Community that participates in the development of the code. We, the
mentors, will do our best to introduce you in this community and make
you enjoy being part of it, so that when the summer ends, and all
your obligations as soc-ers cease to exist, you will want to continue
being part of our community. The most successful example is that of
Sergiu, who was a SoC student like you last year, and now is a mentor
for two of the accepted projects.
Your job is a bit more difficult. You have to catch up with hundreds
of thousands of lines of code, learn about so many new technologies,
get used to a whole new way of working on a project, get used to the
many rules regarding project development that make it survive the
competition and become famous, AND write a not-so-simple new
component for XWiki. We know this is a difficult task to achieve in
less than 4 months, especially on your own, so we are willing to
offer any help we can provide.
So, let's get started.
1. We need to know what your main email address is (the one you check
more often), so that we can reach you faster when needed.
2. We need to establish some rules regarding how you will interact
with the mentors and the community, and how you will develop your code.
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 SoC
student work into XWiki's official releases.
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):
* 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.
* 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.
* SoC students should obey all Community rules. For example this means:
o using the XWiki coding conventions
o using the defined communication channels: IRC and mailing list
* 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 12th of April to 28th of May) 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.
* 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.
* SoC student should always go to the list when communicating about
their project. They should use the XWiki IRC channel if they need to
talk to their mentors. 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 students can also CC their mentor's
email address if they want, but the mails have to go to the XWiki dev
list.
* 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!)
These practices are also listed on
http://www.xwiki.org/xwiki/bin/
view/GoogleSummerOfCode/
3. Here's what you need to do to get you started:
a) You need to register on
http://forge.objectweb.org/account/
register.php
ObjectWeb (or the OW2 Consortium, as it is known now) is an Open
Source software community, and XWiki is one of the many projects
belonging to this large "family". Mainly, it offers the same
facilities Sourceforge offers. This is where the source code is
hosted, and where the official mailing lists are hosted.
You have to remember the username and password, because later you
will use them for commiting code.
b) You should subscribe to some of the mailing lists on http://
forge.objectweb.org/mail/?group_id=170 . We recommend that you
subscribe at least to xwiki-dev and xwiki-users.
c) You need to register on
http://jira.xwiki.org/jira/secure/Signup!
default.jspa
This is where the code management takes place. It is a repository of
known bugs, issues, planned new features or improvements. It also
offers some statistics and roadmaps regarding the project evolution.
Getting accustomed to using JIRA is a requirement.
d) Download the XWiki source code. Follow the instructions on http://
www.xwiki.org/xwiki/bin/view/Community/SourceRepository
For the moment, you can only checkout the code using anonymous access.
e) It will be very hard to understand the code by reverse
engineering. We know that the documentation is not our strong point
(on the contrary), but reading the guides on
http://www.xwiki.org/
xwiki/bin/view/Main/Documentation will help a lot.
f) Try to follow the discussions on JIRA and on the mailing lists.
We do know that you still have classes and exams, and we definitely
don't want you to disregard school, so take things easy, and don't
panic if something seems too difficult. Don't be shy, Open Source
communities are about communications and help.
Good luck,
-The XWiki SOC mentor team (Sergiu, Jeremi, Ludovic, Jean-Vincent,
Vincent)