On Sat, Jan 28, 2006 at 11:01:06AM -0500, David Golden wrote:
> 
> You need to deal with N/A's down the chain.  E.g. I prereq a module that 
>  can't be built in an automated fashion but requires human intervention 
> or choices or external libraries.  If you don't have it and the 
> automated build to try to get it fails, that really isn't my problem -- 
> I've been clear about the dependency: "If you have version X.YZ of 
> Module ABC::DEF, then I promise to pass my tests".

With CPAN::YACSmoke, if you require a distribution that results in a NA
report, your distribution is also classed as NA. Part of this is the
Perl version issue. CPAN and CPANPLUS will not install your distribution
if a pre-requisite up's requirement of Perl. This happened a lot in the
last year as ExtUtils::MakeMaker and Module::Starter insert the authors
version of Perl when they create a new distributions. As other authors
decide to use those distributions without meaning to, they also require
that version of Perl.

This is the reason I'm looking at developing SDKs for core modules that
don't have a life outside the core distribution, to help relieve some of
those dependencies.

The issue with external libraries and C compiler is awkward to reliably
do, as different platforms put them in different places, and often name
them differently according versions. This is something I want to try
either include into CPAN::YACSmoke, or have a way for authors to create
a dependency on an Alien:: or similar distribution, which can determine
a version of the require 3rd party software, as well as whether it is
installed.

> Think about the GD modules -- if the GD library isn't installed, GD 
> won't build and anything depending on it fails.  Should that fail a 
> "clean_install"?

A report should either not be submitted, or it is classed as something
that indicates that 3rd party software was not available to complete
testing. I'm leaning towards the former.

> (Contrast that with SQLite, which installs it for you.)

That's because the license enables Matt to do that. Plus it's the kind
of self contained release that you can get away with bundling it with
the distribution. libgd is used by plenty of other apps.

> >A FAIL should ONLY mean that some package has told the smoke system that 
> >thinks it should be able to pass on your platform, and then it doesn't.
> >
> >Failures that aren't the fault of the code (platform not compatible, or 
> >whatever) should be N/A or something else.
> 
> I think better granularity would be: "FAIL" -- failed its own test 
> suite; "DEPFAIL" -- couldn't get dependencies to pass their test suites; 
> and "N/A" -- incompatible platform or Perl version or not automatically 
> chasing dependencies.

With CPAN::YACSmoke, a "DEPFAIL" is marked as "ABORTED" and no report is
sent.

> >If you want to help out, we'd love to see you in irc.perl.net #pita.
> 
> Between tuit shortages and the day job (side q: what's this whole $job 
> thing I keep seeing in people's posts/blogs), a realtime channel like 
> IRC is hard to keep up with.  Is there a mailing list or wiki or some 
> such?  (Subversion repository?)

I'd like to see a mailing list specific for developers of the smoke
systems, as currently the ideas for CPAN::YACSmoke are usually just
discussed between Robert Rothenberg and myself. If we going to improve
reporting it would help to have a wider discussion group. Whenever
Robert or I have posted here, it hasn't really reach the right audience.

I'm glad that the AUTOMATED_TESTING flag is getting picked up now, but
it would be nice to throw those ideas around more often, and getting
them refined quicker.

I'm looking forward to evaluating PITA, but it will likely have to be on
a Perl 5.8.7 Windows box, as my 5.6.1 box can't install any of the PITA
distributions on CPAN at the moment, due to the dependency issue ;)

Cheers,
Barbie.

Reply via email to