[Pharo-project] We need a UI for Metacello/Loader
Hi folks. First of all let me clarify that all this email is though for new comers. I think Metacello is a wonderful project and that's why we are adopting it in Pharo. I know Metacello has it's own UI: http://code.google.com/p/metacello/wiki/MetacelloTools I also know there is Metaceller done by Doru. But I think that the features Esteban Lorenzano implemented in GoferProjectLoader are a MUST for a new comer. You can read them here: http://www.smallworks.com.ar/en/community/GoferProjectLoader Now...he doesn't plan to do a UI for that. My question if it would be a good idea to "extend" Metaceller or Metacello-OB so that to uses GoferProjectLoader features. Not necessary for Metacello 1.0 but maybe for 1.1. I think this is important, at least for Pharo. We don't have Universe neither SqueakMap anymore. Cheers Mariano
Hi, Could you detail a bit the requirements? Cheers, Doru On 8 May 2010, at 16:53, Mariano Martinez Peck wrote:
Hi folks. First of all let me clarify that all this email is though for new comers.
I think Metacello is a wonderful project and that's why we are adopting it in Pharo. I know Metacello has it's own UI:
http://code.google.com/p/metacello/wiki/MetacelloTools
I also know there is Metaceller done by Doru.
But I think that the features Esteban Lorenzano implemented in GoferProjectLoader are a MUST for a new comer. You can read them here:
http://www.smallworks.com.ar/en/community/GoferProjectLoader
Now...he doesn't plan to do a UI for that. My question if it would be a good idea to "extend" Metaceller or Metacello-OB so that to uses GoferProjectLoader features. Not necessary for Metacello 1.0 but maybe for 1.1. I think this is important, at least for Pharo. We don't have Universe neither SqueakMap anymore.
Cheers
Mariano
-- www.tudorgirba.com "The coherence of a trip is given by the clearness of the goal."
A GUI is fine, but Esteban appears (IMHO - only he can speak for himself and his plans) to be tackling the void of a scriptable package system. By analogy to my evolving home away from Redmond, a graphical package manager is great when I want one thing; it starts to break down when somebody is telling me how to install all the packages I need to compile something from source, in which case I want a shell script with a bunch of apt-get lines. Esteban's code is probably going to be of greatest value to someone who begins to use Pharo and then is faced with the need to load many external packages into future images. One of the few things that Microsoft has gotten right over the years is COM versioning; it supports versioning by pointedly not supporting it. Want a new version? Make a new interface. That is exactly how I approach my own code. The only time I ever have to mess with it is to periodically make sure I have a loadable copy of my work, and (the big one) when it comes time to build a new image. The things that need to be done are: (1) find all code that I appear to have touched, so I won't loose work; (2) save all of my work in ONE STEP (maybe fewer<g>) (3) provide ONE THING that I load into my next image, and it loads everything else in ONE STEP, with the ability to break it down if things go wrong. I don't care about version of my code; I just need to save its current state and load that into the next image. For external packages, I hope not to care much about versions. I might want to specify a given verion of Seaside, and after that, I will typically want the latest of a given list of packages. When somebody lets me down, I will want to override that version in specific cases. My evolving solution is in the form of Migrate, which I hope to be able to simplify over time thanks to Loader. GUI tools usually make it easy to spend a long time doing a bunch of small steps, such that what could be a simple task turns into an error prone nightmare. In general, GUIs are great for tinkering, and command lines and scripting are good for automation. We can have all the GUIs we want, but please note the importance of scripting. Bill -----Original Message----- From: pharo-project-bounces@lists.gforge.inria.fr [mailto:pharo-project-bounces@lists.gforge.inria.fr] On Behalf Of Tudor Girba Sent: Saturday, May 08, 2010 10:48 AM To: metacello@googlegroups.com Cc: Pharo Development Subject: Re: [Pharo-project] [Metacello] We need a UI for Metacello/Loader Hi, Could you detail a bit the requirements? Cheers, Doru On 8 May 2010, at 16:53, Mariano Martinez Peck wrote:
Hi folks. First of all let me clarify that all this email is though for new comers.
I think Metacello is a wonderful project and that's why we are adopting it in Pharo. I know Metacello has it's own UI:
http://code.google.com/p/metacello/wiki/MetacelloTools
I also know there is Metaceller done by Doru.
But I think that the features Esteban Lorenzano implemented in GoferProjectLoader are a MUST for a new comer. You can read them here:
http://www.smallworks.com.ar/en/community/GoferProjectLoader
Now...he doesn't plan to do a UI for that. My question if it would be a good idea to "extend" Metaceller or Metacello-OB so that to uses GoferProjectLoader features. Not necessary for Metacello 1.0 but maybe for 1.1. I think this is important, at least for Pharo. We don't have Universe neither SqueakMap anymore.
Cheers
Mariano
-- www.tudorgirba.com "The coherence of a trip is given by the clearness of the goal." _______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
On Sat, May 8, 2010 at 5:48 PM, Tudor Girba <tudor.girba@gmail.com> wrote:
Hi,
Could you detail a bit the requirements?
Hi Doru. Basically, you should be able to use the GoferProjectLoader actions from a UI. In this link you can see all the actions: http://www.smallworks.com.ar/en/community/GoferProjectLoader Look where it says "Usage". I past here them just in case: list Answers a collection with all available projects on configured repositories search: Answers a collection of projects matching the string managed Answers a collection of currently managed project names availableVersionsOf:Answers a collection of available versions of project. WARNING: this command actually installs the configuration package if not present versionOf: Answer current version of project attributesOf: Answer current attributes of project. The answer is a Dictionary with following keys: Author, Timestamp, Description repository: Adds a repository to current list of repositories, this repostory works just for this instance of GoferProjectLoader repository:username:password: Same to #repository:, but also adds user identification rememberRepository: Adds a persistent repository to current list of repositories rememberRepository:username:password: Same to #rememberRepository:, but also adds user identification removeRepository: Removes a persistent repository load: load a project load:group: load latest stable version of project, just the selected groups. A group can be a string (e.g. âdefaultâ) or a collection of strings (e.g. #(âCoreâ âTestâ) load:version: load a specified version of project load:version:group: load a specified version and group(s) of project update Updates all configuration files for managed projects, and answers a list of new versions available for each project (if there is new versions) update: Update the configuration for specified project upgrade Upgrade all managed projects with new versions if any available. *Be careful, this option can lead to a unusable image* upgrade: Upgrade specified project with latest stable version if it is newer than the version installed upgrade:version: Upgrade specified project with specified version upgrade:version:group: Upgrade specified project with specified version and group(s) Of course, we can release a first version with the most important actions and then a second or third with the rest. Cheers Mariano
Cheers, Doru
On 8 May 2010, at 16:53, Mariano Martinez Peck wrote:
Hi folks. First of all let me clarify that all this email is though for
new comers.
I think Metacello is a wonderful project and that's why we are adopting it in Pharo. I know Metacello has it's own UI:
http://code.google.com/p/metacello/wiki/MetacelloTools
I also know there is Metaceller done by Doru.
But I think that the features Esteban Lorenzano implemented in GoferProjectLoader are a MUST for a new comer. You can read them here:
http://www.smallworks.com.ar/en/community/GoferProjectLoader
Now...he doesn't plan to do a UI for that. My question if it would be a good idea to "extend" Metaceller or Metacello-OB so that to uses GoferProjectLoader features. Not necessary for Metacello 1.0 but maybe for 1.1. I think this is important, at least for Pharo. We don't have Universe neither SqueakMap anymore.
Cheers
Mariano
-- www.tudorgirba.com
"The coherence of a trip is given by the clearness of the goal."
I don't think a graphical user interface is what is important now. If you look at other package management systems, APT or RubyGems, they work very well just from the command line. With GoferProjectLoader we basically have this command line interface. What is much more important is a process. We need universes for the different Pharo versions and for the different maturity/compatibility states of packages (e.g., unstable, testing, and stable). We need somebody who sets up a process and keeps it running, and we also need package maintainers. We can list packages on a website (like packages.debian.org). This should make it possible for anybody to find the desired package and install it. Of course, a GUI would be nice to have. But without a high-quality package repository, it will be only of little use. I don't have much time left at the moment, but I can assist somebody who wants to get such a system up and running. I believe its going to be a very important step for Pharo. Cheers, Adrian On May 8, 2010, at 18:54 , Mariano Martinez Peck wrote:
On Sat, May 8, 2010 at 5:48 PM, Tudor Girba <tudor.girba@gmail.com> wrote:
Hi,
Could you detail a bit the requirements?
Hi Doru. Basically, you should be able to use the GoferProjectLoader actions from a UI. In this link you can see all the actions:
http://www.smallworks.com.ar/en/community/GoferProjectLoader
Look where it says "Usage". I past here them just in case:
list Answers a collection with all available projects on configured repositories search: Answers a collection of projects matching the string managed Answers a collection of currently managed project names availableVersionsOf:Answers a collection of available versions of project. WARNING: this command actually installs the configuration package if not present versionOf: Answer current version of project attributesOf: Answer current attributes of project. The answer is a Dictionary with following keys: Author, Timestamp, Description repository: Adds a repository to current list of repositories, this repostory works just for this instance of GoferProjectLoader repository:username:password: Same to #repository:, but also adds user identification rememberRepository: Adds a persistent repository to current list of repositories rememberRepository:username:password: Same to #rememberRepository:, but also adds user identification removeRepository: Removes a persistent repository load: load a project load:group: load latest stable version of project, just the selected groups. A group can be a string (e.g. âdefaultâ) or a collection of strings (e.g. #(âCoreâ âTestâ) load:version: load a specified version of project load:version:group: load a specified version and group(s) of project update Updates all configuration files for managed projects, and answers a list of new versions available for each project (if there is new versions) update: Update the configuration for specified project upgrade Upgrade all managed projects with new versions if any available. *Be careful, this option can lead to a unusable image* upgrade: Upgrade specified project with latest stable version if it is newer than the version installed upgrade:version: Upgrade specified project with specified version upgrade:version:group: Upgrade specified project with specified version and group(s)
Of course, we can release a first version with the most important actions and then a second or third with the rest.
Cheers
Mariano
Cheers, Doru
On 8 May 2010, at 16:53, Mariano Martinez Peck wrote:
Hi folks. First of all let me clarify that all this email is though for
new comers.
I think Metacello is a wonderful project and that's why we are adopting it in Pharo. I know Metacello has it's own UI:
http://code.google.com/p/metacello/wiki/MetacelloTools
I also know there is Metaceller done by Doru.
But I think that the features Esteban Lorenzano implemented in GoferProjectLoader are a MUST for a new comer. You can read them here:
http://www.smallworks.com.ar/en/community/GoferProjectLoader
Now...he doesn't plan to do a UI for that. My question if it would be a good idea to "extend" Metaceller or Metacello-OB so that to uses GoferProjectLoader features. Not necessary for Metacello 1.0 but maybe for 1.1. I think this is important, at least for Pharo. We don't have Universe neither SqueakMap anymore.
Cheers
Mariano
-- www.tudorgirba.com
"The coherence of a trip is given by the clearness of the goal."
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
+1
I don't think a graphical user interface is what is important now. If you look at other package management systems, APT or RubyGems, they work very well just from the command line. With GoferProjectLoader we basically have this command line interface.
What is much more important is a process. We need universes for the different Pharo versions and for the different maturity/compatibility states of packages (e.g., unstable, testing, and stable). We need somebody who sets up a process and keeps it running, and we also need package maintainers.
We can list packages on a website (like packages.debian.org). This should make it possible for anybody to find the desired package and install it.
Of course, a GUI would be nice to have. But without a high-quality package repository, it will be only of little use.
I don't have much time left at the moment, but I can assist somebody who wants to get such a system up and running. I believe its going to be a very important step for Pharo.
I really like that estaban used Gofer so like that we have only one entry point! Excellent! Stef On May 8, 2010, at 4:53 PM, Mariano Martinez Peck wrote:
Hi folks. First of all let me clarify that all this email is though for new comers.
I think Metacello is a wonderful project and that's why we are adopting it in Pharo. I know Metacello has it's own UI:
http://code.google.com/p/metacello/wiki/MetacelloTools
I also know there is Metaceller done by Doru.
But I think that the features Esteban Lorenzano implemented in GoferProjectLoader are a MUST for a new comer. You can read them here:
http://www.smallworks.com.ar/en/community/GoferProjectLoader
Now...he doesn't plan to do a UI for that. My question if it would be a good idea to "extend" Metaceller or Metacello-OB so that to uses GoferProjectLoader features. Not necessary for Metacello 1.0 but maybe for 1.1. I think this is important, at least for Pharo. We don't have Universe neither SqueakMap anymore.
Cheers
Mariano _______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
participants (5)
-
Adrian Lienhard -
Mariano Martinez Peck -
Schwab,Wilhelm K -
Stéphane Ducasse -
Tudor Girba