XWiki @ Google Summer of Code 2015

Last modified by Eduard Moraru on 2016/02/09 12:34

Unfortunately, XWiki will not take part in Google Summer of Code 2015 as a mentoring organization. However, if you like one of the projects proposed on this page and you would like to contribute, don't hesitate to contact us on the mailing list or the IRC channel.

This page hosts information and project ideas for the open source project XWiki related to the Google Summer of Code 2015 mentorship program.

About GSoC

You can learn a lot about the program by reading the GSoC FAQ. The timeline of this year's edition is given here.

XWiki Guidelines

Being part of the XWiki community means knowing our rules and practices. As a GSOC student you need to make sure you read and apply our guidelines. 

Student Application template

When applying for one of our projects, please provide this information about yourself and the project you choose in the application which you submit to Google.

Proposed Projects (12)

Students can come up with their own ideas, but the ideas need to be proposed and discussed on the mailing list.

We are currently gathering project ideas. We encourage would be mentors to propose ideas or even to revive old ideas from the previous years, but, if you do, make sure to assign yourselves as mentors for the proposed project. Proposals without mentors will be discarded, as we have learned from previous years that they are counter-productive.

Students are also encouraged to propose projects, but make sure you first run your idea through the community and that you find a mentor interested in the idea that you can assign to the project proposal.

We also recommend students interested in joining XWiki for GSoC 2015 to manifest themselves as early as possible so that we can start working with them on this project list.

Android contacts

The idea is to integrate a wiki instance in Android accounts.

In Android parameters add a XWiki account and get a form to indicate the instance URL, a user and a password (or even anonymous for public wikis) and get automatic synchronization of XWiki users in the Android contacts.

Coordinated by


Any Integration with one or more Major Open Source Tool

We would love to see integration with other Open Source Tools. These integrations could be brining data and interaction of the other tool in XWiki or the opposite. 

This project leaves the student to propose which integration he would like to work on. 

Coordinated by

Estimated workload: 3 month.

Continuous integration server


This proposal is to develop an XWiki based continuous integration server. The main focus is to execute long-running (external) build / test jobs and report tests results. We are interested in finding regressions.

Preferably the entire application will be developed using the XWiki data model + scripting API (with a little bit of Java, may be). Groovy provides a very advanced API for managing external processes [1], which makes it an ideal candidate for this job.

For an example use-case, suppose we need to continuously build and test the Apache httpd code-base every 3 hours.  So, our XWiki application should allow its user to define a job for this task. He may have to write some custom groovy code to glue-in Apache httpd specific details (like what command to execute for source checkout etc.) but the application should automate as much as possible (like the results UI, scheduling etc.)

Some technical details

The application will allow users to define a sequence of phases:

  1. A source checkout phase, it should be possible to define a working directory and the shell commands for the checkout
  2. A build phase (execute shell commands for building the project: make, ant, maven etc.)
  3. A test phase (execute shell commands for triggering the test suites)
  4. A results generation phase (collect results from 3 above)

Finally the Results UI allows to compare two runs, highlight regressions (extension: drill down regressions to particular commits). For each of the 4 phases above, it should be possible to to monitor the progress of the job from the UI (progress indicator + live log facility).

Scope for GSoC

As part of the application process, the student will have to come-up with a design for the application. This means getting familiar with the XWiki data-model / scripting guide [3, 4] (suggestion: start with the FAQ application [5]) and discussing any technical issues on the mailing list. The challenge of this project is to make it easy for users to plug-in various projects and test suites.

By end of the GSoC project we should have XWiki + 2 (at least) other opensource projects building and testing overnight. There should also be a guide on how to define new jobs.


[1] http://groovy.codehaus.org/Process+Management

[2] http://groovy.codehaus.org/api/org/codehaus/groovy/runtime/ProcessGroovyMethods.html

[3] http://platform.xwiki.org/xwiki/bin/view/DevGuide/DataModel

[4] http://platform.xwiki.org/xwiki/bin/view/DevGuide/Scripting

[5] http://platform.xwiki.org/xwiki/bin/view/DevGuide/FAQTutorialManual

Coordinated by

Estimated workload: 3 Months.

Convert all existing tests to the latest technologies

XWiki is an Open Source project more than 10 years old and it has gone through various technologies and ways of doing things to get where it is. This does not only apply to its functional code, but also to its testing framework.

