We discussed a bit the procedure, how to make it easy and convenient to install a multiple packages using Installer in a convenient way.
Prerequisites: - you having a multiple packages , and need some untrivial steps to complete installation, which usually can't be handled purely by MC - for that, you creating a MyPackage-Installer package and put it in same repository as your project located.
Now, what we want is: - load the MyPackage-Installer package
- for all its classes, which implement #install method, run them. then after we're finished, unload the MyPackage-Installer package, because it is no longer needed, since its only job is to load the actual project to image.
I think it could be as simple as adding this to Installer, so you could type:
Installer autoInstallFromMC: urlToRepository
then installer should list the repository files, try to find the package with name, which ends with 'Installer' string, and then load it and continue with the steps i described above.
2009/9/4 commits@source.squeak.org:
A new version of AlienInstaller was added to project The Inbox: http://source.squeak.org/inbox/AlienInstaller-mha.4.mcz
==================== Summary ====================
Name: AlienInstaller-mha.4 Author: mha Time: 4 September 2009, 9:33:33 am UUID: 12c65287-2707-43b1-895e-638d4b8ed545 Ancestors: AlienInstaller-mha.3
added script to have Alien installation proceed automatically
=============== Diff against AlienInstaller-mha.1 ===============
Item was added:
- ----- Method: AlienInstaller class>>postInstallInitialization (in category 'installation') -----
- postInstallInitialization
- #( ParseNode Alien AlienLibrary FFICallbackThunk Callback UnsafeAlien )
- do: [ :c | c initialize ]
- displayingProgress: 'Initializing ...'!
Item was added:
Item was added:
- ----- Method: AlienInstaller class>>recompileAlien (in category 'installation') -----
- recompileAlien
- (PackageInfo named: 'Alien') methods
- do: [:ea | ea actualClass recompile: ea methodSymbol]
- displayingProgress: 'Recompiling...'!
Item was changed: ----- Method: AlienInstaller class>>install (in category 'installation') ----- install | repository | repository := (Installer repository: 'http://www.squeaksource.com/') project: 'Alien'.
- #( 'Alien-Core' 'Alien-CoreTest' 'Alien-Examples' 'Alien-LibC' )
- #( 'Alien-Core-First' 'Alien-Core' 'Alien-Examples' 'Alien-LibC' 'Alien-CoreTest' 'Alien-Last-Class-Initialize' )
do: [ :p | repository install: p ] displayingProgress: 'Installing Alien packages ...'.
- self
- recompileAlien;
- postInstallInitialization!
- (PackageInfo named: 'Alien') methods
- do: [:ea | ea actualClass recompile: ea methodSymbol]
- displayingProgress: 'Recompiling...'!
On 9/4/09 4:58 AM, "Igor Stasenko" siguctua@gmail.com wrote:
We discussed a bit the procedure, how to make it easy and convenient to install a multiple packages using Installer in a convenient way.
Prerequisites:
- you having a multiple packages , and need some untrivial steps to
complete installation, which usually can't be handled purely by MC
- for that, you creating a MyPackage-Installer package and put it in
same repository as your project located.
Now, what we want is:
load the MyPackage-Installer package
for all its classes, which implement #install method, run them.
then after we're finished, unload the MyPackage-Installer package, because it is no longer needed, since its only job is to load the actual project to image.
I think it could be as simple as adding this to Installer, so you could type:
Installer autoInstallFromMC: urlToRepository
then installer should list the repository files, try to find the package with name, which ends with 'Installer' string, and then load it and continue with the steps i described above.
I think Monticello have preamble and postscript now or I'm wrong ?
So no need of Installer at all, only appropriated DoIts
In fact , one of the things I wish is get rid of Installer, SM, Universes.ScriptLoader and ReleaseBuilder on the trunk image.
All should live outside of image and people who need, want or miss could load to last versions.
Edgar
2009/9/4 Edgar J. De Cleene edgardec2001@yahoo.com.ar:
On 9/4/09 4:58 AM, "Igor Stasenko" siguctua@gmail.com wrote:
We discussed a bit the procedure, how to make it easy and convenient to install a multiple packages using Installer in a convenient way.
Prerequisites:
- you having a multiple packages , and need some untrivial steps to
complete installation, which usually can't be handled purely by MC
- for that, you creating a MyPackage-Installer package and put it in
same repository as your project located.
Now, what we want is:
load the MyPackage-Installer package
for all its classes, which implement #install method, run them.
then after we're finished, unload the MyPackage-Installer package, because it is no longer needed, since its only job is to load the actual project to image.
I think it could be as simple as adding this to Installer, so you could type:
Installer autoInstallFromMC: urlToRepository
then installer should list the repository files, try to find the package with name, which ends with 'Installer' string, and then load it and continue with the steps i described above.
I think Monticello have preamble and postscript now or I'm wrong ?
So no need of Installer at all, only appropriated DoIts
In fact , one of the things I wish is get rid of Installer, SM, Universes.ScriptLoader and ReleaseBuilder on the trunk image.
All should live outside of image and people who need, want or miss could load to last versions.
So, you want to leave MC to be the only tool for loading a code into image? I'm ok with that.. But its easier to say than to do.
Edgar
On 9/4/09 9:42 AM, "Igor Stasenko" siguctua@gmail.com wrote:
So, you want to leave MC to be the only tool for loading a code into image? I'm ok with that.. But its easier to say than to do.
For trunk image, have sense, as all people using it know how use MC And all the others sure do not have up to date versions of each package. Less packages, better ones. Or...mix the good things in only one. Updates is moving fast and still could add my "ProcustesEnd" idea to Monticello
http://www.morphle.com/~edgar/CreatingaProcustesEnd.mov http://www.morphle.com/~edgar/CreatingaProcustesEnd2.mov http://www.morphle.com/~edgar/UsingSqueakSource.mov
Edgar
squeak-dev@lists.squeakfoundation.org