I promised I’d post regular progress updates so here you go. What follows is probably pretty tedious if you’re not interested in the technical details. The summary is: I’ve had a couple of frustrating days but I’m back on track now. Read on for the details.
As I mentioned previously I’m developing the new site using Joomla 1.5 - which is itself in development. That means that every day I check out the latest version from the Joomla subversion repository and merge their changes with the code I’m working on. I’m trying to keep changes to the Joomla core to an absolute minimum - it’ll be far easier to maintain the site later if it’s based on just-about-standard release of Joomla. There are, however, a few changes that I’ve made to their source code that haven’t yet been merged into the main source tree by the Joomla developers.
That means I can’t just copy the latest Joomla source; I have to merge their changes with my changes so that I end up with the latest version of Joomla with our patches applied. I’ve written a couple of scripts that use diff3 to extract a delta consisting of the changes the Joomla team have made and applies it to our version of the source tree.
Until a couple of days ago that was working pretty well but I knew there was a potential problem brewing. The mechanism I have works well for the PHP source but quite a lot of Joomla’s functionality is defined by the contents of a database. Basically the whole look and feel of the site, which components appear where and how they interact with each other is data driven.
I manage the contents of the database using the same mechanism that I use to manage source updates but because of the way changes to the database that are due to updates by the Joomla team intermingle with changes we make in order to configure the site there’s far more potential for conflicts. Typically a row in a table that we’ve updated will also be updated in a different way to correspond with some difference in the way the Joomla core works.
So that’s what happened earlier in the week. Wednesday’s snapshot of the Joomla core wasn’t working anyway - they’d committed a set of changes that resulted in an installation that just didn’t work. It also became apparent that they were making changes to the database that were going to clash with changes we’d made. Anyway, it wasn’t working so I shelved merging the main version with ours until today and carried on working on the forum.
Today the developer snapshot of Joomla is working just fine - so I had to address the issue of the incompatible database changes. That’s meant rewriting chunks of the code I use to merge changes to the database - and a fair bit of manual fiddling. So today feels like a bit of a wasted day: in a sense I’m back where I was before Wednesday’s update. I’ll console myself that I have a better set of tools now so next time the same thing happens it won’t be anything like as painful.
I’m off to find a beer now. Have a great weekend.