[squeak-dev] Re: Packages, Packages, Packages
cputney at wiresong.ca
Sun Dec 13 03:24:53 UTC 2009
On 2009-12-12, at 1:44 PM, Miguel Cobá wrote:
>> Before writing Mason, I did look into Sake and Bob. Sake doesn't meet one of my core needs, which is that the image being built does *not* need to have the build tool loaded. This provides a lot more flexibility in terms of what can be built, and Sake doesn't provide that.
> But that is a project decision. The case for pharo, they could simply
> choose to include the packages to load more packages in the core image
> and walk ahead. Isn't necessarily a problem to not have a pristine
> only kernel image. At least in my production servers I can have
> *those* packages installed, the same way that a minimal Debian server
> must have apt-get/aptitude installed in order to be *real* useful.
> In this internet age, is very valuable to download everything with
> just a command in a remote server. If that means to have some more
> packages in the core image, that is ok with me.
The problem is that you not only need the builder in your image, you need all of its dependencies. If the builder relies on Monticello, you need that loaded. Depending on how the packages you're loading are developed, you might need also Monticello 2, or Metacello. You also need the base image to be compatible with those dependencies. That's what led Keith to develop LevelPlayingField - a way to bring various base images up to the level of compatibility required by Sake and its dependencies.
I chose to take a different route, and have the builder live in it's own image, and produce a separate image with absolutely minimal dependencies. Mason can, for example, build a functional image based on Pavel's minimal image. To get that base image to run Sake, you'd have to build it back up to something resembling Squeak 3.9... which kind of defeats the purpose.
Now, if you don't mind having the builder loaded in the image, then I'm sure Sake is adequate. If it meets your requirements, by all means use it. But if you want to know why I wrote Mason rather than just using Sake, this is why.
More information about the Squeak-dev