|
Project Information
Featured
Downloads
Links
|
Introducing Working CopyAbstractThis is a kind of Subversion for Joomla! live site. http://docs.joomla.org/Summer_of_Code_2009_Project_Ideas#Working_copy_of_Joomla.21_live_site Idea & BenefitsAdministrators usually work on their live site directly and sometimes they do mistakes as all people do. As a result, the live site gets messed after extension installation/uninstallation process and re-configuration. The idea is to have a working copy of the live site and make changes on it, then, if everything is okay after some testing, you can approve changes and the tool will apply them to your live site. I would like also to implement some basic features of Subversion into this project e.g. commit/approve, update/synchronize, revert, merge, create patch, apply patch (SVN operations afterwards). Using this tool, people will do less mistakes on the live site and get less nervous! MilestonesCreating an API and interface will be needed to complete this project. They both will be developed simultaneously to make able testing from the interface. I will keep the main coding ideas and standards of Joomla! Framework hoping it will be a part of Joomla! 1.6 in future. During the development process I will assume that the live site (master or parent afterwards) and the working copy (child afterwards) are running on the same versions and configurations of OS/Apache/MySQL/PHP, and the server configuration will stay intact (this tool can be only a testing environment for SERVER RE-CONFIGURATION). Now I will describe in general what it will be and how easy it will be to work with. Here are some steps administrators can do:
There are 2 possibilities to make changes on the Joomla! website, which is to change database and/or file system. So there will be 2 types of functions in the API, which will make changes to the database and to the file system. Working with the file system is the easiest part, because every file has last modified date, which makes easy to determine which file is newer. Working with the database is much more complicated, because there can be different scenarios with relations. My goal is to make an API, which will implement SVN operations not only to core tables, but also to 3rd party tables, which can come with 3rd party extensions. Future enhancementsIt is also possible to have a history table (#tablename_history) for each table in db, which will keep table row versions in it. It will enable versioning of the whole database. Not only the content, but also parameters, module positions, etc. would be versioned. The other thing, which can be done, is to have language tables and keep table row translations in them. TimelineApril 20 - May 17: TIME TO SPEAK WITH THE MENTOR Webinar
|