You may have seen this while shopping for a WordPress theme, a new online game, or even an app for your phone: marketing materials using versions with an “x” or “+” in them, such as “3.6.x” or “3.6+”. These are not interchangeable and do not mean the same thing, especially when it comes to support.
If you need some background on how versioning works, see the Wikipedia entry for software versioning.
The version series
When you see a version such as “3.6.x” it means that they are only talking about the version 3.6 series, or more specifically 3.6.0 through 3.6.999, but not 3.7. Placing the “x” in “3.6.x” means the claim/discussion ends when we hit 3.7, and will have to be reviewed or does not apply.
An example would be the statement “This theme works in WordPress 3.5.x”. The statement can be read as “We support using this theme in WordPress 3.5.0 through 3.5.999 (but not including 3.6 and above, or any version before 3.5.0).”
Why do we do this? This places a range limit on the software in question. In the example above 3.6.1, 2.6.3, and 3.2 don’t apply here. Based on the original claim, if someone has problems in 3.6, the theme developer does not have to support it.
Developers also do this to apply the fact that we have no idea what WordPress (and other platforms for that matter) will do 3 or 5 years from now, and whether we will be choosing to update the code to support those changes in the platform. Open-ended support is simply an unsustainable business plan.
The version starting point
When you see a version such as “3.5+” it means they are talking about 3.5.0 on up to the current version out today. That “current version” part is where things get tricky. Using “3.5+” in support/marketing documents means they are claiming it is supported beginning with that version and continuing on up to the current production version, which could have been released years after the claim was made.
An example would be the statement “This theme works in WordPress 3.5.+”. The statement can be read as “We support using this theme in WordPress 3.5.0 and above (but not any version before 3.5.0).”
Why do we do this? This places a starting point at which the software will be supported, and more importantly it is open ended so that when new versions come online they too are assumed to be included. In the example above version 3.2 isn’t supported, but 3.6.1 is. Based on the original claim, if someone has problems in 3.6.1, the theme developer should support it.
Developers also do this to show consumers they are planning to provide updates and support long into the future. This gives the consumer the ‘warm and fuzzies’ about their purchase. But, again, the problem is most have no idea what WordPress will do 3 or 5 years from now, or whether they will be choosing to update the code to support those changes in the platform.
Closing off the support for a specific/reasonable version series is a hard pill to swallow for marketing efforts, so many people just use the symbol of infinite support (the plus-sign) and hope it all works out later.
Why this matters
For those on the purchasing end of the software industry, knowing what is included/excluded can help you make better purchasing decisions, as well as understand what support you have coming to you.
For those in the tech industry, we have an obligation to release better marketing materials to help consumers know where the support begins and ends. There is no value in making it confusing or appear open-ended when we damn well know that a claim of “works on IE 8+” or “Android 3+ compatible” is highly problematic and not sustainable.
For consumers, this is a good time to understand intent versus reality in tech. Marketing and other stakeholders often want you to know that their product will work well beyond your expectations, so a “+” at the end looks better than a stark “x” limiting it to just a series.
The reality is that features in the product as well as the platform the product works on change over time. There is simply no way that the same piece of software can work on platforms without major updates as the platform changes over time. If a Drupal plugin is giving me problems and the support documents say “it works on 4+”, I am expecting support for Drupal 4.x, 5.x, 6.x, and 7.x releases. As unreasonable as it sounds to support a plugin for Drupal 7 that was originally made for version 4, that’s the claim they are making by using the plus-sign.
We need to drop the “+” sign from support documentation and marketing efforts. It’s confusing and misleading to think that the package of code I just bought will work forever and be supported forever.
The real use for the “+” sign was to mark where support started and make it easy on the consumer to not have to think if today’s version is included. It was not intended to be used as an ambiguous series of future versions.
But we have abused that plus-sign to no end.
If you are creating programs, apps, themes, plugins and other software intended to be run on platforms controlled by other companies, manage expectations by using discrete versions. Examples:
- Internet Explorer 8, 9 and 10
- WordPress 3.2x through 3.6.x
- iOS 6.x and 7.x
The Drupal Modules marketplace does a great job of managing expectations by limiting versions to specific releases:
Consumers: be leery of any marketing materials that claim support beyond what is already released. Don’t build your empire on some notion that support will be there beyond what we can already see. And, more importantly, be flexible when it comes to software support. You’d be shocked to if you saw all the duct tape and bailing wire used to hold most of the tech industry together. After all, we are building this plane as we are flying it.
Got something to add?
I welcome all constructive comments below.