Installer cache install: 'AlgebraicDataType'; install: 'Unification'; install: 'Zippers'
If I rewrite the script thusly:
Installer cache install: 'AlgebraicDataType'. Installer cache install: 'Unification'. Installer cache install: 'UnificationTests'. Installer cache install: 'Zippers'.
then all goes well.
I noticed the exact same thing just a couple of weeks ago! Just awful.
What you (we!) originally wrote is a natural, user-friendly way to direct the installer, definitely not something that it should silently punish the user for!
But before putting out a reactive-fix, I wanted to see if we could look at the API and understand how Installer is intended to be used. Does one "set up" with builder methods like #addPackage:, and then a pull the trigger with #install to load them all at once?
Or, is it meant to be used like you were -- like a nice utility Facade?
Installer cache install: 'pkg1'; install: 'pkg2'; etc.
Or, something else?
We definitely need to clarify and fix this.
and I pass that in as the startup script when I start up my Squeak (whether a pre-4.3 or a 4.3 (yay!)), I see the usual progress bar. It says "Compiling AlgebraicDataType-fbs.nn" and then "Installing AlgebraicDataType-fbs.nn", as expected. And then it says the same thing again, talking about installing and compiling AlgebraicDataType instead of Unification, and then again when loading Zippers.
The packages all load correctly: it's just the progress morph giving a misleading status message. Has anyone else seen this?
Further, the name of the ChangeSet into which the package loads gets mangled to start with the first package loaded. That's because MCPackageLoader>>basicLoad which has:
"Obviously this isn't the package name but we don't have anything else to use here. ChangeSet current name will generally work since a CS is usually installed prior to installation." pkgName := ChangeSet current name.
If I read correctly, Installer eventually calls InstallerMonticello>>basicInstall, which calls "self mcThing load". Had that been "self mcThing loadWithName: <left as exercise to reader>", I think things would be fine, and I'd see sensible changeset names (and status messages during loading). Is it feasible to change Installer to call a better loading method like #loadWithName: ?
frank