First that anything, thanks to Mariano for all the effort put in order
to release a 1.0 version of Pharo. And to all the contributors also.

As part of incorporating Metacello to my projects, I have gain a little
more insight in the working of it. For that I have been studying the
existing configurations. I even contributed a pair to the repository.
Tonight I was building a Pharo image using the ConfigurationOfPharo.

The announce said nothing but the inner workings of the dev image
creations changed, although the result is exactly (with a lot of fixes
included) the same that the rc1 image created with Metacello. The
changes are this:

- in rc1, it was only necessary ConfigurationOfPharo to build a complete
Pharo dev image. That is ConfigurationOfPharo included
ImageForDevelopers.

- in rc2, ConfigurationOfPharo isn't enough to build a dev image (I
noticed this tonight because I used ConfigurationOfPharo alone to build
an image but in the end I didn't get autocompetition), it is also
necessary to run a second script to load ImageForDevelopers and install
it. This is all done in the installScript.st script included in the
pharo rc2 dev image.

As I said before, the results are the same, but before all was done in
the ConfigurationOfPharo and now requires two steps.

Now to the point. I understand that the separation of concerns is good,
because ImageForDevelopers is already a separated and tested package
that shouldn't be inside ConfigurationOfPharo.

- Shouldn't be necessary to create a ConfigurationOfImageForDevelopers
and in this configuration reference ConfigurationOfPharo and then the
installScript for the dev image use *only*
ConfigurationOfImageForDevelopers?

- It appears that Dale will announce project preload/postload doIts next
monday. If that happens, shouldn't be better to incorporate the code
from DEVImageCreator as preload/postload do its to the
ConfigurationOfPharo?

It appears to me that DEVImageCreator is a mixture of different things,
both preference tuning (setDefaultPreferences, setFonts) image fixing
(addPreferenceCategories, cleanOpenMenu) and image building stuff
(writeListOfPackages, showWelcomeWorkspaces).

Maybe the image fixing stuff should be a change incorporated to the
PharoCore image, and the preference tuning should be a postload do it
for the ConfigurationOfImageForDevelopers, and the image building stuff
should be in the install script.

This way, if someone wants to build a image for developers (but without
the list of packages, or welcome workspaces) it only has to use
ConfigurationOfImageForDevelopers.

Also, maybe after all this refactoring, the
ConfigurationOfImageForDevelopers isn't necessary because all can be
incorporated to the ConfigurationOfPharo as preload/postload do its.
That is fine.

Also, the image for developers has stuff for squeak. This refactoring
would permit to separate them in preload/postload for each platform, in
a cleaner way.

As I said at beginning, this is only thoughts, and the current result
image is the same as the one produced by the previous configuration, but
maybe, with more time and less pressure, this refactoring and cleaning
could be made.

Of course, I will try to do this and contribute the code as my time
permits, but if someone can do it sooner, the better for all of us.

Thanks again for the hard work
-- 
Miguel Cobá
http://miguel.leugim.com.mx


_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to