Re: CPAN testers machines that lack Module::Build

2007-03-15 Thread Chris Dolan

On Mar 15, 2007, at 8:54 PM, Adam Kennedy wrote:


Chris Dolan wrote:
M::B does not require make nor a C compiler to install or run,  
once you have all of its dependencies installed.  That means that  
in theory it can be installed on a Mac that lacks the Developer  
Tools or on Windows with just Perl, for example.


Again, neither does M:I or EU:MM (at least for the C compiler).

The one difference here is make.


Agreed.  My mention of the C compiler was a red herring.  Sorry about  
that.  :-)  What I really should have pointed out was that M::B can  
build XS and C modules even without make thanks largely to  
ExtUtils::CBuilder and ExtUtils::ParseXS.  The other point I failed  
to make was that M::B builds itself without resorting to a Makefile,  
which I've always found satisfying.


If you want to install modules from a source repository, you need  
the ability to work with source. I'd be quite (and pleasantly)  
surprised if the entire dependency chain of a typical catalyst  
application didn't involve needing a C compiler at some point.


catalyst_digression
It's actually not THAT bad.  My Catalyst app currently needs Perl  
5.8.6+ and the following non-portable/non-PARable dependencies:

  install PAR
  install Params::Validate
  install Date::Calc
  install DateTime
  install Encode  (= 2.10)
  install Template::Stash::XS
  install DBD::mysql
  install Test::Exception
  install Config::Any
  install HTML::Parser
  install Time::Piece

I know this because I develop on my Mac and deploy on Mac, FreeBSD  
and Linux via a single .par file.  The list above are what I install  
by hand on each server and omit from the PAR bundle.

/catalyst_digression

In any case, this isn't an attack on Module::Build, just a  
suggestion to refer correctly to the deficiencies in other things.  
The known deficiencies in Module::Install should be plenty to flame  
about, without resorting to adding more. :)


I certainly did not mean to dismiss M::I.  My goal was to reinforce  
the uniqueness of the M::B approach among the various CPAN toolchain  
elements.  M::I is a clever evolutionary step from EU::MM  
intermingled with a self-bootstrapping solution to the agony of  
installing prereqs.


Chris

--
Chris Dolan, Equilibrious LLC, http://equilibrious.net/
Public key: http://chrisdolan.net/public.key
vCard: http://chrisdolan.net/ChrisDolan.vcf





Re: CPAN testers machines that lack Module::Build

2007-03-14 Thread Sébastien Aperghis-Tramoni

Ken Williams wrote:


On Mar 13, 2007, at 8:38 PM, Sébastien Aperghis-Tramoni wrote:


Jonathan Rockway wrote:

Why don't y'all just use Module::Install?  It handles  
build_requires, AND you
can bundle modules with your dist, in case dependencies worry  
you.  Problems

solved.


OTOH, Module::Install (and Module::Build as well to be honest)  
doesn't work on old Perl.
Some people may care about this and thus not use M::I, others may  
not.


Module::Build works as far back as perl 5.005_03 - before that and  
we'd be pulling our hair out more than we already are.


That said, testing on old perls doesn't always happen as often as  
we'd like, so sometimes it breaks and nobody notices.  But  
generally it should work.


I now remember that part of the problem were some modules  
Module::Build use, which are now compatible with Perl 5.004, so I'll  
test again Module::Build with the old Perl I have.


--
Sébastien Aperghis-Tramoni

Close the world, txEn eht nepO.




Re: CPAN testers machines that lack Module::Build

2007-03-14 Thread Smylers
Jonathan Rockway writes:

 Why don't y'all just use Module::Install?

As has been mentioned before on this list, because it involves bundling
an installer with your module.

So if the installer changes (to fix a bug that affects the ability of
(some) end users to install your module), you have to redo your
distribution.

Which for some people is fine, and, on balance, their prefered way of
working.  But it doesn't suit everybody.

Smylers


Re: CPAN testers machines that lack Module::Build

2007-03-14 Thread Johan Vromans
Jonathan Rockway [EMAIL PROTECTED] writes:

 Why don't y'all just use Module::Install?

