Wednesday, November 23, 2005

Packaging the unpackageable...

Until now I was working with 4 or 5 packages, containing all the seaside stuff, the seaside loose, tests, and the squeak compatibility. Last night I was trying to packagize the classes and loose methods of Seaside.

My first approach was to use a separate package for each of the seaside class categories (which are pretty well categorized). So I could write an exporter in Squeak, that could export each category into a separate package. That way I would maintain the core, the widgets, and other classes separately. Well... I've failed. The coupling between the packages was so big, that I couldn't save any package, or just a few.

So I rolled back, put almost all into a big bag package named "Seaside Common", and left out the packages which don't cause cyclic dependencies.

The packages not in "Seaside Common" are, whose includes classes corresponding to the squeak class category:
  • Seaside Configuration
  • Seaside Continuations
  • Seaside Examples Test
  • Seaside HTTP
  • Seaside Libraries
  • Seaside Utilities
  • Seaside Canvas (includes also the Canvas Tags)
I don't know if it's possible to decouple things, I would like to have the widgets and all which is not really core in other packages. Then everything else is convenience (which will be installed as soon is proven that are convenient :-).

However, it's still active. And so I am.


At 2:27 pm, Blogger Malby said...

It is possible to decouple the cyclic dependancies.

Most dependancies will occurr on single methods.. What you have to do, is make the methods loose methods of the packages that contain the classes they reference.

Understand what I mean?

It'll take a few minutes of examining pre-requeisites, and moving methods around, but you should be able to save the packages out


Post a Comment

<< Home

web site analysis