XWiki @ Google Summer of Code 2015
- About GSoC
- XWiki Guidelines
- Student Application template
- Proposed Projects (12)
- Android contacts
- Any Integration with one or more Major Open Source Tool
- Continuous integration server
- Convert all existing tests to the latest technologies
- DokuWiki importer
- Glossary Application
- Improve Extension Repository
- Improve l10n.xwiki.org
- Javascript and AngularJS XWiki API
- MediaWiki importer
- More extension repositories
- Translation in context
- Contact us
- Previous GSoC editions
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.
- Android contacts
- Any Integration with one or more Major Open Source Tool
- Continuous integration server
- Convert all existing tests to the latest technologies
- DokuWiki importer
- Glossary Application
- Improve Extension Repository
- Improve l10n.xwiki.org
- Javascript and AngularJS XWiki API
- MediaWiki importer
- More extension repositories
- Translation in context
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 Read more...
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. Read more...
Continuous integration server
Overview
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:
- A source checkout phase, it should be possible to define a working directory and the shell commands for the checkout
- A build phase (execute shell commands for building the project: make, ant, maven etc.)
- A test phase (execute shell commands for triggering the test suites)
- 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.
References
[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. Read more...
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. Read more...
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 Read more...
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 Read more...
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.
Coordinated by Read more...
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
- importing is a long task and you always get a timeout before it's finished (it's still continuing on the server so it's not broken but still). A progress bar could be nice (could be based on extensions:Extension.Job Module)
- default translation edition table is not exactly the nicest UI you could think of (http://l10n.xwiki.org/xwiki/bin/view/XE/XWikiCoreResources?action=viewall&language=fr)
- 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)
etc.
Coordinated by Read more...
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. Read more...
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 Read more...
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 Read more...
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 Read more...
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
- The page XWiki prepared for GSoC 2014 page (XWiki was not selected for GSoC 2014)
- The XWiki GSoC 2013 page
- The XWiki GSoC 2012 page
- The XWiki GSoC 2011 page
- The page XWiki prepared for GSoC 2010 (XWiki was not selected for GSoC 2010)
- The XWiki GSoC 2009 page
- The XWiki GSoC 2008 page
- The XWiki GSoC 2007 page