As you can see from our testing documentation and from the test code itself, we are still dragging along a big part of the tests which are written in older technologies (mostly JUnit3 and JMock 2.x for unit tests, Selenium 1 for functional tests). When we have moved to the newer testing framework, we did not have the manpower to convert existing tests and just started writing the new tests using the new technologies.

We are looking for a student with a passion for testing to convert our older tests (mostly the functional ones, but the unit tests should be converted as well) and help us slowly get rid of the older testing framework (selenium1 and any previous component testing framework). Improvements along the way can also be proposed, including new testing techniques.

There is much to be learned in the process!

Coordinated by

Estimated workload: 2-3 months.

DokuWiki importer

Filter Stream framework allows converting from one wiki representation to another. The idea here is to provide a Filter input module for DokuWiki so that it's possible to convert from DokuWiki to any Filter output format.

You can get inspiration from http://extensions.xwiki.org/xwiki/bin/view/Extension/Import+DokuWiki+into+XWiki+Application and http://extensions.xwiki.org/xwiki/bin/view/Extension/Dokuwiki+To+XWiki2+Extension.

Coordinated by


Glossary Application

Develop a Glossary Application in XWiki.

The idea would be to present a list of definitions in the Glossary App (one page per definition), letting users create new Glossary items. This should be developed with the App Within Minutes application.

Then we have 2 possibilities:

  • Writing a Rendering Transformation to automatically create links to the Glossary item page when a page renders.
  • Provide a Macro so that users can insert manually to both link to a Glossary item page and if this page doesn't exist to directly bring the user clicking it to a new page for creating that Glossary item

Of course there are plenty of other features that can be imagined and it's left to the student to make the best possible Glossary app in the allocated time!

Coordinated by


Improve Extension Repository

XWiki provide an extensions repository for anyone to easily deploy contributions. See http://extensions.xwiki.org.

The goal of this GSOC is to improve it. The student will have to study it and propose improvements, there is no definite list of things to do.

Here are some ideas: Repository open Jira issues.

Improve l10n.xwiki.org

XWiki community maintain a wiki with a special application to help translation XWiki projects on. See http://l10n.xwiki.org. Sources can be found on https://github.com/xwiki-contrib/application-l10n.

The goal of this GSOC is to improve it. The student will have to study it and propose improvements, there is no definite list of things to do.

Various ideas:

  • make all this a lot more dynamic
  • provide tools to refactor things a bit:
    • it's hard to move some translation from one space to another (for example the applicationresources on XE should be on Platform)


Javascript and AngularJS XWiki API

Implement the Javascript part of the design proposal "Extensible API for accessing structured data". The API should be a pure Javascript API, and also an integration with the AngularJS framework allowing to easily develop pure js or angularJS applications accessing and modifying XWiki data.

The project can also included improvement to the XWiki REST API to allow to add APIs in XWiki  that are automatically reflected in Javascript.

Coordinated by

Estimated workload: 3 months.

MediaWiki importer

Filter Stream framework allows converting from one wiki representation to another. The idea here is to provide a Filter input module for MediaWiki so that it's possible to convert from MediaWiki to any Filter output format.

The best is probably to convert https://github.com/xwiki-contrib/sandbox/tree/master/xwiki-wikiimporter/xwiki-wikiimporter-mediawiki-xml into a WikiStream module and improve it.

Coordinated by


More extension repositories

Right now XWiki Extension Manager support plain Maven and XWiki Extension (http://extensions.xwiki.org) repositories.

The idea is to add support for as much other kind of repositories as possible.

Here are some good examples:

  • Nexus
  • Bintray
  • Pypi

See http://dev.xwiki.org/xwiki/bin/view/Design/ExtensionManagerRepositories for more details.

Coordinated by


Translation in context

XWiki 4.4 introduce new translation macro which will allow to find easily translated content in a page when using annotated XHTML renderer.

The idea is to use that and provide a "translation mode" where you can directly select and translate what you see in the page (when the translation macro is used). The idea is also to make easy to contribute to http://l10n.xwiki.org from your local wiki by sending your corrections to it.

Various ideas for the look and feel of this feature:

Coordinated by


Contact us

You can ask for more information about each project proposal and interact with the community and mentors through the usual communication channels: mailing list (devs AT xwiki.org) or the IRC channel.

Previous GSoC editions

Get Connected