Google Summer of Code
(Mentors should read gsoc_organization)
DokuWiki was a mentoring organization for 2011's Google Summer of Code and applied for 2012 but has been rejected.
Even though DokuWiki is not a mentoring organization for Google Summer of Code 2012 you can still get in touch with us and work on these ideas, however there will be no stipend.
Below you can find our ideas you can use, but we encourage you to discuss your own ideas with us, too. All of our ideas aren't like “I take this idea” but require your own, additional ideas, too.
If you want some more detailed information on how the whole Google Summer of Code works the GSoCStudentGuide is a really good and extensive guide for students.
This is list shall give you a rough overview over each idea. You can find a lot more information at the pages of the individual ideas. Please don't add your own ideas here but instead contact the mailinglist or one of the mentors if you have your own ideas (which is of course great). These ideas aren't sorted in any particular order so please don't pick just the first idea.
The green headings are links to a page for each idea that provides much more information than these short summaries.
- pagemoveng: There is editx for simply moving pages but in the past we've had a plugin that also changed all links so they remain intact when a page is moved. This plugin is based upon regular expressions and doesn't really work anymore. There is a new plugin using the DokuWiki renderer that still needs to be finished.
- Difficulty: Hard
- translation: The translation interface at http://translate.dokuwiki.org should be extended so plugins can use the translation interface, too. Additionally it would be nice to include external services for providing help for the translator.
- Possible mentors: Andreas Gohr
- Difficulty: Medium
- multiuser_edit: Currently DokuWiki locks a page once someone starts to edit it. This idea is about adding a feature where two or more people could simultaneously edit the same page similar to the Google Docs or Etherpad.
- Difficulty: Medium
- testing_system: Change our testing system to provide a real testing environment and permit the usage of Selenium.
- Difficulty: Medium
- dokutexit: There is a LaTeX export plugin that needs cleaning up and making it fully work with the current DokuWiki version. Further steps could include adding support for BibTeX so DokuWiki could be used for scientific publishing, note taking etc. and a LaTeX export is also nice for printing and creating all kinds of good-looking documents
- Difficulty: Medium
- Work on some plugin(s): There are plugins like the the discussion plugin or the blogtng plugin that work but their internal design could be improved or some functionality is still missing like caching for blogtng. Look at their issue trackers and the code and discuss the details of the project with us on the mailinglist. We can also give you further ideas what could be improved in these plugins. You can also propose any other plugin or something more general like adding odt export support for a list of plugins. It just needs to be coordinated with the plugin author/maintainer if there is somebody maintaining the plugin currently.
- Your own ideas: We are also open for your own ideas, if they shouldn't fit into DokuWiki core we can also elaborate on how you can implement them as a plugin (you can also work on plugins and other software related to DokuWiki during GSoC). Please discuss your ideas on the mailinglist before you submit your application so we can make sure your ideas match our expectations.
What we expect of you
This is just for reference in the case you're wondering what a full GSoC project would be like, if you want to implement any of these ideas outside of GSoC these expections won't apply.
- Subscribe to the mailinglist - you can't do this early enough. The mailinglist is our main communication channel and also the best way how you can contact us. Once you will be accepted by us (April 23 19:00 UTC) we will announce your participation on the mailinglist and then you should be available on the mailinglist in order to present yourself and what you will be doing. There are usually also some developers in our IRC channel so joining the IRC channel would be good, too.
- Integrate yourself in the DokuWiki community. Write mails to the mailinglist about what you've done so far, which parts of your work can already be tested etc. In the first phase you should also try fixing some bugs or implementing some smaller features so you get familiar with the whole development workflow in DokuWiki.
- Be responsive. You should write regular mails to your mentor and answer questions both by private mail from the mentor(s) and also questions concerning your work on the mailinglist. Make sure you're also available for questions directly after the application period because we'll probably ask you some more questions then.
- Commit early, commit often. You shouldn't create one huge patch with your changes but instead a series of small commits. Each of them should cover one small and understandable change. Depending on the feature you are working on we should also be able to merge your changes into the main repository from time to time (or we'll even ask you to work directly in the main repository).
- Be prepared to have two short demo's in IRC during GSoC, to show other developers the progress of your project.
- Make clear when you'll be available/working and when not. The idea is that you'll work around 40 hours/week, if you can't do this during the whole time we need to know this in advance.
- Be motivated. 40 hours/week may be a lot so you really need to be enthusiastic about developing (DokuWiki) code all the day and should establish a regular schedule for your development work.
- Becoming a DokuWiki developer. We expect that you'll be around also after GSoC but of course you don't need to sign a contract or something like that and we'll understand that something like one or two hours/week might already be a lot when you are busy with university.
- Improve the documentation. Whenever you encounter something you don't understand and ask us or find out how something works that hasn't been documented yet please improve the documentation. There are also a lot of functions in the code that aren't properly documented, feel free to add more comments there.
- Write test cases. You don't need to test every little detail, but the critical parts should have tests covering them.
- Read lead developer Andi's mail Some-notes-for-our-GSoC-students. Ok, it wasn't sent yesterday but it's still good reading.
As DokuWiki is no mentoring organization for Google Summer of Code 2012 you don't need to apply in any official way. If you are interested in any project just contact us. You can answer some of the questions mentioned below in order to give us a better idea what we could expect of you and which kind of mentoring you need.
Please make sure you include the following points into your application. This is meant as help for you, if you don't follow this list but still cover the points this is okay, too.
- Who are you? Just to make interaction easier provide some basic facts like where you live and study. Please also provide details how we are able to contact you to ask further details if needed.
- Why have you chosen DokuWiki?
- Now your idea. What do you want to implement, why have you chosen that idea? How shall the functionality look like when it is finished, which technologies do you want to use?
- Provide a rough timeline how you plan to implement the idea. We like to have working code, so you should perhaps think about how you can possibly split your idea into multiple parts that are themselves usable or even make it possible to use and test your changes without breaking existing functionality during the whole development time. We understand of course that for some ideas this will be easier than for other ideas so this is no requirement.
- Which background do you have that allows you to implement that idea. E.g. where have you learned PHP, object oriented design, …, have you already implemented something similar. Are you already participating in OpenSource projects or have other code that is available online or have you already participated at GSoC? If yes please provide references so we can have a look at what you've been doing elsewhere.
- What can we expect of you - the basic idea is that working for a GSoC project is something like 40 hours/week, but of course we also understand when you e.g. have an exam, we just need to know that. Will you also be available after that time for fixing bugs in your code, do you already know if you want to become part of the DokuWiki developer team?