I held off on this move for far too long. WordPress 3.0 has been out for over a month now so I decided to finally update my plugin development environment with the latest and greatest version of WordPress.
I generally do not upgrade any production sites with the latest version of WordPress immediately just in case there are any zero-day vulnerabilities (e.g. bugs/security issues that were not detected during the beta testing stage), but the main reason I didn’t update my development environment to 3.0 is because I guessed (correctly) that it would break some of my plugins. Some of the plugins I’m currently developing are quite large and hook into many areas of WordPress, so there are a multitude of possible points of failure depending on what has changed in the latest update. I should have been testing my plugin during the beta phase for 3.0, but I resisted because I didn’t want to deal with trying to support two versions of WordPress that might have mutually exclusive plugin requirements.
However, since version 3.0 has been out for over a month now with nary a security issue or major bug reported, I decided it was only logical to upgrade my development environment to 3.0 and focus on the future. Since my large plugins are not even publicly released yet, there’s no real reason to worry about backwards compatibility with older versions. These plugins will now only support 3.0+.
Upon upgrading WordPress, I was not surprised (though still a little dismayed) to find that certain parts of my big plugin did break. It’s not likely a major issue, and it’s not all bad because several areas of my plugin are now redundant thanks to some of the new features/functionality of 3.0. This means I can optimize my code and deliver a smaller, faster, and more future-proof plugin.
The main thing I was dreading (since I was sure there would be some issues after the upgrade) was the huge amount of compatibility testing that would be required for the various features of my plugin on WordPress 3.0. As I developed the plugin, testing was a regular part of my workflow whenever I updated a certain feature, so testing did not require a lot of time. However, I now have to test the entire plugin before I can even start to think about continuing development. This does not sound fun to me, but I hope to have the majority of the testing completed within the next 1-2 days.
A small setback in development, but honestly, it would have to have been done at some point in time anyway. It’s better that I do it now rather than after I’ve developed even more functionality that would need to be tested and modified to be compatible with the latest version. It’s also a good lesson for the future as I will now be including betas of upcoming versions of WordPress into my development workflow so that there will be a smoother transition when the next version of WordPress is released.