GSoC 2011 Student Requirements

=Scribus Team GSoC Student Requirements= Version:  1.1 - GSoC 2011.

All prospective students are required to read this page and agree to follow the guidelines below to be considered for a Google Summer of Code (GSoC) application with the Scribus Team.

Before you apply

 * First of all, remember that GSoC is a full-time job. Be ready to put in at least an equivalent amount of time over the duration of the program. If you have many upcoming exams at your school, are thinking of getting another part-time job or an extended vacation - please reconsider applying to GSoC. If you still want to do it you will have to be very explicit about your other obligations and take them into account when preparing your personal program timeline.


 * To have a chance at one of the prospective GSoC slots you must 'Communicate early, communicate often'. We've got to talk to you in #scribus or #scribus-dev on Freenode, either scribus, scribus-dev, or gsoc mailing list on lists.scribus.info. To be able to decide whether you can get a project done we need to get to know you 'before' you apply. See [Contact information] for more information on communication choices.


 * Be respectful. This applies not just to Google, who has generously set up this program, but also to the Scribus Team, and especially the mentors, who not only want to make GSoC successful, but also your particular project for the betterment of Scribus. Applying for and being accepted for GSoC is a contractual obligation, in which you state what it is you want to do, and promise to make every effort to successfully complete your project.


 * GSoC is highly competitive, and past experience has shown that only those who understand what they must do and can spell it out are going to have any chance of approval. We will do everything we can to help you formulate a clear, sensible, and useful project, then present that in the most advantageous way.

Your Application

 * Be Organized – You must have a plan for all 12 weeks of GSoC. You could be the smartest coder on the face of the Earth, but without a plan nobody can see your ability to deliver the results. This plan must include your contingency plans for working around more difficult parts of the project should they prove to be too challenging, backup plans for recovering after an unforeseen absence, ways to reach you and your plans to communicate with you mentor and the rest of the Scribus Team. Preparing this plan will allow you to think ahead and have an outline that you can use to verify your progress. It will also help us monitor your performance, so we could help you when difficulties arise.


 * Be Competent – You must try to submit a patch that fixes one of the bugs or feature requests in the Scribus BTS - no matter how small or trivial the patch is. This will show that you have minimal proficiency using a BTS, patch, subversion, and have at least some idea about Scribus codebase. We are not asking for the world here - there are potentially thousands of small fixes or improvements that can be done very easily.


 * Be Communicative – Talk to the team and identify people or the person most familiar with the area of the codebase that you will be interested in working on during GSoC. This will make it much easier for us to provide  you with the best mentor and we'll be able to judge your communication  skills in the process.


 * Be Connected – Get a gmail.com, a sourceforge.net, and wiki.scribus.net accounts as those are required for GSoC participation, access to our sourceforge subversion repository, and editing ideas and  plans pages respectively.

GSoC Participation

 * Once you are accepted, we expect you to talk to your mentor via IRC or email at least twice a week. Once per week communication will result in a warning and a week or more of silence will result in a serious consideration of the termination of your project unless prior arrangements were made with your mentor and the Scribus Team's GSoC administrators are aware of those. If you are falling behind on your schedule or having any problems whether with your project or outside of it - talk to us immediately. Number one cause of GSoC failures is the lack of communication. In most cases project goals can be adjusted, schedules rewritten, and help given. If we don't know you are in trouble we can't help you.


 * We would really like you to keep a blog about your progress as it would create a public record of your  participation and provide a way for all interested people to keep track  of your progress.


 * Keep your code in working order i.e. it should apply cleanly to your chosen Scribus svn branch, so Scribus developers could check your tree out and build it. The code does 'not'  have to be feature complete at any given time, but it must compile. This in turn requires that you develop some familiarity with subversion and  cmake - the build tool we use. Don't worry - we are here to help you  with any problems you might have while learning these tools.


 * 'Commit early, commit often'. We expect you to commit your work to subversion often, so there is a track of your work and interested people could comment on it and help you along. Remember - if it's not checked  into a rcs (Revision Control System) - it does not exist.


 * Allocate enough time in your schedule to produce the final tarball for Google and write a final project report.

After GSoC

 * The main reason why Google runs GSoC year after year spending millions of US dollars on the program is to encourage  continuing participation of students in open source project. The Scribus Team benefits from GSoC not just from the various projects that might come to some useful end, but more importantly by finding those who enjoy collaborating on a project like this by staying around and becoming a part of our team. Please keep that in mind throughout the project. Ask yourself if you like doing this, if you enjoy communicating with the Scribus Team and  participating in the wider Scribus community. We'd love to see you a  part of the Scribus world.


 * What's in this for you? is a fair question. What you gain from this is a deeper understanding about coming into a reasonably mature project like Scribus, which is still pushing forward to add new features that users want and need. Even if your main goal is to be able find a paid position in some company, the ability to work with established code, work with others with varying skills, learning from them, and at times teaching them as well, you show that you can be put into a position of responsibility and make your mark in the project. What more can a future employer be looking for?

Project Management
Acunote will again be our preferred project tracker for GSoC projects.

Revision Control
We will provide Subversion accounts for  accepted students in Scribus sourceforge SVN repository and expect them to use it.

Usage of git is also acceptable.