Need some ideas how to proceed here:

I ended up with a minor problem today where I had to release a new
version of a module with a very minor bug fix.  Instances of that
class get serialized and passed between machines.

The module's version got updated for the new release as it should.
No change in structure of the class at all.

Unfortunately, at release time still had some objects of that class
cached (or really "in-flight") and the code below started throwing
errors:

               else {
                    ($meta->version == $version)
                        || confess "Class ($class) versions don't match."
                                 . " got=($version) available=($meta_version)";
                }

I had to hack that "confess" to a "warn" to let processing continue.

There's going to be times when I have to update code (and thus versions)
and release to production where serialized objects are in flight.   If I
change the structure of the object (say add an attribute) then I'll have to
handle that in my newer code.   But, I'm not sure it makes sense to have
MooseX::Storage so restrictive.   A change in versions doesn't mean
incompatible serialized objects.

Is that version check too agressive?

Any ideas how to handle this better?



-- 
Bill Moseley
mose...@hank.org

Reply via email to