Upgrading Fuel Data

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

Upgrading Fuel Data

Sean P. DeNigris
Administrator
I'm baffled. I tried to materialize data in Pharo 4.0 that was serialized in 3.0, and got the dreaded "FLBadVersion: Materialization error. Unexpected stream version 193 where it should be 194".

But here's the part I don't understand... I went back into the 3.0 image, upgraded Fuel to 1.9.4, and re-serialized the data. But when materializing I got the same error! What am I missing here?

Thanks.
Cheers,
Sean
Reply | Threaded
Open this post in threaded view
|

Re: Upgrading Fuel Data

Max Leske

> On 03 Mar 2015, at 17:34, Sean P. DeNigris <[hidden email]> wrote:
>
> I'm baffled. I tried to materialize data in Pharo 4.0 that was serialized in
> 3.0, and got the dreaded "FLBadVersion: Materialization error. Unexpected
> stream version 193 where it should be 194".
>
> But here's the part I don't understand... I went back into the 3.0 image,
> upgraded Fuel to 1.9.4, and re-serialized the data. But when materializing I
> got the same error! What am I missing here?
>
> Thanks.

I’ll check when I get home. 1.9.4 -> 1.9.4 should *definitely* work.

>
>
>
> -----
> Cheers,
> Sean
> --
> View this message in context: http://forum.world.st/Upgrading-Fuel-Data-tp4809243.html
> Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.
>


Reply | Threaded
Open this post in threaded view
|

Re: Upgrading Fuel Data

Sean P. DeNigris
Administrator
In reply to this post by Sean P. DeNigris
Sean P. DeNigris wrote
I'm baffled
Here's something interesting... After loading Fuel 1.9.4 via the Configurations Browser, FLSerializer>>#currentVersion reports 193. I tried loading the latest Fuel package via MC into Pharo 3.0, but it relies on, Context, which doesn't exist.

Ugh. Migrating data should not be this hard. I know I will soon get my data back, but I'm only so confident because of my experience with Smalltalk and our great community. To a newer user, this could be a confidence-shaking deal breaker.
Cheers,
Sean
Reply | Threaded
Open this post in threaded view
|

Re: Upgrading Fuel Data

Sean P. DeNigris
Administrator
In reply to this post by Max Leske
Max Leske wrote
I’ll check when I get home. 1.9.4 -> 1.9.4 should *definitely* work.
There may be something wrong with the configuration. 1.9.4 loads Fuel.795, but the version was bumped in 799.
Cheers,
Sean
Reply | Threaded
Open this post in threaded view
|

Re: Upgrading Fuel Data

Sean P. DeNigris
Administrator
In reply to this post by Sean P. DeNigris
Sean P. DeNigris wrote
To a newer user, this could be a confidence-shaking deal breaker.
Workaround:
1. Revert Fuel package to v. 798 i.e. just before version bump
2. Materialize data
3. Reload original Fuel package (currently v. 804)

Suggestions:
1. unless/until we have a Fuel migration tool, at minimum, any Fuel version integrated into latest Pharo must be loadable in the previous Pharo version. E.g. if Fuel 1.9.4 was loadable in Pharo 3.0, migration would be a bit awkward, but doable.
2. Maybe more guidance in the default error behavior would help e.g. put up text suggesting to either a) temporarily downgrade Fuel to whatever version on first materialization, or b) re-serialize in the image where the data was serialized after upgrading Fuel
Cheers,
Sean
Reply | Threaded
Open this post in threaded view
|

Re: Upgrading Fuel Data

Max Leske

On 03 Mar 2015, at 18:03, Sean P. DeNigris <[hidden email]> wrote:

Sean P. DeNigris wrote
To a newer user, this could be a confidence-shaking deal breaker.

Workaround:
1. Revert Fuel package to v. 798 i.e. just before version bump
2. Materialize data
3. Reload original Fuel package (currently v. 804)

Glad that worked.


Suggestions:
1. unless/until we have a Fuel migration tool, at minimum, any Fuel version
integrated into latest Pharo must be loadable in the previous Pharo version.
E.g. if Fuel 1.9.4 was loadable in Pharo 3.0, migration would be a bit
awkward, but doable.

That’s a good idea. I’ll make a fix and add a job to the Fuel build to check for that.
Just note that “loadable” doesn’t necessarily mean “usable” in every sense. Example: the Context class does not exist in Pharo3. Luckily we do have a migration mechanism which allows us to specify which class to use instead of MethodContext during materialization. But: there are some migrations we can’t perform with Fuel (though they’re probably not relevent to most users).

What I want to say is that it’s the users responsibility to make sure that a graph is consistent (whatever the user defines as consistent) after materialization in such a situation. At least for now. Maybe we’ll get to a better place in the future.

2. Maybe more guidance in the default error behavior would help e.g. put up
text suggesting to either a) temporarily downgrade Fuel to whatever version
on first materialization, or b) re-serialize in the image where the data was
serialized after upgrading Fuel

We are aware that this is an open issue [1]. Many people have struggled with this (including myself). Unfortunately, none of the devs (Martin, Mariano and me) have any time to work on time consuming Fuel issues. If you (or anybody else) want to help with this though, I’d be happy to help where I can.


