Most people should be able to update to middleclass 4.x from 3.x without issues.
Here's a list of the main changes, which might affect the update for some:
There is a new way of doing the method lookup. This new way allows middleclass to support the __index metamethod, which was not possible before and had been a request since 2.0.
I have also done some cleanup in middleclass removing some methods that no one seemed to be using : the class:implements method has dissappeared in 4.0.
Finally, the other prominent change is that there is no global "Object" class any more, as it has been replaced by a hidden 'default mixin'. As a result, classes created with local X = class('X') will not have a superclass in 4.x, while in previous versions they had Object as a superclass.
Amazing. I love how tiny the source file is. Previous versions were a bit difficult for me to follow, this is more clear and concise. I did take me a moment to realize the recursive propagateInstanceMethod call going on was so that every class holds a copy of the methods, flattening the delegation chain to a single lookup, while allowing for monkey-patching a class after subclasses and instances have been created. Awesome work! Happy 2016!
Thanks! I can't talk all the credit for the new implementation. I got a pull request from mpeterv which did most of the legwork on the new lookup. My contribution was just realizing that it could be used for all the methods instead of just the metamethods
Amazing! I've been using middleclass for about as long as I knew it existed, as it was simple to use. Every time I ran into a design problem I found that it already had the feature set to solve the problem if I looked hard enough. It's also my recommended class library any time someone asks.
sandsmas: A LÖVE Editor My Libraries: Imgur, Palettes, Music Macros, Timer, Hooks
Hi, yes, Stateful works ok with the current middleclass. I was surprised (and happy!) when I tried them together for the first time and everything worked fine.