Google Summer of Code 2009 will be divided in the following two main tasks:

Version Control / Page Versioning

I. During the first part of the summer, until the midterm, I am responsible to finish the Version Control component started last summer of code. I have also decided to take all the existing Version Control components and compare them through the features they have. Although until the midterm only several features were mentioned in my application, I will make a list, and I will try to permanently be responsible of the evolution of this component. There will always be a to-do list, even though some features are beyond GSoC Scope.

The main tasks, in order to adjust the current VS Control component are:

  • Develop a front-end side for the current version control. I will have in view ACL for Joomla! 1.6, as soon as further information is available. The implementation will be pretty much the same as the one you can see when you edit documents with Google Docs.
  • Implement a more educational feature, html code difference in the component menu. For some users this might be of great help.
  • Restructure the current code of the component so that it respects the Joomla! MVC standards used for components developed for 1.5. At the moment the component has pretty similar version as the ones developed for Joomla! 1.0. There will be added some Javascript also, and the component menu will be modified, such that the user will get more faster to compare & merge versions (in terms of number of clicks).

System Restore / Extension Versioning

II. During the second part of the summer I will try to create an extension that should try to manage a versioning system in a generalized manner, that could be applied to any other extensions existing in a Joomla! Installation. The administrator should be able to choose which extensions need to be tracked as they are changed (parameters are modified, updates – modifications, module positions on the frontpage and so on)

This could be a first great step to System Restore. I will ask for continuous feedback. 

Main tasks:

  • Develop a versioning extension for core content component. This will give me a very good insight for further development.
  • Back-end administration component for com_content versioning.
  • As soon as these are finished all the rest of the time will be dedicated in order to generalize this extension: specific methods of obtaining the table structure of each other component/module/plugin (my approach consists in storing information about the structure of the tables needed when these are installed), generic modeling so that any table structure will efficiently be stored
Note: The specifications of this second part will change, specially closer to the midterm when I will decide with Parth & Allan a realistic implementation.