# from John Peacock
# on Saturday 22 July 2006 05:59 am:

>The problem is one of communication and insufficient testing

Hmm.  Is there some way that we could test new releases in several 
combinations of platform/perl-version/installed-modules environments?

Seems like somebody should build one of those :-)

>he declined because of the coordination issue (whether it
>was put into /inc or /lib) 

A couple of things from my experiment.  I'm open to suggestions on the 
names (and whether dep is needed at all is a matter of whether you want 
to assert that we always use the bundled version.pm to bootstrap 
(regardless of whether one is installed.))

This could essentially go in inc/.  It is only for bootstrapping.
  dep
  |-- version
  |   `-- vpp.pm
  `-- version.pm

And after we've loaded our bootstrapping code, we keep it in @INC while 
we build our required dependencies.  Then we stick them in @INC while 
we test.  (And of course we still need to install them -- I haven't 
done that bit.)

These are just drops of the unpacked tarballs straight off of CPAN.

  dependencies/
  |-- ExtUtils-CBuilder-0.18
  |   |-- Build.PL
  |   ...
  |   |-- lib
  |   ...
  `-- version
      |-- Build.PL
      ...
      |-- lib
      ...

I was toying with naming those.  I think it's best to leave the "-*" 
version number on the directory and discover it (or have whatever 
fetches them write it somewhere.)

>of having someone else's code, with a 
>different release cycle, inside his distribution.  

In the general case, all of the optional and required dependencies just 
go in "dependencies/" -- roughly:  "curl $cpan_filename | tar -xz".  
The only place this gets tricky is when you want to bundle something 
that was just released and hasn't gotten to your mirror, but otherwise 
it should be as simple as:

  ./Build update_bundles

>I am fully prepared to maintain a parallel code inside M::B
>(since the code is already modular enough to support that).

Wouldn't it be easier to write Ken a script that copies those two files 
out of (glob("dependencies/version*"))[-1] into dep/ or inc/?

--Eric
-- 
"Everything should be made as simple as possible, but no simpler."
--Albert Einstein
---------------------------------------------------
    http://scratchcomputing.com
---------------------------------------------------

Reply via email to