[squeak-dev] How do I create SqueakMap package for loading an MCConfiguration?

Chris Muller ma.chris.m at gmail.com
Wed Jan 14 20:32:37 UTC 2015


On Wed, Jan 14, 2015 at 7:34 AM, Trygve Reenskaug <trygver at ifi.uio.no> wrote:
> Chris,
> Many, many thanks. I finally got it right and BBAllInOne now loads
> correctly. The working script reads
>     SMSqueakMap default loadUpdates.
>     (Installer repository: 'http://www.squeaksource.com/DCI') install:
> 'BBAllInOne-TRee.18' .
>
> Is there a simpler way?

Well, as in the above, you only had to give the bare minimum
information the system would absolutely require to fulfill the
requirement:  1) The repository and 2) MCVersion to #install.  It's
hard for me to imagine what could possibly be simpler than that..

> Most SqueakMap packages do not have a script; they
> only have a "Download URL".

They /all/ have a Download URL.  What varies is what type of file is
found at that url.  When you entered the script above and clicked
"Save" in the Release Editor browser, it saved it as a ".st" file on
the SM server, with the "Download URL" field pointing to it.
SqueakMap will still interpret .mcz, .sar, as well as .st files and
"do the right thing" for each type.

So you actually are using Download URL, just with the .st file which
loading it from SS.

But, yes, you could log into your SM account on the web and manually
upload a copy of single .mcz file and be done that way.  But since you
have the script now done once, now for future versions it might be
easier simply to select "Edit Release", update the version #, and
click "Save".  Done.  That's easier than a manual upload and the code
itself resides only in one place, SqueakSource.

> AwesomAtom is one example.  BabyIDE-1.2.9 is
> another. I made it 6 years ago. It still works. I cannot remember how I
> specified the URL at the time and cannot find any user interface to edit it.

Plus, the coolest thing about SqueakMap is that it is an on-line
resource which let's us "borrow" each other's /Smalltalk compiler/ in
order to show each other how to run our software.  It's a on-line
catalog of Smalltalk code-snippets.  This is very powerful.

Maybe you would like BabyIDE to open up some sort of Welcome panel
when installed from SqueakMap.  That's easy with the .st script or
.sar file.  Not with just an uploaded .mcz.

Cheers.

> Has it been removed?
>
> Again, many thanks for your help.
> --Trygve
>
>
>
> On 13.01.2015 18:36, Chris Muller wrote:
>
> The desirable properties of a SqueakMap-based configuration are:
>
>   - Load the application if it isn't already loaded, including any
> required dependencies first, as necessary.
>   - Update the package to the latest version if older version(s) are
> already loaded in the image.
>   - Don't lose any local changes I may have made when updating the package.
>   - Load exact versions for production released versions of Squeak
>   - Load the latest code for the current trunk version of Squeak
>
> Take a look at a working example; say, the "Ma client server" package,
> which meets all of the above requirements with a simple script.  It
> depends on OSProcess but loads that automatically if you don't already
> have it.  The "1.6" version is designated for Squeak 4.4 while "head"
> version loads the currently latest code using McmUpdater, the same
> process we use for trunk.
>
> Here is some documentation:
>
>   http://wiki.squeak.org/squeak/779
>   http://wiki.squeak.org/squeak/6181
>   http://wiki.squeak.org/squeak/2726
>
> HTH
>
> On Tue, Jan 13, 2015 at 11:08 AM, Trygve Reenskaug <trygver at ifi.uio.no>
> wrote:
>
> I want to configure BabyIDE with a number of examples into a package that
> interested Squeakers can install with a minimum of fuss. I chose
> MonticelloConfigurations because it looked much simpler than Metacello.
> Being utterly confused after reading code, the documentation I could find.
> Also trying what I could guess at.
>
> The configuration is at
>     http://www.squeaksource.com/DCI/BBAllInOne-TRee.1.mcz
> and at
>     http://www.squeaksource.com/DCI/BBAllInOne-TRee.18.mcm
>
> I have defined a SqueakMap package 'BabyIdeAllInOne' with 3 versions for
> loading the configuration. None of them work:
> I open a fresh image and use the SqueakMap Package Loader to load
> BabyIdeAllInOne 1.2. I get an error
> 'No package release found with version TRee.1'
> -----
> The question appears to be:
> Where did SMSqueakMap look when it didn't find a release?
> I have tried these scripts (among many):
>      SMSqueakMap default installPackageNamed: 'BBallInOne' version: 'TRee.1'
> and
>      SMSqueakMap default installPackageNamed: 'BBallInOne' version:
> 'TRee.18'
>
> May be I shouldn't have used a script at all, but relied on some unknown
> convention?
>
> I'm completely lost and badly need help.
> --Trygve
>
>
>
>
> --
>
> Trygve Reenskaug      mailto: trygver at ifi.uio.no
> Morgedalsvn. 5A       http://folk.uio.no/trygver/
> N-0378 Oslo             http://fullOO.info
> Norway                     Tel: (+47) 22 49 57 27
>
>  Save our in-boxes! http://emailcharter.org/
>


More information about the Squeak-dev mailing list