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)