[Pharo-project] Resolving dependencies during installation
I've come across this a few times using Pharo: When I try to install a new package (either through HTTP repository or Gofer) sometimes it complains about a dependency and you have a option to proceed or abandon. I guess proceeding could be dangerous in this case since you never know when this missing dependency will backfire. What's the general rule of how to look for a package with the missing class(es)? Let's say I was trying to install Pastell (XPath library) via repository and during installation I had the message: This package depends on the following classes: XMLNodeWithElements You must resolve these dependencies before you will be able to load these definitions: XMLNodeWithElements>>/ XMLNodeWithElements>>// XMLNodeWithElements>>child: XMLNodeWithElements>>children XMLNodeWithElements>>descendant: XMLNodeWithElements>>doesNotUnderstand: Where do I go look for a package with this class implemented? Shouldn't the package being installed check for its dependencies and install them prior to its own installation (or at least give you a hint where this missing class belongs)? Thank you, Andrei
El mar, 08-06-2010 a las 18:13 -0400, Andrei Stebakov escribió:
I've come across this a few times using Pharo: When I try to install a new package (either through HTTP repository or Gofer) sometimes it complains about a dependency and you have a option to proceed or abandon. I guess proceeding could be dangerous in this case since you never know when this missing dependency will backfire. What's the general rule of how to look for a package with the missing class(es)? Let's say I was trying to install Pastell (XPath library) via repository and during installation I had the message:
This package depends on the following classes: XMLNodeWithElements You must resolve these dependencies before you will be able to load these definitions: XMLNodeWithElements>>/ XMLNodeWithElements>>// XMLNodeWithElements>>child: XMLNodeWithElements>>children XMLNodeWithElements>>descendant: XMLNodeWithElements>>doesNotUnderstand:
Where do I go look for a package with this class implemented? Shouldn't the package being installed check for its dependencies and install them prior to its own installation (or at least give you a hint where this missing class belongs)?
That's what Metacello is fixing for the end users. The maintainer of a package knows or can learn the dependencies needed for a given package to work in a given Pharo release. So he/she build a ConfigurationOfXXX metacello configuration stating those dependencies. Then he announces the ConfigurationOfXXX in the list and add them to the metacello repository on squeaksource.com/MetacelloRepository for the world to use.
From that point on, the users use the ConfigurationOfXXX to install a package and the package knows its dependencies and install them before the package they want.
Cheers
Thank you, Andrei
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
-- Miguel Cobá http://miguel.leugim.com.mx
Exact. There should be a ConfigurationOfPastell in MonticelloRepository. I haven't look at it recently, but I imagine that it should load XMLSupport Alexandre On 8 Jun 2010, at 20:15, Miguel Enrique Cobá MartÃnez wrote:
El mar, 08-06-2010 a las 18:13 -0400, Andrei Stebakov escribió:
I've come across this a few times using Pharo: When I try to install a new package (either through HTTP repository or Gofer) sometimes it complains about a dependency and you have a option to proceed or abandon. I guess proceeding could be dangerous in this case since you never know when this missing dependency will backfire. What's the general rule of how to look for a package with the missing class(es)? Let's say I was trying to install Pastell (XPath library) via repository and during installation I had the message:
This package depends on the following classes: XMLNodeWithElements You must resolve these dependencies before you will be able to load these definitions: XMLNodeWithElements>>/ XMLNodeWithElements>>// XMLNodeWithElements>>child: XMLNodeWithElements>>children XMLNodeWithElements>>descendant: XMLNodeWithElements>>doesNotUnderstand:
Where do I go look for a package with this class implemented? Shouldn't the package being installed check for its dependencies and install them prior to its own installation (or at least give you a hint where this missing class belongs)?
That's what Metacello is fixing for the end users. The maintainer of a package knows or can learn the dependencies needed for a given package to work in a given Pharo release. So he/she build a ConfigurationOfXXX metacello configuration stating those dependencies. Then he announces the ConfigurationOfXXX in the list and add them to the metacello repository on squeaksource.com/MetacelloRepository for the world to use.
From that point on, the users use the ConfigurationOfXXX to install a package and the package knows its dependencies and install them before the package they want.
Cheers
Thank you, Andrei
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
-- Miguel Cobá http://miguel.leugim.com.mx
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
-- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
On Wed, Jun 9, 2010 at 12:13 AM, Andrei Stebakov <lispercat@gmail.com>wrote:
I've come across this a few times using Pharo: When I try to install a new package (either through HTTP repository or Gofer) sometimes it complains about a dependency and you have a option to proceed or abandon. I guess proceeding could be dangerous in this case since you never know when this missing dependency will backfire.
exactly.
What's the general rule of how to look for a package with the missing class(es)? Let's say I was trying to install Pastell (XPath library) via repository and during installation I had the message:
This package depends on the following classes: XMLNodeWithElements You must resolve these dependencies before you will be able to load these definitions: XMLNodeWithElements>>/ XMLNodeWithElements>>// XMLNodeWithElements>>child: XMLNodeWithElements>>children XMLNodeWithElements>>descendant: XMLNodeWithElements>>doesNotUnderstand:
Where do I go look for a package with this class implemented?
Several times I had this problem but I don't know to solve it :(
Shouldn't the package being installed check for its dependencies and install them prior to its own installation (or at least give you a hint where this missing class belongs)?
As they already answered, that's the intention of Metacello: http://code.google.com/p/metacello/ There is a tutorial you can follow. Cheers Mariano
Thank you, Andrei
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
participants (4)
-
Alexandre Bergel -
Andrei Stebakov -
Mariano Martinez Peck -
Miguel Enrique Cobá MartÃnez