Joomla 4 – Breaking (Versioning) Bad

Synopsis

Joomla adopted an “unique” scheduling system some time ago. Try explaining a client that it’s better to be on 2.5 than on 3.0 whereas everyone else says “Use the latest and greatest.” Try explaining them that there’s no 3.3 and 3.4 because of… well… reasons. With the arrival of 4.0 we can fix the versioning, and adapt a more sensible approach.

I’m not going to discuss the current versioning system in lenght. In case you didn’t know, it basically comes down to this:

  • x.5 versions are LTS and they want you to use them
  • Anything other than x.5 is in constant flux. You’re recommended to use it, but not to “use, use” it.

Breaking versioning – why now?

If we want to change the versioning system, to something more “common” then the release of 4.0 might be the perfect moment. Because of the symbolic value (it could have). Because 4.0 is planned to go to new places. And because, it’s got to happen sometimes.

Joomla 4.0, the 4th release cycle

The first reason is that Joomla 4.0 can be linked to / seen as the 4th release cycle, if you follow the following logic.

  • 1st cycle: Joomla 1.0. Which was basically Mambo with a new coat of paint.
  • 2nd cycle: Joomla 1.5. Joomla finally left Mambo behind (and was supported for many, many years)
  • 3rd cycle: Joomla 1.6 – 3.x: Joomla broke away from 1.5 to advance technologically. And at the same time, ended up in a versioning mess. 1.5, 1.6, 1.7, 2.5, 3.0, 3.1 , 3.2, 3.5… Wow. Amaze.
  • 4th cycle: Joomla 4.0; the “New New Joomla” with the awesome features and small core, and what not.

Joomla 3.3 and Joomla 4.0

If Joomla wants to continue to grow, you’ve got to keep something in mind. The current system is confusing, at best. Not only are we making seemingly arbitrary leaps (1.7 to 2.5, 3.2 to 3.5) but we’re also telling people there’s “Safe” and “Unsafe” versions to install, because the developers needed “room to develop”.

I’m suggesting that we bite the bullet, and move to a system where Joomla reserves the “big” number changes for changes that are big enough to actually warrant releasing a “New Joomla.” That leaves us with the current situation.

Joomla 3.x.Y

We’re currently at Joomla 3.x – which is both visually and programatically different from 2.5. As long as no mayor changes are made in either area, I suggest sticking to using Joomla 3.x – as long as the versions are back-wards compatible. Instead of moving from 3.2 to 3.5, I suggest the following:

  • Release Joomla 3.5 as Joomla 3.3. Declare Joomla 3.x as “supported” for “X months”.
  • Make version changes if new releases require this
  • x is for feature releases. This could go up to 19, 29, 99…
  • y is for “patches” of bugs, extensions, …

There might be some “initial confusion”, but sometimes you need to step back. The majority of Joomla users are site builders, and they’re more familiar with the proposed version scheme than the one in place now.

Once adapted, this versioning then continues under Joomla 4.0. We have to break with the 3.5 – 4.0 – 4.1 – 4.2 pattern at some point.

With the proposed versioning schedule, we move back to something Joomla users are familiar with. Software users generally understand (and expect) that a new mayor number change, implies big things going on.

They understand Windows 8 to be different than Windows 7, or Forza Motorsport 5 to be another game than Forza 4. They “get” that iOS 6 is radically different from iOS 7 – and that minor updates mean they’re still using the same product, just improved. Others have already created the “expectation” that you can’t move all date between different mayor versions of a product.

Just because, at one point, we decided to adapt a specific versioning logic, doesn’t mean that Joomla should feel forced to jump “big version numbers” every few months, just because it says so in the schedule. It’ll be easier to explain why you moved to a more “natural” versioning system, than to pitch the current system to people not in the know.

Joomla 3! can continue to be developed for the coming 18m, 24m, … with additional security releases for period of time.

Joomla 4 – the “New” New Joomla.

If the versioning is changed, this means that the developers are free to use Joomla 4 to build the “New” Joomla they’re waiting for. While development on 3.3 can continue (timed or not) they can work in their labs on a completely overhauled Joomla. New version, new CMS.

However, I also suggest a “change” for Joomla 4.0. In my opinion, it confuses people to release versions that are / aren’t stable while at the same time giving them their very own version number. People are taught to use the latest and greatest. And you’re telling them it’s okay. But at the same time, it’s not the best thing to do. That’s slightly confusing!

A solution could be, to consider everything with a “version number” as an official release, part of the “supported” software Joomla has published.

Developers can then continue brewing awesome stuff using alpha’s, beta’s, RC’s… and you name it. For example, they could release Joomla 4.0.Alpha1, Alpha2, Beta1… until finally they end up with 4.0, which would be the equivalent of our current x.5 releases.

One thing I haven’t figured out, is how Joomla would deal with backwards compability. We could reserve the big version numbers for releases that change Joomla so drastically, that a “clean” migration isn’t possible.  I’m sure minds sharper than mine would find a solution for this.

Do you have an opinion on the versioning ordeal? Feel free to comment or hit me up on Twitter.