2.0 and Compatibility

The release of WordPoints 2.0 is just a few weeks away. Before 2.0 is released though, I’d like to give both users and developers a clear understanding of what that number means.

Software version numbers are sometimes rather arbitrary. At other times, they follow clear rules. But because there are so many different conventions, it is often hard to guess what version scheme a piece of software follows. There are often inconsistencies within a community of developers, or even within the history of a single software project.

The WordPress community is no different. There are thousands of plugins, and often there seems to be little rhyme or reason to why the developers choose a certain version number for an update. WordPress itself often confuses people, because 4.0 is no more special than 3.9 or 4.1.

From the time WordPoints was first released, I’ve been trying my best to follow Semantic Versioning. The summery from the Semantic Versioning site explains it well:

Given a version number MAJOR.MINOR.PATCH, increment the:

MAJOR version when you make incompatible API changes,

MINOR version when you add functionality in a backwards-compatible manner, and

PATCH version when you make backwards-compatible bug fixes.

This makes it easier for both users and developers to know exactly what to expect from a release. If just the patch number is incremented (like from 1.0.0 to 1.0.1), the update only contains bug fixes, and will be fully compatible with everything that worked with the previous version. If the minor version number is incremented (like from 1.0.x to 1.1.0), the update adds new user or code features, but is still backward compatible. (It can also contain bug fixes in addition to the new features.) If the the major version number is increased (like from 1.x.x to 2.0.0), the update won’t be fully backward compatible. (It can also include new features and bug fixes too.)

So, the jump from WordPoints 1.10 to WordPoints 2.0 means that not everything that worked with 1.x will work in 2.0.

Before you begin to panic, let me explain exactly what to expect, both for users, and for developers.

Although WordPoints 2.0 will not be 100% backward-compatible, I’ve been very conservative in what incompatible changes have been made. For those of you who aren’t writing your own extensions to the plugin, here is how many features you should expect to break: zero. No changes have been made that will cause your shortcodes, or settings, or anything else, to suddenly break. The update should be as seamless for you as the update from 1.9 to 1.10.

The experience of developers should be very similar. While there have been some functions and classes and things removed in 2.0, most of these have already been deprecated for several releases. So nothing should be taking you by surprise. There is a full list of backward-incompatible changes in the developer guide. If you’ve been using a custom extension you’ve developed for the plugin, it’s recommended that you read through that list and thoroughly test against version 2.0 before updating.

If you do happen to be using a module that isn’t compatible with 2.0, WordPoints will try to detect this when it is updated, and will deactivate the module if needed. So, even in a worst-case scenario, your site shouldn’t break when WordPoints is updated.

While we’re talking about compatibility, I’d should also mention what versions of WordPress version 2.0 of the plugin will be compatible with. In version 1.10 of WordPoints, I changed the minimum required version of WordPress from 3.8 to 3.9. In version 2.0, the minimum requirement will change again, this time to the latest version, 4.2.

I’ve changed the requirement for the same reasons I did in version 1.10:

[T]he more versions of WordPress I attempt to support, the more time it takes to test the plugin. […] Ultimately, continuing to support older versions of WordPress means that development speed and overall quality of the plugin will suffer.

By increasing the required WordPress version, WordPoints is able to move forward more quickly (and in the next few releases, you’ll start to see the new features to prove it!). But I don’t want to leave anyone behind, so I encourage you to update to the latest version of WordPress before 2.0 is released, if you haven’t already.

In WordPoints 2.0 I’ve been able to clean up the code, removing some old cruft. This shouldn’t cause anything to break for users, though anyone who has developed custom extensions should test to make sure everything is still working. Also, the minimum version of WordPress supported has been upped to 4.2.

About J.D. Grimes

J.D. is the creator of WordPoints. In addition to web development, he also enjoys nature photography. The most important thing about him, though, is that Jesus Christ died for him to pay for his sins. He looks forward to meeting Jesus face to face in heaven one day, and he hopes he'll see you there, too.