Today I'd like to share with you our plans for the next couple of releases of Fabrik.
3.3.2
- To fix a couple of backwards compatibility issues with Joomla 2.5 that crept in with the last build.
3.4
- Move over all our element rendering to use JLayouts.
- Removing support for Joomla 2.5 - Joomla stopped support for Joomla 2.5 at the end of December 2014. We have limited resources, and would prefer to spend those on moving Fabrik forward.
3.5
- Change meta data storage model - currently we store information about your lists, forms, groups, elements etc in 'meta' database tables, for example all the lists are stored in the table #__fabrik_lists. However, there are several disadvantages with this solution:
- First of all it means that on every Fabrik page view we need to query the db several times to get the information required to build a page. This is not optimal for a fast loading page.
- Migrating a site from a development server to a live server is difficult as you have to remember to copy over both the site's files and a subset of the development site's database tables.
- Version control is not really possible. Once you have edited and saved an element there is no way to "undo" those changes. There's also no clear way to say "this is version 1 of my application".
- Packages never really worked. Once you install a package the element ids are no longer the same as on the initial site this makes the code significantly more difficult as we are constantly trying to work out which item to load for which package. We have various hacks that attempt to work around this but the results have never been optimal.
What we are proposing to do is to migrate the data in those meta tables into JSON files. There will be one JSON file per view. This file will describe how the form, list, elements and validations should behave. We will also have separate JSON files to describe the database table structures. With this in place we can address the current disadvantages:
- Load times - we can now just read in one file and build a view from that single file
- Migration - You will no longer need to copy over database tables, all you would need to do to update a live server would be to copy over the JSON files.
- Version control - As the application is defined with files, you can use git to tag versions of your application and to revert changes easily.
- Packages should be a lot easier for us to implement, we would specify which JSON files are part of the package. These could be installable via a zip and would no longer create all the conflicts
Timescales
Obviously it is always very hard to meet deadlines, but we think that the release schedule will be as follows:
3.3.2 - March 2015
3.4 - May 2015
3.5 - August 2015