El dom, 09-08-2009 a las 10:29 -0700, Dale Henrichs escribió: > - Package to package dependencies. One can declare required packages > like the > following: > 'Example-Core-anon.9' > 'Example-Tests-anon.3' requires: 'Example-Core' > 'Example-AddOn-anon.1' requires: 'Example-Tests' > 'Example-UI-anon.1' requires: { 'OB'. 'Example-AddOn'. } > From the above statements, the package load order is derived and used > when you > load the project: > (ExampleProject version: '0.3') load > It is also used to determine _which_ packages should be loaded when an > expression like the following is executed: > (ExampleProject version: '0.3') load: 'Example-AddOn' > This statement causes 'Example-Core-anon.9', 'Example-Tests-anon.3', > 'Example-AddOn-anon.1' to be loaded in order.
This is very good, one thing that the package management system of Debian has is that you can indicate a minimal version for a required package: for example, following your code snippet: 'Example-Core-anon.9' 'Example-Tests-anon.3' requires: 'Example-Core' minVersion: 9 'Example-AddOn-anon.1' requires: 'Example-Tests' minVersion: 1 maxVersion: 3 'Example-UI-anon.1' requires: { 'OB' . 'Example-AddOn'. } This way, the package system doesn't have to install a exact version if a group of versions of the package required can equally work. This permits to have a package, say 5 of a package that have a new feature that I need in my image and not be overwrote by a dependency of other package that needs exactly version 3 that doesn't have the feature that I need. Maybe Metacello has this functionality, but if not, it would be, I think, easy to add it, just a comparation that the version available in the system meets the criteria stated by the package dependency. Also, a form to force the install a package even if not all the dependencies are met is good, in particular to test some experimental package. For more information you can refer to the dpkg/deb/aptitude tools in the debian system. Of course that tools do a lot more but we don't need, at least for now, all the features. http://en.wikipedia.org/wiki/Aptitude_(program) http://en.wikipedia.org/wiki/Deb_(file_format) http://en.wikipedia.org/wiki/Dpkg All of them are GPL but I think that a new implementation, without use the code, and in another language, using only the ideas, is permited and can be integrated in Pharo as MIT code. _______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project