Dec. 19, 2011
4:04 p.m.
Stéphane Ducasse wrote: > ben thanks for your feedback. > > Normally we should use the monticello repository browser and just click on a ConfigurationOf > I've been lurking this mail list for 6 - 9 months and had not picked that up. That is a big miss. I'm not usually so slow. Can you point me to the documentation that describes that process? In the meantime, I unzip a fresh Pharo-1.3-OneClick, open Monticello Browser and look for ConfigurationOfSqueakDBX. I can't see it. I expected to since you seemed to indicate it was that simple. So I GUESS* my way through. I <Open> the http://www.squeaksource.com/MetacelloRepository repository (which actually requires a bit of fore knowledge about the url - which not all newbies will have) This did show ConfigurationOfSqueakDBX but the are many versions and so many buttons to choose from. A bit scary for a newbie. Anyhow, I'll ASSUME* to select the latest one ConfigurationOfSqueakDBX-MarianoMartinezPeck.27 and click <Load>. I still can't see any SqueakDBX or OpenDBX classes in System Browser. Do I need to follow up manually doing "ConfigurationOfSqueakDBX project latestVersion load." ? A mixed procedure part GUI and part non-GUI is not the best - and I've not seen it documented anywhere. I would have liked to have loaded the package with "just a single click on a ConfigurationOf" but there seems to be more to it than that. The following still seems easier: > Metacello package: 'SqueakDBX' load or perhaps some alternatives using existing tools... 1. To the Monticello Browser add a <Metacello> button that opens http://www.squeaksource.com/MetacelloRepository. If Metacello is "THE" package management tool then it should have a higher profile than just one of the 23 listed repositories, of which two others have "Metacello" in their title. 2. To the World Menu, add a <Metacello Browser> item that jumps straight to the Monticello Repository Browser for http://www.squeaksource.com/MetacelloRepository. 3. The Welcome Text of a fresh pharo-oneclick image should describe how to do either 1. or 2. above. cheers, Ben > than did you read the forthcoming chapter? > https://gforge.inria.fr/frs/download.php/28462/Metacello.pdf (old version) > > Yes I refer to it in point 4 below. Can you point me to where in that pdf it specifically describes that loading procedure using Monticello Browser. All the examples I can see are code b> below, except using (Smalltalk at:.....) rather than the class itself. Further, the Pharo-1.3-OneClick opening documentation says to execute the following line... > DEVImageWorkspaces openExternalProjectWorkspace. which shows several examples all of the same form as the code b> below. Also, from memory the examples given throughout this mail list tend to be of the same form as code b> below - rather than directing people to the GUI Monticello Browser - or I probably would have picked that up sooner. > Stef > > > > On Dec 19, 2011, at 5:15 AM, Ben Coman wrote: > > >> Some observations from the perspective of as a newbie on Pharo Package Management. I'm likely to me missing in the philosophy of the design, but from the narrow view of my own usage.... >> >> 1. When I read about Metacello being the package management system, I expected there to be a "command"(*) Metacallo but instead I see Gopher being used. This is a mixed message that lowers my comfort level feeling I understand the system as I'm trying to pick up a bundle of new ideas. As I now understand it Metacello is more about a system of backend configuration than a front end user interface. I am now more comfortable using Gopher direct - but I reflect on how I felt the first time. >> >> (*) While technically a "command" is like a verb, and Gopher is like a noun rather than a verb - I can't yet completely disengage my prior learning that considers the first part of the statement to be a "command" - and I expect other newbies might find the same. >> >> 2. The strong convention of naming things ConfigurationOfXXXX is somewhat redundant from a user perspective. >> >> 3. If copy-paste into the Workspace from a web site a sample package load (for example b> below) and then highlight the whole thing and execute, it tells me >> "Unknown variable: ConfigurationOfSqueakDBX, please correct, or cancel" Duh! What? Oh, I need to execute it in two parts. No one wrote that down anywhere.... >> The alternative "(Smalltalk at: #ConfigurationOfSqueakDBX)" adds further complexity in the eyes of a newbie. >> >> Based on the above points, it would be nice to have... >> >> a> Metacello configuration: 'SqueakDBX' load >> >> rather than... >> >> b> Gofer new >> b> squeaksource: 'MetacelloRepository'; >> b> package: 'ConfigurationOfSqueakDBX'; >> b> load. >> b> ConfigurationOfSqueakDBX project latestVersion load. >> >> While only a small saving in typing, I think it significant for newbies in terms of polish and the marketing message that Metacello really is the chosen package management system. >> A very rough implementation (with much of the syntax likely wrong) might be just... >> >> c> Metacello class >> package: aPackage >> c> | packageConfig | >> c> packageConfig := 'ConfigurationOf', aPackage; >> c> Gopher new c> squeaksource: 'MetacelloRepository'; >> c> package: packageConfig >> c> load >> c> ^((Smalltalk at: (packageConfig asSymbol)) >> >> >> Now after I've written the above I contemplate that there must have been an early design decision to not implement a separate Metacello class to avoid duplication/overlap with Monticello. However perhaps now that the system is implemented as it is, a thin shim can be put over the top to assist getting the ConfigurationOfXXX files downloaded. Additional things this Metacello class might later provide: a. Improved reliability by downloading from a system of package repository mirrors. SqueakSource was having some issues and I found [1] a fortunate backup. b. A GUI for browsing package versions >> c. A GUI for browsing compatibility tables from a continuous integration system that tries different permutations of Montecello packages together. >> >> >> 4. It seems that every ConfigurationOfXXX has its own category in the SystemBrowser. Each of these categories has only one class. This seems to me like unneeded clutter of the System Browser. It would be neater if Metacello specified its configurations to be grouped under a single category "MetacelloConfigurations" or similar. >> >> 5. The sample Metacello PBE is very good in the detail for developers to provide configurations. However there is not much directed clearly at a 'mere' user. Even though Smalltalk makes us all developers, newbies all start as mere users while exploring the system. >> [1] Gofer new url: 'http://dsal.cl/squeaksource/MonticelloRedirect'; package: 'MontiRedirect'; load. MRManager redirectFrom: 'http://www.squeaksource.com/' to: 'http://dsal.cl/squeaksource/'. >> >> Cheers, Ben >> >> > > > >