GSoC/2012/Instructions

This page is based on the KDE project's page.

phpBB is participating in Google Summer of Code 2012. These are instructions for student who would like to apply for a project with phpBB.

= General Instructions = All participants should take a look at the Summer of Code Program Wiki every now and then to be informed about updates and advices. It is also important to read the Summer of Code FAQ, as it contains useful information. Pay special attention to the Eligibility section of the FAQ.

When submitting your GSoC application, please include your GitHub username, phpBB username and IRC username if you have any so that we know who you are.

= Development Information = phpBB's development is discussed on the Area51 development discussion board. Anyone can post RFCs for changes and new features there and discuss them. Bugs are reported on the ticket tracker and the code is versioned using git on GitHub. The phpBB repository is located at github.com/phpbb/phpbb3.

phpBB's current stable version is 3.0 and we occasionally release a 3.0.x release with bugfixes. Most development work is currently focusing on 3.1, a feature release, which we hope to release soon. It's already quite far progressed, and we don't accept new features for it anymore. 3.2 is the next planned feature release. Many people have posted RFCs for new ideas that still need discussion and have yet to be implemented. If you participate in Google Summer of Code your project will most likely end up in 3.2. Lastly phpBB 4.0 is an idea for a rewrite based on the Symfony2 framework. No actual code has been written for 4.0, it's still in the planning phase.

= Recommended Steps =
 * Read Google's instructions for participating
 * Come up with a project you're interested in
 * Take a look at the list of ideas
 * Peruse existing RFC topics here and here
 * Propose an entirely new idea
 * Write a first draft proposal and get someone (e.g a fellow student) to review it for you
 * Submit it using Google's web interface

Coming up with an interesting idea is probably the most difficult part of all. It should be something interesting for phpBB, for open source in general and forum users in particular and for you. It also has to be something you can realistically achieve in the time available to you.

Finding out what the most pressing issues are is a good start. You should join the Area51 development discussion forum and check out our IRC channel #phpbb-dev on FreeNode: you can make acquaintance with developers and your potential mentor, as well as start learning the codebase. We recommend strongly doing that and we will look favourably on applications from students who have started to act like open source developers - see the next section.

= Start Participating = If you decided to apply to phpBB, or are seriously considering it, you should try to fix a small issue to familiarize yourself with the development process.


 * 1) Join the Area51 development discussion forum.
 * 2) Join our IRC channel #phpbb-dev on FreeNode. This is where real time development discussions happen.
 * 3) Find a small issue to fix. You can try this list of open trivial issues, search the tracker yourself or ask on IRC what you can fix.
 * 4) Create a GitHub account and fork phpBB 3 repository. See Git for further information about phpBB repositories.
 * 5) Make the changes necessary to fix the issue. Be sure to create a Git and follow our coding guidelines and Git rules.
 * 6) Create a pull request on github.
 * 7) Update the ticket with your pull request url.
 * 8) Request review of your changes on IRC.

= Student Proposal Guidelines = A project proposal is what you will be judged upon. So, as a general recommendation, write a clear proposal on what you plan to do, what your project is and what it is not, etc. Several websites now contain hints and other useful information on writing up such proposals.

phpBB does not require a specific format or specific list of information but here are some specific points that you should address in your application:

Technical

 * Explain the problem that you want to solve.
 * Explain the benefits that solving this problem will bring to users or phpBB.
 * Break down your project into component parts. Make a list of the parts.
 * Which parts depend on other parts? Which can be worked on concurrently?
 * Which parts are essential to your proposal?
 * Which parts can be omitted if development takes longer than you expect?
 * Develop a rough timeline. It should account for design, development and testing of each component part. Be sure to build in time to adjust the code based on reviews, and to fix bugs found in testing.

Personal

 * Who are you? What are you studying?
 * What experience relevant to your proposal do you have?
 * Why are you the right person to implement your proposal?
 * Have you used phpBB?
 * Have you modified phpBB?
 * Have you submitted any patches to phpBB, and have any of them been accepted?
 * How many hours are you going to work on this a week? 10? 20? 30? 40?
 * Do you have other commitments that we should know about?
 * What is your GitHub username, phpBB username, IRC username?
 * What time zone are you in?
 * Are you comfortable working with a mentor who is several time zones away? Have you worked in this style before?
 * How will you track your work?
 * What is your native language?
 * Where do you live, and can we assign a mentor who is local to you so you can meet in a coffee shop for lunch?

After you have written your proposal, you should get it reviewed. Do not rely on the phpBB mentors to do it for you via the web interface: they will only send back a proposal if they find it lacking. Instead, ask a colleague or a developer to do it for you.