On 07 April 2005 23:02 Ken Williams wrote:

> On Apr 6, 2005, at 7:13 AM, Robert Rothenberg wrote:
> 
>> Is there a way tests to determine that a module cannot be installed
>> on a platform so that CPANPLUS or CPAN::YACSmoke can issue an "NA"
>> (Not Applicable) report? 
>> 
>> CPANPLUS relies on module names (e.g. "Solaris::" or "Win32::") but
>> that is not always appropriate in cases where a module runs on many
>> platforms  except some that do not have the capability.
> 
> In those cases, who's to say that that platform won't get such
> capabilities in the future?  If the module author has to list the
> platforms on which their module won't run, it'll get out of date, and
> the list will likely be incomplete to start out with.

This is something that Robert and I have discussed. It is rather difficult to
decide how to approach this. 

However, thinking about what *might* happen in the future for a future platform,
is not relavent to what we were thinking. There real problems now, such as
alarm(), symlinks and fork() on Win32, that create problems when distributions
use them. There are some distributions that only require them for testing, which
to my mind currently means bogus FAIL reports are generated. If the distribution
author is able to indicate which platforms they are willing to support, then it
could mean a NA report is generated, until such a time as the author is willing
to support that platform.

The reasoning behind all this, is that several authors have raised the subject
of getting FAIL reports for platforms they are not willing or unable to support.
We were trying to think of an adequate way of avoiding sending them reports
which they are not interested in currently. I know it could easily be a matter
of pressing the delete key, but seeing as it has been a wishlist item that keeps
getting mentioned, Robert and I figured it might be something we can address.

>> There's also a separate issue of whether "NA" reports should be
>> issued if a library is missing.  (Usually these come out as
>> failures.) 
> 
> People looking at failure reports should be able to tell whether the
> failure occurred because of a missing prerequisite (of which libraries
> are one variety) or because of runtime building/testing
> problems.  The
> correct way to solve this would be to have a mechanism for declaring
> system library dependencies, then check before smoke-testing whether
> those dependencies are satisfied.

This is also something I've been thinking about for about a year. My only
conclusion is that an addition test grade be created, which implies that the
distribution could not be completed, due to dependancies outside the realm of
the distribution or the install mechanism. My patch to CPANPLUS was to not
produce a report, but I do think it could be something users may wish to know 
about.

> Unfortunately that's a large problem space, and it has eluded attempts
> at cross-platform solutions so far.  It would be really nice
> if it were
> solved, though.

You're right it is a large problem space. There have been a few attempts to
figure it out, but as different platforms have different methods of recording
library information, it isn't going to be a quick fix.


On 07 April 2005 23:12 Michael G Schwern wrote:

> On Thu, Apr 07, 2005 at 05:01:34PM -0500, Ken Williams wrote:
>>> Is there a way tests to determine that a module cannot be installed
>>> on a platform so that CPANPLUS or CPAN::YACSmoke can issue an "NA"
>>> (Not Applicable) report?
> 
> AFAIK NA reports are issued when a Makefile.PL dies due to a "require
> 5.00X" failing.  That's the only way I've seen anyway.

Not true. The current CPANPLUS now will produce a NA report if the perl version
is lower than that specified by the distribution/module. This is checked for as
part of the prepare, build and test stages, not just the prepare stage.

Previously, the only time a NA report was produced was when one of the 3 stages
failed, and the top level namespace matched a platform name that wasn't the
current platform. This was why a while ago there were some NA reports for
distributions in the 'MAC::' namespace. There was a case insensitive test that
thought it was in the 'Mac::' namespace.

Hope that clarifies a few points.

Cheers,
Barbie.

-- 
Barbie (@missbarbell.co.uk) | Birmingham Perl Mongers user group |
http://birmingham.pm.org/

---------------------------------------------------
This mail sent through http://www.easynetdial.co.uk

Reply via email to