Because it doesn't perform a mere install, as the name suggests. It
builds, meaning it requires (and uses) a build environment -- and
scares away customers that do not want to have a build environment on
production systems.

-- Johan


Re: CPAN testers machines that lack Module::Build

2007-03-14 Thread Adam Kennedy

Johan Vromans wrote:

Jonathan Rockway [EMAIL PROTECTED] writes:


Why don't y'all just use Module::Install?


Because it doesn't perform a mere install, as the name suggests. It
builds, meaning it requires (and uses) a build environment -- and
scares away customers that do not want to have a build environment on
production systems.


Then again, so does EU:MM and M:B, so I'm not sure why that's a 
counter-argument...


Adam K


Re: CPAN testers machines that lack Module::Build

2007-03-13 Thread Paul LeoNerd Evans
On Sun, Mar 11, 2007 at 07:43:38AM -0500, David Golden wrote:
 That said, i agree in the meantime that providing a traditional
 Makefile.PL along with a Build.PL is usually a wise approach, as Chris
 suggested.

But to my knowledge, I can't do that, because I have some
'build_requires' lines. I previously had a long discussion about using
Test::Exception, my hesiation centring around the problem that it isn't
a core module, so how to guarantee testing against it. The suggestion
was to use M::B and 'build_require' it. So I don't really want to back
out of that now

-- 
Paul LeoNerd Evans

[EMAIL PROTECTED]
ICQ# 4135350   |  Registered Linux# 179460
http://www.leonerd.org.uk/


Re: CPAN testers machines that lack Module::Build

2007-03-13 Thread Paul LeoNerd Evans
On Tue, Mar 13, 2007 at 03:19:09PM -0400, David Golden wrote:
 I think if you use M::B and have it create a traditional Makefile.PL,
 it will just promote all those build_requires to full prereqs.  So
 people that have M::B will get the build_requires behavior and those
 with only EU::MM will get a big prerequisite list.  In my view,
 working with lots of dependencies is better than not working at all.

Yes, but doesn't that produce end results that depend on too much..?
Locally I build these CPAN dists into real debian packages with
dh-make-perl, which knows how to translate build and runtime
dependencies into their debian equivalents. If that all got mangled into
runtime, surely that would upset that logic?

 In the META.yml.  I can't say for sure that the different tools will
 pick it up at the right time or not, actually.  That's changed a bit
 over time.

Which I suppose is built by my own local Build.PL, so that's probably a
good start...

-- 
Paul LeoNerd Evans

[EMAIL PROTECTED]
ICQ# 4135350   |  Registered Linux# 179460
http://www.leonerd.org.uk/


Re: CPAN testers machines that lack Module::Build

2007-03-13 Thread David Golden

On 3/13/07, Paul LeoNerd Evans [EMAIL PROTECTED] wrote:

Yes, but doesn't that produce end results that depend on too much..?
Locally I build these CPAN dists into real debian packages with
dh-make-perl, which knows how to translate build and runtime
dependencies into their debian equivalents. If that all got mangled into
runtime, surely that would upset that logic?


I think it depends if dh-make-perl uses Module::Build and/or the
META.yml file for determining dependencies.

Example:  You write your Build.PL and specify build_requires and
requires.  You let Module::Build generate your META.yml and
Makefile.PL.  (Build distmeta).

Users or tools that use M::B or META.yml will see the difference
between your requires and build_requires.  Ones that don't will fall
back to EU::MM and just treat everything as a dependency.

Try it and see what happens.  Just add:

 create_makefile_pl  = 'traditional'

to your Build.PL, run perl Build.PL; Build distmeta.  Then try
running your dh-make-perl and see what dependencies are identified.

David


Re: CPAN testers machines that lack Module::Build

2007-03-13 Thread Smylers
Paul LeoNerd Evans writes:

 On Tue, Mar 13, 2007 at 03:19:09PM -0400, David Golden wrote:
 
  I think if you use M::B and have it create a traditional Makefile.PL,
  it will just promote all those build_requires to full prereqs.  So
  people that have M::B will get the build_requires behavior and those
  with only EU::MM will get a big prerequisite list.  In my view,
  working with lots of dependencies is better than not working at all.
 
 Yes, but doesn't that produce end results that depend on too much..?