Cheers,
Max


[1] <a href="https://code.google.com/p/fuel/issues/detail?id=207&amp;q=version&amp;colspec=ID Type Status Priority Milestone Component Owner Summary" class="">https://code.google.com/p/fuel/issues/detail?id=207&q=version&colspec=ID%20Type%20Status%20Priority%20Milestone%20Component%20Owner%20Summary




-----
Cheers,
Sean
--
View this message in context: http://forum.world.st/Upgrading-Fuel-Data-tp4809243p4809265.html
Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.


Reply | Threaded
Open this post in threaded view
|

Re: Upgrading Fuel Data

Max Leske
In reply to this post by Sean P. DeNigris
Hi Sean.

I’ve added the necessary changes to Fuel so that 1.9.4 now cleanly loads (with all tests green) in Pharo 3 and Squeak 4.5.
The build matrix on the CI has been updated to account for versions 1.9.3 and 1.9.4 (across all image versions) and the development build now again only builds for Pharo 4.

So you can now safely do 

Gofer it
    package: 'ConfigurationOfFuel';
    load.
((Smalltalk at: #ConfigurationOfFuel) project version: ‘1.9.4') 
    load.

in any image version prior to the latest, and in the latest of course (so in 30, 40, Squeak4.5, Squeak4.6).

I hope this makes image migrations a bit easier. Please let us know if you have more suggestions (as I already said, the version problem is on our list).

Cheers,
Max


Begin forwarded message:

Date: 3 Mar 2015 18:03:08 CET
From: "Sean P. DeNigris" <[hidden email]>
Subject: Re: [Pharo-dev] Upgrading Fuel Data
Reply-To: Pharo Development List <[hidden email]>

Sean P. DeNigris wrote
To a newer user, this could be a confidence-shaking deal breaker.

Workaround:
1. Revert Fuel package to v. 798 i.e. just before version bump
2. Materialize data
3. Reload original Fuel package (currently v. 804)

Suggestions:
1. unless/until we have a Fuel migration tool, at minimum, any Fuel version
integrated into latest Pharo must be loadable in the previous Pharo version.
E.g. if Fuel 1.9.4 was loadable in Pharo 3.0, migration would be a bit
awkward, but doable.
2. Maybe more guidance in the default error behavior would help e.g. put up
text suggesting to either a) temporarily downgrade Fuel to whatever version
on first materialization, or b) re-serialize in the image where the data was
serialized after upgrading Fuel



-----
Cheers,
Sean
--
View this message in context: http://forum.world.st/Upgrading-Fuel-Data-tp4809243p4809265.html
Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.


Reply | Threaded
Open this post in threaded view
|

Re: Upgrading Fuel Data

stepharo
thanks max.
Fuel is cool and your effort is valuable to all of us.

Stef

Le 21/3/15 19:52, Max Leske a écrit :
Hi Sean.

I’ve added the necessary changes to Fuel so that 1.9.4 now cleanly loads (with all tests green) in Pharo 3 and Squeak 4.5.
The build matrix on the CI has been updated to account for versions 1.9.3 and 1.9.4 (across all image versions) and the development build now again only builds for Pharo 4.

So you can now safely do 

Gofer it
    package: 'ConfigurationOfFuel';
    load.
((Smalltalk at: #ConfigurationOfFuel) project version: ‘1.9.4') 
    load.

in any image version prior to the latest, and in the latest of course (so in 30, 40, Squeak4.5, Squeak4.6).

I hope this makes image migrations a bit easier. Please let us know if you have more suggestions (as I already said, the version problem is on our list).

Cheers,
Max


Begin forwarded message:

Date: 3 Mar 2015 18:03:08 CET
From: "Sean P. DeNigris" <[hidden email]>
Subject: Re: [Pharo-dev] Upgrading Fuel Data
Reply-To: Pharo Development List <[hidden email]>

Sean P. DeNigris wrote
To a newer user, this could be a confidence-shaking deal breaker.

Workaround:
1. Revert Fuel package to v. 798 i.e. just before version bump
2. Materialize data
3. Reload original Fuel package (currently v. 804)

Suggestions:
1. unless/until we have a Fuel migration tool, at minimum, any Fuel version
integrated into latest Pharo must be loadable in the previous Pharo version.
E.g. if Fuel 1.9.4 was loadable in Pharo 3.0, migration would be a bit
awkward, but doable.
2. Maybe more guidance in the default error behavior would help e.g. put up
text suggesting to either a) temporarily downgrade Fuel to whatever version
on first materialization, or b) re-serialize in the image where the data was
serialized after upgrading Fuel



-----
Cheers,
Sean
--
View this message in context: http://forum.world.st/Upgrading-Fuel-Data-tp4809243p4809265.html
Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.



Reply | Threaded
Open this post in threaded view
|

Re: Upgrading Fuel Data

Sean P. DeNigris
Administrator
In reply to this post by Max Leske
> I hope this makes image migrations a bit easier
Thanks! I’m sure it will :)

Cheers,
Sean