The ikiwiki project aims to develop a general-purpose wiki engine, with particular emphasis on personal wikis, project wikis, blogs, and collaborative software development. We provide several features unique or uncommon amongst wikis:
* Rather than inventing yet another simplistic, linear revision control system, ikiwiki uses a standard version control system such as Subversion or Git. You can edit a wiki by committing to your repository, as well as through a traditional web interface. This makes ikiwiki ideal for collaborative software development; just keep your wiki in version control next to your software. You can also take advantage of the features of these systems; for instance, you can keep a local branch of your wiki via Git.
* You can turn any set of pages into an inline news feed, complete with RSS and Atom support. You can run your weblog on ikiwiki (and many people do), run a Planet-like aggregator for external feeds, or keep a TODO and bug list with tags for completed items.
* ikiwiki provides a wiki compiler, designed to transform your wiki content into a set of static pages. You can then serve these pages as static content. ikiwiki will not fall over during a Slashdotting, because page views don't require the ikiwiki CGI; as long as Apache can keep up, your site will survive. Furthermore, you can choose whether you want to run the ikiwiki CGI for web edits or only handle commits to the underlying version control system; you can even run ikiwiki privately and just manually copy the content to another server. So if you want to put a wiki up on a server without installing any software on that server, try ikiwiki.
2. **Why is your organization applying to participate in GSoC 2007? What do you hope to gain by participating?**
ikiwiki has had a strong positive response from several communities of software developers. We believe we have filled a genuine need, unaddressed by previous software. Many users have begun to take ikiwiki in unexpected directions, using it in ways we had not previously envisioned.
Thus, we believe ikiwiki has reached a stage where it would greatly benefit from more widespread exposure to the ingenuity of other developers.
Furthermore, we have a good list of existing projects on our TODO list. The nature of ikiwiki, with its highly capable plugin system and broader focus than most wikis, results in far more ideas than implementation time. We have a well-managed TODO list, ranging from minor items to major projects. We would greatly appreciate contributions toward some of our more substantial feature ideas. We believe we have a very low barrier to contribution.
3. **Did your organization participate in GSoC 2005 or 2006? If so, please summarize your involvement and the successes and failures of your student projects.**
ikiwiki uses the GNU General Public License. The basewiki, incorporated into users' wikis, uses an all-permissive license. See <http://ikiwiki.info/freesoftware.html> for details.
We will strongly encourage all students working on projects to create a user page with an activity blog, and update that blog regularly with the status of their project. We will use these blogs to closely monitor the progress of each student on their projects. If a student mentions problems they have encountered, we will work with them to resolve those problems. If we see no activity from a student for longer than their usual status-reporting interval, we will check with them directly to determine their status.
Before the program, we will encourage any students interested in working on ikiwiki to contact us. We will advise them to create an account on the ikiwiki ikiwiki, look over the TODO items (<http://ikiwiki.info/todo.html>), add ideas of their own, and discuss existing ideas. We will also help them set up their own ikiwikis, both for experimentation and for actual use. We will suggest that students begin looking at the ikiwiki codebase and asking questions.
During the program, we would like all students working on projects to create a user page with an activity blog, and update that blog regularly with the status of their project. We also plan to aggregate these blogs into a single Summer of Code newsfeed, and suggest that students subscribe to this feed; this will allow them to observe the activity of their fellow students, to spur each other forward and help each other along the way. We plan to accept incremental patches towards a feature, or support students who wish to create their own branch.
After the program, we will continue to work towards integrating any projects that have not yet completed, and talk with students about their future plans regarding ikiwiki. If the students have started using ikiwiki for their own wikis, as we hope they will after we encourage them to experiment with it, then they will likely have a vested interest in ongoing ikiwiki development. Thus, we will encourage them to remain active by helping them become active and interested users.
Near the conclusion of GSoC, we will talk to each student about their future plans regarding ikiwiki. During the program, we will help the students set up their own ikiwikis if they have not already done so, and encourage them to use those ikiwikis to maintain a weblog, maintain their personal website, keep a TODO list, or do any of the other tasks ikiwiki proves useful for. We plan to encourage the students to remain active developers by helping them become active and interested users, and thus giving them a personal stake in the ongoing development of ikiwiki.