Re: CPAN testers machines that lack Module::Build
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
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
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
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
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
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
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
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
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
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
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
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
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
* 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
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
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
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
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