This week has been a time of upgrading software that Wikidot uses to serve its services to the world. We've upgraded PHP (the language that Wikidot is mostly written in) to version 5.3. It doesn't really change anything important, but "new is always better". Well, almost always.
We had an issue with upgrading libxml2 which resulted in a broken Feed module. This was caused by a small change in the library that required an upgrade to PHP 5.3 - but we were still using PHP 5.2, which as it appeared was not fully compatible. To fix the Feed module we downgraded libxml2 back to a version used before, but this was a temporary solution. A few days later, we upgraded both PHP and libxml2. Starting from 15 June, Wikidot servers run on PHP 5.3 without any serious problems. We only located one minor error in our code which was silently ignored before, and now generates a warning in the error log.
After discovering a data form related bug in Wikidot we looked closer at the YAML-parsing library we use. It turned out it had a bug causing incorrect parsing of some strings in data form fields. We upgraded the library to see if the bug was fixed, but it still persisted. Fortunately we were able to fix the bug and submit a fix to the library maintainers, so they can include the fix in a future version of the library. We are currently using our own fork of the code with the fix applied, while we wait for them to update the official library.
Today, we're upgrading AWStats program responsible for creating web statistics for all Pro sites. The version used up until now was 6.95 (with additional browsers and search engines added to its database). The new version is 7.0 which comes with updated database (which is most important thing for us) and a bunch of other small changes.
The lesson from this is that it's good to keep your system reasonably up-to-date, but when upgrading be sure it won't break anything else. Remember the oldest (and therefore the best) Chinese saying: "New is always better".
The photo comes from Flickr