If you release more than one plugin then there is a good chance you will build up a set of standard functions which you use in all your plugins. However if a bug turns up in one of your standard plugins you need to be able to release the fix, without breaking the other plugins which are already out there. What do you do if you have kept your standard functions in classes to prevent name clashes with other plugins, but you want to keep the class names the same for the standard libraries in your own plugins.
You have a number of choices. You can simply make the changes and release the plugin. The problem with this is that if a customer has installed several of your plugins, you cannot guarantee which version of the standard class will be loaded. Will it be the original version? Will it be the new version? How will you tell if the customer still complains that the bug is present?
A better choice is to version you classes. You can then control which version of the class is loaded and you will have a better chance of ensuring that any bugs in your classes are traced with greater ease.
In a later article I will be covering a way to implement a versioning system.
Do you version you classes? I would love to know what your approach is so feel free to leave a comment telling me how?