GSoC 2011 Student Requirements

=Scribus Team GSoC Student Requirements= Version:  1.2 - 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 better chance at one of the prospective GSoC slots make sure you put a lot of effort into communicating with the Scribus Team and the Community. We'd love to be able 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 – 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 us that you have the proficiency in using a BTS, patch, subversion, and can find your way in the Scribus codebase.


 * 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 Accessible – 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 your public ideas and plans.

GSoC Participation

 * Once you are accepted, we expect you to talk to your mentor via IRC or email at least once a week. A week or more of silence is a red flag 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 provided. 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 develpment.


 * 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. A future employer could be looking just for those qualities.

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

Use of git is also acceptable.