Yes.  But only for people using the Makefile.PL (who currently can't
install your module at all, it seems).  Those using Module::Build still
get the Build.PL, so shouldn't be any worse off than they are at the
moment.

Smylers


Re: CPAN testers machines that lack Module::Build

2007-03-13 Thread Jonathan Rockway
On Tuesday 13 March 2007 14:23, Paul LeoNerd Evans wrote:
 On Sun, Mar 11, 2007 at 07:43:38AM -0500, David Golden wrote:
  That said, i agree in the meantime that providing a traditional
  Makefile.PL along with a Build.PL is usually a wise approach, as Chris
  suggested.

 But to my knowledge, I can't do that, because I have some
 'build_requires' lines. I previously had a long discussion about using
 Test::Exception, my hesiation centring around the problem that it isn't
 a core module, so how to guarantee testing against it. The suggestion
 was to use M::B and 'build_require' it. So I don't really want to back
 out of that now

Why don't y'all just use Module::Install?  It handles build_requires, AND you 
can bundle modules with your dist, in case dependencies worry you.  Problems 
solved.

Regards,
Jonathan Rockway

-- 
package JAPH;use Catalyst qw/-Debug/;($;=JAPH)-config(name = do {
$,.=reverse qw[Jonathan tsu rehton lre rekca Rockway][$_].[split //,
;$;]-[$_].q; ;for 1..4;$,=~s;^.;;;$,});$;-setup;


pgpWwlekGGMZt.pgp
Description: PGP signature


Re: CPAN testers machines that lack Module::Build

2007-03-13 Thread Chris Dolan

On Mar 13, 2007, at 7:41 PM, Jonathan Rockway wrote:

Why don't y'all just use Module::Install?  It handles  
build_requires, AND you
can bundle modules with your dist, in case dependencies worry you.   
Problems

solved.

Regards,
Jonathan Rockway


Because M::I still uses make, thereby failing at one of  
Module::Build's primary goals: to minimize non-Perl dependencies and  
achieve greater portability.


Chris

--
Chris Dolan, Equilibrious LLC, http://equilibrious.net/
Public key: http://chrisdolan.net/public.key
vCard: http://chrisdolan.net/ChrisDolan.vcf





Re: CPAN testers machines that lack Module::Build

2007-03-13 Thread Sébastien Aperghis-Tramoni

Jonathan Rockway wrote:

Why don't y'all just use Module::Install?  It handles  
build_requires, AND you
can bundle modules with your dist, in case dependencies worry you.   
Problems

solved.


OTOH, Module::Install (and Module::Build as well to be honest)  
doesn't work on old Perl.

Some people may care about this and thus not use M::I, others may not.

--
Sébastien Aperghis-Tramoni

Close the world, txEn eht nepO.




Re: CPAN testers machines that lack Module::Build

2007-03-13 Thread Ken Williams


On Mar 13, 2007, at 8:38 PM, Sébastien Aperghis-Tramoni wrote:


Jonathan Rockway wrote:

Why don't y'all just use Module::Install?  It handles  
build_requires, AND you
can bundle modules with your dist, in case dependencies worry  
you.  Problems

solved.


OTOH, Module::Install (and Module::Build as well to be honest)  
doesn't work on old Perl.

Some people may care about this and thus not use M::I, others may not.


Module::Build works as far back as perl 5.005_03 - before that and  
we'd be pulling our hair out more than we already are.


That said, testing on old perls doesn't always happen as often as  
we'd like, so sometimes it breaks and nobody notices.  But generally  
it should work.


 -Ken



Re: CPAN testers machines that lack Module::Build

2007-03-11 Thread A. Pagaltzis
* Chris Dolan [EMAIL PROTECTED] [2007-03-11 06:30]:
 create_makefile_pl = 'traditional'

++

Regards,
-- 
Aristotle Pagaltzis // http://plasmasturm.org/


Re: CPAN testers machines that lack Module::Build

2007-03-11 Thread David Golden

On 3/11/07, Adam Kennedy [EMAIL PROTECTED] wrote:

