[Rubygems-developers] Recent refactoring to remove Gem::Version::Requirement breaks with old cached gem files

John Barnette jbarnette at gmail.com
Fri Oct 23 14:45:46 EDT 2009

On Thu, Oct 22, 2009 at 9:23 PM, Chad Woolley <thewoolleyman at gmail.com> wrote:
> On Wed, Oct 21, 2009 at 4:10 PM, Chad Woolley <thewoolleyman at gmail.com> wrote:
>> Old cached gems contain marshalled referenced to
>> Gem::Version::Requirement in required_ruby_version.  This causes
>> breakages when they are unmarshalled with the new trunk code in which
>> this class has been removed.
> I looked into this some more.  Even if I restore the hack to make
> Gem::Version::Requirement exist, the other refactorings to
> Gem::Version (e.g. the addition of the segments attribute) will break
> when old gems are unmarshalled.
> We need to either fully handle backward compatibility with old gems,
> or roll back the refactorings to Gem::Version which change the
> marshalled format.

Yup, I definitely didn't intend to break backwards compatibility. Our
marshaling tests must be even more lacking than I thought they were.
Thanks for digging, Chad, I'll take a poke at it this weekend.

~ j.

More information about the Rubygems-developers mailing list