In the "good old days" (i.e. grad school where you'd get paid to sit around and drink beer and read Usenet), using the latest and greatest version of anything was never a question... it was a point of pride being on the cutting edge. Compiled from scratch, of course.
Amazing how things change when there are actually lots of other people using your software (which Steve reminds me, is not exactly a bad problem to have). Now making changes is a careful process, with lots of safeguards like test plans and automation to minimize the chances of severely breaking anything. My old self would just absolutely despise my current self, of that I'm sure.
Infrastructure is particularly tricky in our case. As many people know, CourseForum and ProjectForum rely on Tclkit, a distribution of the Tcl scripting language and the Metakit storage engine that make development pretty easy, and especially simplify deploying on different platforms. One key piece of this is that we have the static runtime environment that doesn't change often, and then all the changing bits of our application sitting on top of it.
Not changing much is an understatement... the first Tclkit runtime we used is a version of Tcl 8.4.1, released somewhere over three years ago, and we haven't upgraded at all ever since then. In general, not a big concern, since Tcl is a frighteningly well written piece of software. Sure, there has been the odd new feature and performance gain that we could have taken advantage of, but nothing too compelling. What we have continues to work really well.
Having put it off for long enough, it's probably time to start upgrading to an 8.4.12 (fairly recent) release. The final push over the edge was a now-fixed (thank you Jean-Claude!) memory bug in the Metakit Tcl binding that could in obscure cases lead to crashes, which at least a couple of our customers were experiencing. That, and it's time to add an additional sorta-platform (Intel based Macs).
Doing the upgrade and verifying it basically works is a bit of work but not risky or painful (thank you automated test suite!). It's doing our best to make sure it works on all the myriad different versions and system configurations that our customers are using. That part makes me far more nervous. Especially since people ignore beta versions much more than they used to. On the other hand, this will be a convenient time to officially remove support for some older versions of operating systems (e.g. OS X 10.1/10.2, Win9x, etc.).
Then the big version numbering question... 4.8 or 5.0? There's a lot of smaller tweaks and bug fixes going in along with the Tclkit update, but no big marquee feature, so that argues more for a 4.8 than a 5.0. On the other hand, the 5.0 label signals a bigger change, and may make people notice more the change of requirements, and perhaps encourage more beta testing or care when doing the upgrade than would be indicated in a point release.
The pure marketers would argue for the 4.8, and the techies would argue for the 5.0, though both would probably prefer adding some marquee features to the mix and calling it a 5.0. The big feature I did have in mind for 5.0 is unfortunately very incomplete, and so too early stage and risky to include yet.
Ahhh, decisions...