* Daniel Carrera (daniel.carr...@theingots.org) [090528 21:46]:
> use Whiteness:from<perl5 Acme::Bleach 1.12 cpan:DCONWAY>;
> So we have to give some thought to how the modules are going to be  
> stored in the system.

Actually, I have made some progress to implement this for Perl5. The
problem is that you need parallel trees of the same version. So naturally
you get something like:
  /usr/lib/perl5.10.1/File-Slurp-0.98/File/Slurp.pm
  /usr/lib/perl5.10.1/File-Slurp-0.99/File/Slurp.pm
And put the right File-Slurp-0.9[89] in your INC path.  Even: we can just
untar the distribution on that spot, run make, and then use the blib tree
in the INC path.

But what is the right version?  One of the problems companies often have,
is that they have a stable system with perl applications. Then, they
add a new application which requires newer versions of modules which
are already in use. By upgrading, they may break their stable code.

So, I came up with the idea to have a index file of used module versions
per script.  It defines which distributions are used for that script. The
first time you run the script, it collects all the newest distribution
versions and "freezes" that list for all next runs. The list of newest
modules, as is used in the initial run of a script, only accepts a new
version if the tests succeed and also all the tests from modules which
depend on that have been re-run successfully.
The index file also solves the performance hazard of scanning huge INC
paths, which makes runtime look-up for module locations slow.

I have started to implement above as part of CPAN::Site for Perl5, more
as feasability study. Not releasable yet. Quite straight forward with
an INC code-hook.
-- 
               MarkOv

------------------------------------------------------------------------
       Mark Overmeer MSc                                MARKOV Solutions
       m...@overmeer.net                          soluti...@overmeer.net
http://Mark.Overmeer.net                   http://solutions.overmeer.net

Reply via email to