Why doesn’t WordPress let me rollback a plugin?
Answer: Because the education of developers as to how to properly tag and number releases hasn’t hit critical mass.
Other answer: Because no one’s paid me enough yet to sit and manage every single WordPress plugin release to ensure the developers are properly using tags.
Other answer: No one’s written the code to enforce proper tagging for plugins.
Look. Let’s step back. Why does rolling back WordPress work? I’m going to assume you disabled auto-updates for a moment. They work becuase WordPress understands semantic versioning.
- 4.4 is a major release.
- 4.4.1 is a minor release (bug and security fixes)
Now go look at your plugins. Look at their versions. Let me show you what I, a plugin reviewer, sees:
- 20151205-295323 is a major release
- 22.214.171.124 is a minor release
- 4.2.1 is a major release
- 14.4 is a critical bug fix
- 738741 is a minor release
It goes on and on.
But even if we fix that, we have to trust that people will remember to actually use the SVN tags folder. They don’t. Trust me, about half the time I contact a plugin developer about a problem, I have to ask them to please use SVN properly.
The trunk folder is for the ‘latest’ version of your plugin. This may be a beta, and it may be the same as your stable release. Either way, trunk should be a working version.
The tags folders are for your releases. Finished up version 1.3.4? Great! Update the plugin readme and the main file to have the new stable version and run
svn cp trunk tags/1.3.4 to copy it over. Done. But no, they don’t do that.
This is the ‘fault’ of open source and freedom, of course. We let plugin developers do what they want, a lot more than themes, and with that freedom comes risks and responsibilities. Different people rise to those responsibilities differently. Most of us stumble along, make mistakes, figure out what best practice works for us, and move on.
Should WordPress enforce proper behavior? I gotta tell you, I don’t think it would be sustainable. Not without a much smaller repository and not without some sort of signed contract with developers to agree to the guidelines. And I don’t think developers would like it.
I don’t think we’re (yet) at the point where auto-updating plugins is wise. Themes, yes, but I don’t think plugins are quite there yet. Maybe we’ll get there, but there are so many hurdles before us it’ll be a while yet.