As can be expected with any software package, it is sometimes unavoidable that changes in the functionality of the package will cause incompatibilities with earlier versions. This is especially true when a package is a "proof-of-principle" package like Swarm.
We've made an attempt to compile all the problems a user might have moving to the new release and put them here. Please read this thoroughly to decide what you might need to do to your app to get it to work with the new release.
The biggest and most pervasive problems will be due to the new random library. Notes on how to deal with this problem are provided in the documentation for the random library.
A rather benign problem results from the repackaging of the swarmobject library. The interface to this library was brought into sync with the defobjand collections libraries. (The rest of the errant libraries will follow in a later release.) The solutions to the problems associated with this interface change are detailed in the documentation for the objectbase library.
There are a couple rather benign incompatibility introduced with 1.0 in the new activity library. Many parts of activity have changed. But, for the most part, everything works exactly the same. For details on the incompatibilities please see the documentation for the activity library. Briefly, the incompatibilities are:
The high-level structural changes in the activity library has led to the renaming of the variable
swarmActivity |
[self getActivity] |
getSwarmActivity |
The
getCurrentActivity() |
The functionality of
Zone
s has been greatly improved and
expanded upon. Most of the aspects of the idea behind
Zone
s are now in place. However,
there is one incompatibility that must be noted in case
your code is fairly old. The dropFrom: message has been
removed. Even though it was still present in recent
releases, its behavior was identical to drop. Any existing
usage should be replaced by a simple drop message without
any zone argument. SwarmObject subclasses are now
restricted from accessing the zone that was once contained
in an instance variable; the message getZone must be used
instead.