[Seaside] Porting Seaside
mbany at cincom.com
Tue Nov 1 19:17:06 CET 2005
Good to hear that you volunteered for the Dolphin port.
I can explain a bit what I do for the port to VW.
The first thing is to "prepare" VW for Seaside. This means
making VW look like Squeak, i.e. add the methods that are available
in Squeak and lacking in VW. There are quite many. This also means
a port of the Squeak Chronology classes, to properly support the
cookies. I also re-implemented some of the Squeak class browser
so that we can exploit the Seaside class browser. You will need
to be creative to handle the toolbar icons.
In the VW port, the bundle named "Seaside-VW" does the preparation
Most of the "Seaside-VW" bundle is the result of manual work and
some negotiation with Avi to make sure that Seaside remains VW friendly.
Only the Chronology part was automated, using the package exporter
with a package info of mine.
The second thing is to export the Seaside package from Squeak. This
is achieved using the Package exporter from Avi. I am using my
own version of it (PackageInfo-Exporters-mb.12 in
so that it works not only for Seaside but also for other things
like MEWA and SeasideTesting. I am afraid there is no exporter
for Dolphin, so you may have to subclass PackageExporter and
PackageInfo somehow. The output of the export process is a text file
that can be filed-in into the "prepared" VW. The Seaside-VW bundle
contains methods and scripts for doing the file-in. In some cases
the file-in may be unsucessful, for instance when some unsupported
Squeak syntax is used. In these situations, I create a new version
of the Seaside package and I retry the export. It may take several
iterations, that's why I try to avoid porting the very latest version
of Seaside and focus on versions that have been untouched for a long
time. These days I was porting 2.5b8. After a successful file-in
into VW, this becomes a bundle named "Seaside".
The third step consists in translating the Seaside requests and
into the underlying web platform. At the moment, two platforms are
supported Swazoo and Cincom WebToolkit. These are the bundles named
"Seaside-Swazoo" and "Seaside-WebToolKit". You may want to have a look
to the "Seaside-Swazoo" bundle for your project. Beside supporting
the underlying platform, the third bundle also includes fixes/patches
to Swazoo or WebToolKit and fixes to Seaside. In the latest ports
I could completely eliminate fixes to Seaside by including those
fixes directly into the Squeak package.
Feel free to ask if you need any further help.
More information about the Seaside