Robert Feldt <feldt / ce.chalmers.se> writes:

> * Each extension has a version number and a facility for checking the
> compatibility of different versions. (For example this could be
> implemented in a simple class "VersionCompatibility" that would take a
> version string, such as '1.2', and return the latest version of the
> extension that is compatible with the required version, for
> example '1.4'.

This is concerned with backwards compatibility. Personally, I'd prefer 
an understanding that RAA modules should always be compatible with
prior versions across minor revision upgrades.

However, versioning is still a great idea for forwards compatibility:
this module needs Net::HTTP version 1.4 or later.

> * If Ruby cannot find a compatible extension locally it would go to RAA
> (Ruby Application Archive) or other CPAN-like repository and query
> it for the latest compatible version. It would then download and
> install the package.

On most people's Unix boxes, this would require that the applications
should be run as root, which is not really an option. Even when this
isn't the case, this could lead to all sorts of issues.

However, it _would_ be nice to have a system where I could say:

   cran install Net::HTTP

or

   cran install Net::HTTP -v 1.3

Even better if this automatically handled dependencies.

The trick here would be allowing multiple versions of the same module
on a single system, so I could be running v1.3 on some old software
and 2.3 on some later stuff.


Regards


Dave