Metacellobrowser feedback
Hi all, I'd like to give a bit of feeback on the metacello browser. First some context: I am aware of the core concepts of configuration management, but because of lack of time I never got to learn Metacello. So I thought this browser would be ideal for me, I gave it a go, and I'd like to report on my experience. The first try did not work at all for me, because I started with a configuration that is too complex. So lets start with the second try, something simpler, and first get that sorted out before we do the complex one. Here we go: I have a SqueakSource project TraitsApplication with one package TraitsApplication which contains TraitsApplication and TraitsApplication-Tests categories (and the former contains a TraitsApplication class :-P ). Following the prompts in the browser I was able to make a configuration and save it to SqueakSource, without any real problems. So the cool thing is, I made my first Metacello config today and it even works :-) One issue is how to load my creation. I am used to a big do-it that gets the config via Gofer and contains '(Smalltalk at: #ConfigurationOfFoo) perform: #loadDefault'. Many configs do it like this, as a user I considered it a standard convention. But this turns out not to work, because no loadDefault has been defined. Perchance I remembered how I had to load MetacelloBrowser '(ConfigurationOfMetacelloBrowser project version: #stable) load' and adapting it to TraitsApplication (not forgetting version:#development) made it to work. So, the question: why is there no #loadDefault generated, nor an obvious way to specify what the default should be? (At least for simple cases of the configuration, like this one) The second issue is the UI. It is confusing at times, there are multiple issues and I list them in random order - Why can I not click on '+Configuration' when there is no configuration selected in the left hand side? - What do the unit-test icons at the left of the configs and baselines-versions-... mean? I turn them green by double-clicking on them, which also gets me an inspector on an empty collection. Huh? - The context menu is too big and confusing. It should be subdivided and ordered by group. Submenus are in order I think. - What are groups? The help menu does not enlighten me. Next up: making a config for AspectMaps (the first thing I tried and that did not work). But this is for another day ... -- Johan Fabry jfabry@dcc.uchile.cl - http://dcc.uchile.cl/~jfabry PLEIAD Lab - Computer Science Department (DCC) - University of Chile
Johan, Thanks for the excellent feedback ... You have touched on some issues that I am aware of and appreciate your suggestions ... you have also touched on some issues that I hadn't thought about ... I want to let your feedback marinate a bit ... you have provided enough detail that I think I understand where the improvements are needed, but I'm not sure I know the right way to address them ... yet. Please continue to let us know about your learning adventure:) Dale On 04/22/2011 02:36 PM, Johan Fabry wrote:
Hi all,
I'd like to give a bit of feeback on the metacello browser. First some context: I am aware of the core concepts of configuration management, but because of lack of time I never got to learn Metacello. So I thought this browser would be ideal for me, I gave it a go, and I'd like to report on my experience.
The first try did not work at all for me, because I started with a configuration that is too complex. So lets start with the second try, something simpler, and first get that sorted out before we do the complex one. Here we go: I have a SqueakSource project TraitsApplication with one package TraitsApplication which contains TraitsApplication and TraitsApplication-Tests categories (and the former contains a TraitsApplication class :-P ). Following the prompts in the browser I was able to make a configuration and save it to SqueakSource, without any real problems. So the cool thing is, I made my first Metacello config today and it even works :-)
One issue is how to load my creation. I am used to a big do-it that gets the config via Gofer and contains '(Smalltalk at: #ConfigurationOfFoo) perform: #loadDefault'. Many configs do it like this, as a user I considered it a standard convention. But this turns out not to work, because no loadDefault has been defined. Perchance I remembered how I had to load MetacelloBrowser '(ConfigurationOfMetacelloBrowser project version: #stable) load' and adapting it to TraitsApplication (not forgetting version:#development) made it to work. So, the question: why is there no #loadDefault generated, nor an obvious way to specify what the default should be? (At least for simple cases of the configuration, like this one)
The second issue is the UI. It is confusing at times, there are multiple issues and I list them in random order - Why can I not click on '+Configuration' when there is no configuration selected in the left hand side? - What do the unit-test icons at the left of the configs and baselines-versions-... mean? I turn them green by double-clicking on them, which also gets me an inspector on an empty collection. Huh? - The context menu is too big and confusing. It should be subdivided and ordered by group. Submenus are in order I think. - What are groups? The help menu does not enlighten me.
Next up: making a config for AspectMaps (the first thing I tried and that did not work). But this is for another day ... -- Johan Fabry jfabry@dcc.uchile.cl - http://dcc.uchile.cl/~jfabry PLEIAD Lab - Computer Science Department (DCC) - University of Chile
Hi Dale, my pleasure :-) In the mean time could you satisfy my curiosity, and tell me what the unit-test icons at the left of the configs and baselines-versions-... mean? (Idem for groups?) Thanks in advance :-) On 22 Apr 2011, at 16:53, Dale Henrichs wrote:
Johan,
Thanks for the excellent feedback ... You have touched on some issues that I am aware of and appreciate your suggestions ... you have also touched on some issues that I hadn't thought about ...
I want to let your feedback marinate a bit ... you have provided enough detail that I think I understand where the improvements are needed, but I'm not sure I know the right way to address them ... yet.
Please continue to let us know about your learning adventure:)
Dale
-- Johan Fabry jfabry@dcc.uchile.cl - http://dcc.uchile.cl/~jfabry PLEIAD Lab - Computer Science Department (DCC) - University of Chile
No problem ... the icons are there to indicate the validation status .. When you select the 'validate' menu item, each of the versions is validated and the icon is green if there are no issues or red/orange if there are issues. clicking on the icon will return the list of validation issues ... I put this feature in early on, because I was validating a bunch of configurations and I needed to be able to tell which versions had issues... In recent weeks I have wondered if I should drop them altogether and then I run into a validation problem and am glad that they are there:) Right now I think that if they are to stay, they should be automatically updated (in which case we could drop a couple of menu items off of the list:) Dale On 04/22/2011 03:23 PM, Johan Fabry wrote:
Hi Dale,
my pleasure :-)
In the mean time could you satisfy my curiosity, and tell me what the unit-test icons at the left of the configs and baselines-versions-... mean? (Idem for groups?)
Thanks in advance :-)
On 22 Apr 2011, at 16:53, Dale Henrichs wrote:
Johan,
Thanks for the excellent feedback ... You have touched on some issues that I am aware of and appreciate your suggestions ... you have also touched on some issues that I hadn't thought about ...
I want to let your feedback marinate a bit ... you have provided enough detail that I think I understand where the improvements are needed, but I'm not sure I know the right way to address them ... yet.
Please continue to let us know about your learning adventure:)
Dale
-- Johan Fabry jfabry@dcc.uchile.cl - http://dcc.uchile.cl/~jfabry PLEIAD Lab - Computer Science Department (DCC) - University of Chile
On 22 Apr 2011, at 16:53, Dale Henrichs wrote:
Please continue to let us know about your learning adventure:)
So here we go for part 2: Making a configuration of AspectMaps. (see http://pleiad.cl/aspectmaps if you want to know more). Sadly, this is the one that did not work out for me :-( Structure: I have a Squeaksource project AspectMaps with two packages (from the 5 present in the project): AspectMaps and Famix-Aspix that I want to include in the config. Each of these has an identically-named category. First problem: there is no obvious wildcard expression that matches both names except * I did not want to enter that at creation time to avoid a gigantic menu. So I accepted the default proposal AspectMaps as wildcard and added the AspectMaps package. Then I tried to add the Famix-Aspix package but I was unable to do this. This is strange, as at development time I should be able to define new packages and include it in the list of packages of a config. Second problem: (after starting afresh and using a * wildcard). There is a dependency between the two packages: Famix-Aspix should be loaded first. I see no way to express this. Moreover, AspectMaps also requires TraitsApplication (yesterdays config) to be loaded. Again, I see no way to express this. This really puzzles me, because for me this is one of the core reasons to have configuration management and hence should be highly visible in this browser. And this actually is my main reason to use Metacello. (Yes, I can use package dependencies in Monticello to do similar stuff, and I am actually doing this with an Aspects-All package -- My thanks to Simon! -- but I want to get away from that because it's a hassle.) Third problem: AspectMaps needs post-load actions and pre-save, pre-unload actions. I dont see how to add that using the browser. Also, apparently pre- and post-load actions are supported in Metacello, but pre-save and pre-unload not? I think it would be good idea to add those ... I'd like to repeat that I do not know Metacello, so if I misinterpreted any menu items in the browser and some of the above is indeed possible please please please correct me. I would be very happy if I could create a configuration for AspectMaps that satisfies the above criteria. In the end, this is what I started to use the browser for! Some more UI issues: - creating a new config does not automatically select it. That's confusing. - what I realized about the menus today: a right mouse button click is supposed to bring up a contextual menu, that is: the contents of the menu change depending on the selected items. This does not happen here. Hence the current menu should actually be in a menu bar. Right click should present a menu that makes sense only on the selected item. -- Johan Fabry jfabry@dcc.uchile.cl - http://dcc.uchile.cl/~jfabry PLEIAD Lab - Computer Science Department (DCC) - University of Chile
participants (2)
-
Dale Henrichs -
Johan Fabry