>We are used to VisualAge and VisualWorks, which clearly shows the >structure of packages in the browser
Do you know O2 browser for Pharo? It's an additional browser that shows the packages similar to VW. See [1] and ask on the pharo list to get the right version for your image. >We are uncertain how packages are made and how they show up in Monticello. Monticello is simple - an MCZ is just a ZIP including the code. Monticello (ab)uses class/method categories to find out which package the code belongs to. Packaging is simple: in short if you create a package "MyApp" in Monticello any class that is in a class category that starts with "MyApp" will be in this package. Example: a) class "MyClass" in class category "MyApp-Core" and b) class "MyModelClass" in class category "MyApp-Core-Model" and c) class "MyTestCase" in class category "MyApp-Tests" 1. When you create a Monticello package (in the Monticello browser) called "MyApp" automatically all three classes (core and tests) are then into this simple package (click on "Browse" to verify) 2. If you want core and tests in separate packages you create two packages "MyApp-Core" (automatically including a and b) and "MyApp-Tests" with c. Method extensions: If you put a method in a category with a leading star and your package name it gets included too. So if you put a method #foo on String into the method category "*myapp-core" it is a method extension on String packaged in "MyApp-Core" package. If you have well named packages this works good and even works in the large. Typically packages are stored in repositories (www.squeaksource.com repo server, local (shared) directories, FTP, ...) Read the http://pharobyexample.org/ book to get more info on Monticello. Also check out http://pharocasts.blogspot.com/ > Since we are unable to organize our code in packages, controlling and > verifying dependencies between them is hard. This is adressed using METACELLO (which manages Monticello packages) - think of Monticello to provide packages and Metacello as configurations to manage which package (version) depends on which other package (version) You just describe baselines (structure and dependencies) and versions that fit together in a class/package called "ConfigurationOfMyApp". See [2] and [3] and the ProfStef teacher workspace that comes with Pharo to learn more. If stuck just ask. Namespace support and better Breakpoint support will (hopefully) adressed in the near future. Also better packaging. Bye T. [1] http://lists.gforge.inria.fr/pipermail/pharo-project/2010-January/020475.html [2] http://code.google.com/p/metacello/ [3] https://gforge.inria.fr/frs/download.php/27018/Monticello.pdf -- GMX DSL: Internet-, Telefon- und Handy-Flat ab 19,99 EUR/mtl. Bis zu 150 EUR Startguthaben inklusive! http://portal.gmx.net/de/go/dsl _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
Free forum by Nabble | Edit this page |