I have long been frustrated that there is no place in squeaksource for
documenting what is in a repository, and offering feedback as to what
works where. We have several solutions on a macro-universal-scale,
namely, universes, squeakmap, and sake/packages.
I have started to use Sake/Packages as a kind of micro "universe" for my
Seaside "Client" UI & Backend Component Framework. Having seen how
useful this is I thought that this might be useful for pier, and of
course seaside and other projects.
For an example of this, have a look at squeaksource/Jetsam at the
there is a package Client-Packages.
For pier you would have a package in source.renggli.ch/pier called
For seaside29 you would have Seaside29-Packages etc etc.
This contains a class/classes which document all of the packages, and
the dependencies that are available for the project, together with
metadata, and package comments.
Some have reservations about Sake/Packages because they say it is not
declaritive. It is if you want it to be. 99% of the package declarations
already present are declarative. Exceptions are usually weird cases like
the unload script for Sake itself.
Having seen recently how useful this idea is, I will be looking at the
following improvements to the idea.
1) how best to integrate these micro-universes in to the main
2) how to declare alternative definitions for pharo and other images
3) how to make the micro universes light-weight, so that they may be
available for documentation without depending upon Sake/Packages being
loaded, (hmm, perhaps they could be published as traits!).
4) Bob support - Sake/Packages will also be able to generate load
scripts (for Bob or anyone who is interested), so that "Bob the Builder"
can build complex images without having ANY of the following loaded
monticello/sake/packages/universes/squeakmap, Installer will be the only