Plugin version numbers and frequent updates
At Yoast, we take great pride in developing and testing plugins that work well and often ship new features in them. We also try to be quick with bug fixes when one of our updates causes a “regression”: something that used to work but now doesn’t.
Our aggressive policy of updating means that, if you update your plugins every day, in some periods you’ll have to update our plugins several times a week. We have found that some people find this annoying, but we also find that for the largest majority of our users it actually means they get a product with the least amount of bugs humanly possible.
If you manage a lot of sites, you should be using a tool like InfiniteWP, WP Remote or ManageWP to make doing updates easy. If you want to know whether you can safely upgrade, it’s good to know how we deal with version numbers:
Semantic versioning (with a slight twist)
Semantic versioning prescribes your version numbers look like MAJOR.MINOR.PATCH, where these things mean:
- 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.
We have slightly adapted that: MAJOR is actually our first and second digit, so our version numbers look like 220.127.116.11. We do this because otherwise we’d ridiculous version number inflation with the amount of new features we ship. So when we release new features in, for instance, WordPress SEO, we’ll go to 1.6 after 1.5. If we add minor functionality, we’ll go from 1.5.3 to 1.5.4, and if we fix a bug in in 1.5.3 and don’t do anything else, we’ll go to 18.104.22.168.
This means it’s, in our opinion, always safe to update from 1.5.3 to 22.214.171.124, almost always safe to 1.5.3 to 1.5.4 and you might actually want to test if your site is critical and we move from 1.5 to 1.6.
We don’t do major and minor version updates more than once a week, but we’ll release a patch release every day if needed. Realize that with millions, literally, of people using our code, it might be a slight annoyance to you to have to upgrade, but tons of others might not be able to use the plugin at all at that point if we had an annoying regression.