[dokuwiki] Google Summer of Code
- From: Michael Hamann <michael@xxxxxxxxxxxxxxxx>
- To: dokuwiki <dokuwiki@xxxxxxxxxxxxx>
- Date: Wed, 02 Feb 2011 16:42:18 +0100
Hi,
we've already talked about the Google Summer of Code multiple times, so
I've just looked up the timeline for this year [1] and the application
for mentoring organizations starts at February 28 and goes till March 11,
so there is still some time left. Nevertheless I think it might be a
good idea to start collecting ideas.
My ideas so far:
- The common API interface for XML-RPC and JSON-RPC. This involves
writing an more abstract RPC-Interface and possibly also writing new
functions that should be used in DokuWiki core, too, as currently
there is quite some functionality duplicated iirc. Another API that
could be implemented if there is time left would be a mail interface
using POP3(S)/IMAP(S).
- Implement pagemoveng (I don't know if that reverse renderer works
already or works at all, we should make sure that it can be
implemented that way)
- Implement a three-way-merge algorithm (or use an existing JavaScript
implementation) and make locks optional
- Implement simultaneous editing like in Google Docs or Etherpad, e.g.
using mobwrite [2] (as suggested by Andi at FS#679) - a tricky part
might be the integration with the toolbar.
- Implement a Git backend using a pure PHP Git implementation. I'm not
sure about this point. I think really using Git as backend means a lot
of stuff needs to be added to UI and the core code either needs to be
made much more flexible or the current directory/file structure needs
to be kept (there are many places that rely on timestamps of files).
On the other hand one could also simply commit the parts of the data
directory that make sense into a Git repository - but that again is
imho too simple for a GSOC task (and exists already?). Perhaps just
moving attic/ to Git might be an idea? And then perhaps implement an
admin-plugin for supporting merges, branching (branches could be
checked out as separate namespaces) etc. if that's easily possible
using the pure PHP Git implementation (if you want to understand how
the Git internals work I can recommend Gittin Down to the Plumbing
[3], the pure PHP implementation I know is glip [4]).
- Implement version control on files (FS#598). The basics are simple,
but there also needs to be user interface for media revisions etc.
Another step here might be adding metadata for files that is indexed
(FS#474). We should probably give some more ideas how the user
interface should look like (e.g. if it shall be integrated in the
plugin manager or a completely new interface or like the current UI
for pages).
- Implement an Android or iPhone client for DokuWiki that allows offline
browsing and also editing a remote Wiki (e.g. using XML-RPC). Perhaps
using a tool that allows to create apps for multiple mobile platforms
might work, too. I don't expect that application to render DokuWiki
pages, perhaps it can do some basics for offline editing, but
basically it should use already rendered pages it gets using XML-RPC.
If nobody else is first I'll probably create a wiki apge
(devel:gsoc_ideas?) with these ideas during the next days.
Of course we also need mentors who look after the students, I can
imagine doing that (except for that mobile app), at least a second
person is required afaik. I hope the work for these mentors won't be
that much, of course the code needs to be reviewed etc., but questions
should also be answered by other people here on the mailinglist and in
the IRC channel.
Michael
[1]
http://www.google-melange.com/document/show/gsoc_program/google/gsoc2011/timeline
[2] http://code.google.com/p/google-mobwrite/
[3] http://git-plumbing-preso.heroku.com/
[4] http://fimml.at/#glip
--
DokuWiki mailing list - more info at
http://www.dokuwiki.org/mailinglist
Other related posts: