hi all -
I'd like to announce an early alpha version of a dependency-resolution system for squeak packages. It has now reached the stage where it passes tests for multiple dependencies, conflicting dependencies, circular dependencies and dependencies limited to a particular distribution/universe. I have also succesfully loaded packages into a fresh Squeak, with prerequisites automatically taken care of.
To see it in action, load Kabungu from SqueakMap in Squeak 3.7 or 3.8. For best results, also load Monticello. Then:
1. install SmallBlog
by opening the 'SqueakMap Package Loader' and choosing 'install' in the menu for SmallBlog (or by evaluating: Kabungu current install: 'SmallBlog'). Installing SmallBlog will ask you if it is ok to install the YAXO prerequisite, and if yes, it will download and install both packages. Note that
2. install Seaside
it will ask you which 'web server' you want to install, since Seaside depends on a web server. If you choose KomHttpServer, Kabungu will detect that there is a chain of dependencies Seaside -> KomHttpServer -> KomServices -> Dynamic Bindings, and will ask you if it is ok to install all of these. If you agree, it will download and install them. There is some hitch about some older dependency on gk.1 -- that's a bug in the packaging of comanche)
3. install VMMaker in a 3.7 image and in a 3.8 image.
note that in 3.8 it will install version 3.8b3 while in a 3.7 image it will automatically attempt to install version 3.7b6 (but the VMMaker for 3.7 seems somewhat broken).
I haven't entered the dependencies for any other package, so (1-2) above are the only cases that will work for now. I will enter more dependencies soon - if you want an easy way to help, send me dependencies for packages you care about by filling in the #basicDependencies method.
Obviously this is an early version with rough edges everywhere and many functionalities missing (the result of a couple of days of coding), but looking at the previous discussions of dependencies on this list, I think that the design of Kabungu satisfies most of the points raised there.
I will try to post a description of its general design shortly, in the meantime enjoy!
Michal
On 18 août 05, at 11:24, Michal wrote:
hi all -
I'd like to announce an early alpha version of a dependency-resolution system for squeak packages.
Do you mean MC package?
It has now reached the stage where it passes tests for multiple dependencies, conflicting dependencies, circular dependencies and dependencies limited to a particular distribution/universe. I have also succesfully loaded packages into a fresh Squeak, with prerequisites automatically taken care of.
To see it in action, load Kabungu from SqueakMap in Squeak 3.7 or 3.8. For best results, also load Monticello. Then:
install SmallBlog
by opening the 'SqueakMap Package Loader' and choosing 'install' in the menu for SmallBlog (or by evaluating: Kabungu current install: 'SmallBlog'). Installing SmallBlog will ask you if it is ok to install the YAXO prerequisite, and if yes, it will download and install both packages. Note that
install Seaside
it will ask you which 'web server' you want to install, since Seaside depends on a web server. If you choose KomHttpServer, Kabungu will detect that there is a chain of dependencies Seaside -> KomHttpServer -> KomServices -> Dynamic Bindings, and will ask you if it is ok to install all of these. If you agree, it will download and install them. There is some hitch about some older dependency on gk.1 -- that's a bug in the packaging of comanche)
install VMMaker in a 3.7 image and in a 3.8 image.
note that in 3.8 it will install version 3.8b3 while in a 3.7 image it will automatically attempt to install version 3.7b6 (but the VMMaker for 3.7 seems somewhat broken).
I haven't entered the dependencies for any other package, so (1-2) above are the only cases that will work for now. I will enter more dependencies soon - if you want an easy way to help, send me dependencies for packages you care about by filling in the #basicDependencies method.
Obviously this is an early version with rough edges everywhere and many functionalities missing (the result of a couple of days of coding), but looking at the previous discussions of dependencies on this list, I think that the design of Kabungu satisfies most of the points raised there.
I will try to post a description of its general design shortly, in the meantime enjoy!
Michal
Bonjour Stephane -
I'd like to announce an early alpha version of a dependency-resolution system for squeak packages.
Do you mean MC package?
No, any package. Kabungu's business is to resolves dependencies and it is agnostic as to who is holding the dependency and what it is dependent on. Anything that is installable in Squeak will do.
Note that Kabungu currently looks for dependency info in SMPackage(Release), but it is also fundamentally agnostic about which package class Squeak ends up using. It could just as well pick up dependencies form Avi's PackageInfo, or from Lex's UPackage, or from Alexandre's future Package.
Michal
Ok, of several recent messages that made me go yeah! this one pushed me over the edge.
Michal wrote:
distribution/universe. I have also succesfully loaded packages into a fresh Squeak, with prerequisites automatically taken care of.
Yeah!! :) Thanks for working on this.
it will download and install them. There is some hitch about some older dependency on gk.1
Might be http://bugs.impara.de/view.php?id=1344 .
Michal wrote:
hi all -
I'd like to announce an early alpha version of a dependency-resolution system for squeak packages. It has now reached the stage where it passes tests for multiple dependencies, conflicting dependencies, circular dependencies and dependencies limited to a particular distribution/universe. I have also succesfully loaded packages into a fresh Squeak, with prerequisites automatically taken care of.
To see it in action, load Kabungu from SqueakMap in Squeak 3.7 or 3.8. For best results, also load Monticello. Then:
install SmallBlog
by opening the 'SqueakMap Package Loader' and choosing 'install' in the menu for SmallBlog (or by evaluating: Kabungu current install: 'SmallBlog'). Installing SmallBlog will ask you if it is ok to install the YAXO prerequisite, and if yes, it will download and install both packages. Note that
install Seaside
it will ask you which 'web server' you want to install, since Seaside depends on a web server. If you choose KomHttpServer, Kabungu will detect that there is a chain of dependencies Seaside -> KomHttpServer -> KomServices -> Dynamic Bindings, and will ask you if it is ok to install all of these. If you agree, it will download and install them. There is some hitch about some older dependency on gk.1 -- that's a bug in the packaging of comanche)
install VMMaker in a 3.7 image and in a 3.8 image.
note that in 3.8 it will install version 3.8b3 while in a 3.7 image it will automatically attempt to install version 3.7b6 (but the VMMaker for 3.7 seems somewhat broken).
I haven't entered the dependencies for any other package, so (1-2) above are the only cases that will work for now. I will enter more dependencies soon - if you want an easy way to help, send me dependencies for packages you care about by filling in the #basicDependencies method.
Obviously this is an early version with rough edges everywhere and many functionalities missing (the result of a couple of days of coding), but looking at the previous discussions of dependencies on this list, I think that the design of Kabungu satisfies most of the points raised there.
I will try to post a description of its general design shortly, in the meantime enjoy!
Michal
I was going to test this but: The install option is not present in the SMLoader menu. Karl
hi Karl -
I was going to test this but: The install option is not present in the SMLoader menu.
When you open the regular 'SqueakMap Package Loader' (from the 'open' submenu of the worldMenu in sq 3.8), select a package, and open the menu for that package, you don't get an 'install' option? how do you install squeakMap items? Or maybe we're talking about different menus?
Kabungu doesn't add any menu item here, it just changes the meaning of the regular squeak map menu from 'install' to 'install together with its dependencies'.
Hope that helps,
Michal
Michal wrote:
hi Karl -
I was going to test this but: The install option is not present in the SMLoader menu.
When you open the regular 'SqueakMap Package Loader' (from the 'open' submenu of the worldMenu in sq 3.8), select a package, and open the menu for that package, you don't get an 'install' option? how do you install squeakMap items? Or maybe we're talking about different menus?
Kabungu doesn't add any menu item here, it just changes the meaning of the regular squeak map menu from 'install' to 'install together with its dependencies'.
Hope that helps,
Michal
Look at attched jpg karl
Hi!
karl karl.ramberg@chello.se wrote:
Michal wrote:
hi Karl -
I was going to test this but: The install option is not present in the SMLoader menu.
Well, I just installed Kabungu in my 3.8-6665-irc image, worked fine. This leaves that image with this btw: Array2D (1) Atomic ((1.2)) IRCe (10.7.4) Kabungu ((4.1)) MCInstaller (10) Monticello (231) nCompiler for 3.8 (20) PackageInfo (18) SARInstaller for 3.6 (28) SmaCC Runtime (4) SqueakMap2 base (1.01) SqueakMap2 loader (1.02) SUnit (3.1.22) VersionNumber (1.0)
Anyway, if "install" isn't displayed - put a "self halt" in SMLoader>>packageSpecificOptions and see why the SMPackage doesn't answer true went sent "isInstallable". Because that is the reason for the "install"-menu choice to disappear. But as I said, I see it in my image - or otherwise I wouldn't have been able to install Kabungu - which I will take a deep close look at btw. :)
regards, Göran
Well, I just installed Kabungu in my 3.8-6665-irc image, worked fine.
That's because you came late enough :) Karl is right, there was a glitch in my squeakMap registration yesterday, and I just fixed a little while ago. Karl, thanks for the alert.
Btw. I'm about to upload a new version, as soon as I write a few tests for it.
Michal
Hi all -
I have uploaded to squeakMap a newer version of Kabungu a few minutes ago. The two major changes are:
- logic for ordering of installations (after the dependencies are resolved) - the packages with least dependencies are installed first.
- manually entered the dependencies for about 50 packages, for bootstrapping. A list is included below, if you know of changes, please let me know.
Note that at this point, the only supported demo is installing Seaside into a fresh 3.8 (w/ Monticello installed). It's a good demo as it has 3 prerequisites which are embedded into each other, and it also exercises abstract categories, since it is dependenton 'web server'. But the adding of 50 packages mostly showed how many packages are currently broken :(
Also, I have started a squeak source project for Kabungu, so you can always get the latest at:
http://www.squeaksource.com/Kabungu/
Kabungu - which I will take a deep close look at btw. :)
Great. I'll try to make a quick write-up of the overall architecture and the reasons for the choice of design.
Michal
basicDependencies
^{ {'KomHttpServer' . 'KomServices'}. {'KomServices' . 'DynamicBindings'}. {'SmallBlog' . 'YAXO'}. {'Swazoo-Server' . 'Swazoo-HTTP'}. {'Swazoo-Listener' . 'Swazoo-HTTP'}.
{'BFAV2' . 'HTTPClient'}. {'BlogBrowser'. 'Network-HTML' . 'Yaxo'}. {'ChuckRepository'. 'Monticello'}. {'EventInterceptorMorph'. 'SendTreeExplorer '}. {'Garden' . 'Monticello'. 'Gardner' . 'DynamicBindings' . 'SmaCC Runtime'}. {'GLORP port'. 'PostgreSQL Client for Squeak'}. {'GoodsServer'. 'InstanceEncoder'}. {'Grid Layout'. 'Dynamic Layout Menu'}. {'HTML-Parser'. 'YAXO'}. {'HttpView2'. 'HTMLBuilder'}. {'LoFPlayer1'. 'Connectors'}. {'Monticello'. 'PackageInfo'}. {'MonticelloCVS'. 'Monticello'}. {'MudPie'. 'Connectors'}. {'MultiSelectionInLists'. 'Hierarchy List Morph - Navigation'}. {'NetModel'. 'Connectors'}. {'ODBCEnh'. 'ODBC for Squeak'}. {'QuA QRMI'. 'QuA Component Middleware' . 'KomServices'}. {'Refactoring Engine'. 'AST'}. {'REPLServer'. 'KomServices'}. {'ROE'. 'PostgreSQL Client for Squeak'}. {'Seaside lines game'. 'Seaside'}. {'Services-OB' . 'Services-Base'. 'OmniBrowser'}. {'Services-Keymapping'. 'Services-Base'. 'Keymapping'}. {'Services-Whisker' . 'Services-Base'. 'Whisker Browser'}. {'ShoutMonticello'. 'Shout'}. {'ShoutWorkspace'. 'Shout'}. {'SGrid' . 'Bitstream Vera Fonts'}. {'SIXX'. 'YAXO'}. {'SoapCoreClient' . 'YAXO'}. {'SUnit active tutorial'. 'SUnit'}. {'TalkBack'. 'InstanceEncoder'}. {'Tamaris' . 'MultiSelectionInLists'. 'Hierarchy List Morph - Navigation'}. {'Thesaurus'. 'Scamper'. 'HTML-Parser'}. {'Typeinference'. 'MorphicWrappers'}. {'Universes'. 'YAXO'}. {'XMLRPC'. 'YAXO' . 'KomHttpServer'}.
{'eCompletionOmniBrowser'. 'OmniBrowser'. 'eCompletion'}. {'Enhanced IRC Client for Squeak 3.4'. 'IRC'}. {'PostgreSQL Client for Squeak'. 'ANSI Compatibility'}. {'Update Incorporation Tool'. 'BFAV2'}. {'Update Incorporation Tool'. 'ConflictChecker'}.
{'HC HTTPClient' . 'Monticello'}. {'Tracing Messages Browser'. 'Monticello'}. }
This is very cool. I tried to install Services-OB, and it correctly detected and installed Services-Base before that. Unfortunately, it appears that Services-OB itself is built for an older version of the OB. So how do I report that this dependency is not afforded by this release?
Daniel
Michal wrote:
Hi all -
I have uploaded to squeakMap a newer version of Kabungu a few minutes ago. The two major changes are:
- logic for ordering of installations (after the dependencies are
resolved) - the packages with least dependencies are installed first.
- manually entered the dependencies for about 50 packages, for
bootstrapping. A list is included below, if you know of changes, please let me know.
Note that at this point, the only supported demo is installing Seaside into a fresh 3.8 (w/ Monticello installed). It's a good demo as it has 3 prerequisites which are embedded into each other, and it also exercises abstract categories, since it is dependenton 'web server'. But the adding of 50 packages mostly showed how many packages are currently broken :(
Also, I have started a squeak source project for Kabungu, so you can always get the latest at:
http://www.squeaksource.com/Kabungu/
Kabungu - which I will take a deep close look at btw. :)
Great. I'll try to make a quick write-up of the overall architecture and the reasons for the choice of design.
Michal
basicDependencies
^{ {'KomHttpServer' . 'KomServices'}. {'KomServices' . 'DynamicBindings'}. {'SmallBlog' . 'YAXO'}. {'Swazoo-Server' . 'Swazoo-HTTP'}. {'Swazoo-Listener' . 'Swazoo-HTTP'}.
{'BFAV2' . 'HTTPClient'}. {'BlogBrowser'. 'Network-HTML' . 'Yaxo'}. {'ChuckRepository'. 'Monticello'}. {'EventInterceptorMorph'. 'SendTreeExplorer '}. {'Garden' . 'Monticello'. 'Gardner' . 'DynamicBindings' . 'SmaCC Runtime'}. {'GLORP port'. 'PostgreSQL Client for Squeak'}. {'GoodsServer'. 'InstanceEncoder'}. {'Grid Layout'. 'Dynamic Layout Menu'}. {'HTML-Parser'. 'YAXO'}. {'HttpView2'. 'HTMLBuilder'}. {'LoFPlayer1'. 'Connectors'}. {'Monticello'. 'PackageInfo'}. {'MonticelloCVS'. 'Monticello'}. {'MudPie'. 'Connectors'}. {'MultiSelectionInLists'. 'Hierarchy List Morph - Navigation'}. {'NetModel'. 'Connectors'}. {'ODBCEnh'. 'ODBC for Squeak'}. {'QuA QRMI'. 'QuA Component Middleware' . 'KomServices'}. {'Refactoring Engine'. 'AST'}. {'REPLServer'. 'KomServices'}. {'ROE'. 'PostgreSQL Client for Squeak'}. {'Seaside lines game'. 'Seaside'}. {'Services-OB' . 'Services-Base'. 'OmniBrowser'}. {'Services-Keymapping'. 'Services-Base'. 'Keymapping'}. {'Services-Whisker' . 'Services-Base'. 'Whisker Browser'}. {'ShoutMonticello'. 'Shout'}. {'ShoutWorkspace'. 'Shout'}. {'SGrid' . 'Bitstream Vera Fonts'}. {'SIXX'. 'YAXO'}. {'SoapCoreClient' . 'YAXO'}. {'SUnit active tutorial'. 'SUnit'}. {'TalkBack'. 'InstanceEncoder'}. {'Tamaris' . 'MultiSelectionInLists'. 'Hierarchy List Morph - Navigation'}. {'Thesaurus'. 'Scamper'. 'HTML-Parser'}. {'Typeinference'. 'MorphicWrappers'}. {'Universes'. 'YAXO'}. {'XMLRPC'. 'YAXO' . 'KomHttpServer'}.
{'eCompletionOmniBrowser'. 'OmniBrowser'. 'eCompletion'}. {'Enhanced IRC Client for Squeak 3.4'. 'IRC'}. {'PostgreSQL Client for Squeak'. 'ANSI Compatibility'}. {'Update Incorporation Tool'. 'BFAV2'}. {'Update Incorporation Tool'. 'ConflictChecker'}.
{'HC HTTPClient' . 'Monticello'}. {'Tracing Messages Browser'. 'Monticello'}. }
So how do I report that this dependency is not afforded by this release?
That is indeed the next logical step. I have code that stores and takes advantage of such 'hints', but they need to live somewhere publicly accessible for them to be useful. The obvious place is squeakMap. I have contacted Goran about that but I haven't heard back yet.
Michal
Hi Michal - I have reported a bug with the current SM Kabungu at http://bugs.impara.de/view.php?id=1749 .
On Sat, Aug 27, 2005 at 12:42:50PM -0700, Simon Michael wrote:
Hi Simon - thanks for the report. By the time I saw it, Daniel had already sent me two small fixes that cure it - isn't open source wonderful ;)
You'll find an updated version in your squeakmap.
Michal
Hi Michal - I have reported a bug with the current SM Kabungu at http://bugs.impara.de/view.php?id=1749 .
Please be sure to update the status of the bug report at http://bugs.impara.de/view.php?id=1749
Ken
On Mon, 2005-08-29 at 17:07 +0200, Michal wrote:
On Sat, Aug 27, 2005 at 12:42:50PM -0700, Simon Michael wrote:
Hi Simon - thanks for the report. By the time I saw it, Daniel had already sent me two small fixes that cure it - isn't open source wonderful ;)
You'll find an updated version in your squeakmap.
Michal
Hi Michal - I have reported a bug with the current SM Kabungu at http://bugs.impara.de/view.php?id=1749 .
squeak-dev@lists.squeakfoundation.org