> I want to start writing some code, but I would like to be organized
> from the start.
>
> Lets say I write code and save it as part of the image. I may even have
> changed an OA base class/method (fix a bug or make it do somethings
> slightly different).
>
> Now OA has an update to the image. How do I keep my code in such way
> that when I update the image I still have my original changes?
>
> I assume I should be using packages for this. But is this the only
> thing I have to do? Also if I have a class or global and an update from
> OA adds the same class to the base image, what happens? Who wins?
Packages will do most of it; note that you can package loose methods,
which in plain language means you can add methods to OA's classes, and
put those "extra" methods in your packages. In addition to loose
methods, I sometimes flag methods with selectors such as #wksSafe and
#wksDangerous [*] with the obvious interpretations. Doing that
allows/forces me to separately consider methods that I considered either
likely to conflict with future changes, or that I had to modify in a way
that might break a future version, but that I also do not want to lose.
Look at my goodies, and Migrate in particular, for more on how to
automatically file out methods, etc. Note that STS might offer a better
way to handle much of this.
Look on the wiki for information on backups, crash recovery, etc. Do
not panic when you see mention of "cyclic prerequisites". Save the
image, make a backup, and then sort it out. It gets much easier to do
after you fix a couple of cycles.
Have a good one,
Bill
[*] An example might be
Object>>doSomething
#wksSafe.
^true.
See #todo in the image. Browse for references to the selector, and you
get a list of the "marked" methods.
--
Wilhelm K. Schwab, Ph.D.
[hidden email]