This is a known bug (a type of circular dependency) in Module::Build
that they can't fix.


No, that's a different bug.  (Though it relates in that it makes
workarounds harder.)

This bug is the result of CPANPLUS trying to be clever and falling
back to generating a Makefile.PL from a Build.PL.  Add to that the
dysfunctional CPANPLUS::Dist::Build fork and the fact that many
CPANPLUS-based smokers don't pre-install those additonal modules.

There's plenty of blame to strew about here.

That said, i agree in the meantime that providing a traditional
Makefile.PL along with a Build.PL is usually a wise approach, as Chris
suggested.

David


Re: CPAN testers machines that lack Module::Build

2007-03-11 Thread Chris Dolan

On Mar 11, 2007, at 7:43 AM, David Golden wrote:


That said, i agree in the meantime that providing a traditional
Makefile.PL along with a Build.PL is usually a wise approach, as Chris
suggested.


Just to expand these thoughts, every one of the modules I maintain is  
Module::Build-based and I've never had a smoke report that failed due  
to a Module::Build problem.  And, yes, I'm a CPANPLUS user.  If your  
Build.PL is fairly simple, create_makefile_pl = 'traditional' is a  
very reliable fallback.


Both CPANPLUS and Module::Build are great ideas which have been  
bitten by compatibility problems.  They are both trying to remove  
external dependencies (make, primarily) from the CPAN build process  
to help make that more portable and programmable.  CPANPLUS handles  
Makefile.PL well and CPAN.pm handles Build.PL well, but the  
intersection of the two newer technologies, CPANPLUS and Build.PL has  
been more tumultuous.


Please, please don't give up on either CPANPLUS and M::B!  Despite  
some hiccups, these are important technologies that have driven the  
CPAN infrastructure forward.


Chris

--
Chris Dolan, Equilibrious LLC, http://equilibrious.net/
Public key: http://chrisdolan.net/public.key
vCard: http://chrisdolan.net/ChrisDolan.vcf





CPAN testers machines that lack Module::Build

2007-03-10 Thread Paul LeoNerd Evans
I am getting lots of test reports from machines that don't have
Module::Build installed, and so they all ultimately do something like
this:

  [ERROR] [Sun Mar 11 00:31:43 2007] This module requires 'Module::Build'
  and 'CPANPLUS::Dist::Build' to be installed, but you don't have it! Will fall 
back to 
  'CPANPLUS::Dist::MM', but might not be able to install!
  [MSG] [Sun Mar 11 00:31:43 2007] No 'Makefile.PL' found - attempting to 
generate one

This then leads them on to massive failures such as:

  Failed 5/5 test scripts. 47/47 subtests failed.

These aren't very useful. If we were to discount these from my
cpantesters page, I suddenly lose quite a lot of red, and the actual
failures become a lot easier to see.

Is there anything I as the module's author, can do about these? Short of
getting CPANPLUS to not bother sending a report if it tried to hack up a
Makefile.PL anyway and failed it, my current best plan is just to ignore
them. Which doesn't seem very helpful, and makes it hard for me to see
what the genuine bugs are.

-- 
Paul LeoNerd Evans

[EMAIL PROTECTED]
ICQ# 4135350   |  Registered Linux# 179460
http://www.leonerd.org.uk/


Re: CPAN testers machines that lack Module::Build

2007-03-10 Thread Chris Dolan

On Mar 10, 2007, at 10:04 PM, David Golden wrote:


On 3/10/07, Paul LeoNerd Evans [EMAIL PROTECTED] wrote:

I am getting lots of test reports from machines that don't have
Module::Build installed, and so they all ultimately do something like

Is there anything I as the module's author, can do about these?  
Short of


(a) Use only Makefile.PL

(b) Include Module::Build explicitly as a prerequisite of your module

(c) Ignore test reports from CPANPLUS


(d) create_makefile_pl = 'traditional'

Chris

--
Chris Dolan, Equilibrious LLC, http://equilibrious.net/
Public key: http://chrisdolan.net/public.key
vCard: http://chrisdolan.net/ChrisDolan.vcf