[Q] How to upgrade to a new image

goran.hultgren at bluefish.se goran.hultgren at bluefish.se
Thu Apr 3 10:06:11 UTC 2003

Hi Martin and all!

Martin Drautzburg <martin.drautzburg at web.de> wrote:
> I just upgraded from 3.4 to 3.5 and with my limited knowledge this was
> rather painful (took a few hours). I know that this is nothing
> compared to a Windows or Linux upgrade, but I may have done some
> foolish things to I thought I better ask.
> (1) My own code
>     I had written some code in my own class categories. I filed out
>     the category and filed it back in. Some of the classes however
>     were derived from (TrueType) Classes that were not yet present in
>     the new image. The class ended up as a subclass of ProtoObject

Avi just wrote that this simply is about doing things in the right order
- but you know that of course.
Avi has also written about the new DVSicello (DVS adopts the Monticello
format) that I think he mentioned would be able to warn about his and
simply skip the filein. So when we gradually move over to this new
format the problem will be "gone".
> (2) Uninitialized class variables
>     Some of classes had state in Class Variables. The state was lost
>     until I reinitialized the class variables. Easy, but also easy to
>     forget. Luckily I had Sunit tests that quickly revealed the
>     problem.

Simply implement a class "initialize" method and it should work (I
assume). Avi wrote that too I think. 

> (3) Morphs
>     I had composed some Morphs by "embedding". I created a new project
>     pasted these morphs there and wrote the project to disk. I
>     realized I needed ComicBold in my old image to save a project to
>     disk (just to type in the project name). I changed the hardcoded
>     font name. 

Well. :-) Don't know much about the Project-magic involved here -
migrating .pr files to new versions of Squeak sounds non-trivial.
> (4) Drawings relying on Classes
>     A connectors Drawing I had made used a HJSmartLabelMorph which is
>     no longer present in the latest Jacaranda release. I ended up
>     deleting the label from the drawing (there was just one label) and
>     I could read the project.

Similar to the above, right?

> (5) Squeak map
>     I loaded lots of stuff from SqueakMap. That was easy except for
>     the risk to forget something and doing things in the right order.

Good point. I could probably easily add some simple feature for this and
I think it has been mentioned earlier and is probably in my sm-todolist.
Some mechanism for simply producing a load script that you can later
just "play back" in a vanilla image.
> (6) System changes made my me
>     I had changed some (look related) system classes. I was able to
>     localize the changes in the original image and create an extra
>     change set, file this one out and read it back in. That was easy
>     except for localizing my changes in NewChanges. Is there a way to
>     find changes with my initials ?

Hmmm, I always work with a dual changesorter at close hand. Always work
in one changeset called "updates" something and regularly I move stuff
from that changeset into multiple others. This way you can simply hack
away without thinking and then sort the changes afterwards.

Obviously using DVS this is in many ways "automated" for you.

regards, Göran

More information about the Squeak-dev mailing list