Resolving dependencies during installation

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Resolving dependencies during installation

Andrei Stebakov
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

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Resolving dependencies during installation

Miguel Cobá
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
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

--
Miguel Cobá
http://miguel.leugim.com.mx


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Resolving dependencies during installation

Alexandre Bergel
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
>> [hidden email]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
> --
> Miguel Cobá
> http://miguel.leugim.com.mx
>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.






_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Resolving dependencies during installation

Mariano Martinez Peck
In reply to this post by Andrei Stebakov


On Wed, Jun 9, 2010 at 12:13 AM, Andrei Stebakov <[hidden email]> 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
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project