On Tue, Jan 08, 2008 at 12:20:51PM -0500, David Golden wrote:
> On Jan 8, 2008 11:08 AM, Barbie <[EMAIL PROTECTED]> wrote:
> > Providing the detection matches correctly, such that a distribution
> > exclusion doesn't match an author, e.g. "MAC" for "Net-MAC" should not
> > be confused with the PAUSE ID "MAC", then that's fine.
> >
> > I've currently implemented it as '^' as the first character always
> > matches the AUTHOR/DIST pattern, otherwise it matches the distribution
> > only. The latter is for backwards compatibility.
> 
> I have mixed feeling about this.  On the one hand, it's nice to DWIM.
> On the other hand, it's a regex so people should be free to use
> whatever they want.  E.g.
> 
> # matches AUTHOR
> ^MAC
> # matches dists with MAC
> /.*MAC

Hadn't thought about that one, will include that.

> # matches developer releases (hopefully)
> \d_\d
> # matches ANDYA's Test::Harness, but not other author's versions
> ^ANDYA/Test-Harness

All the others will work as I've currently implemented it.

> > It might seem a bit more heavyweight, but YACSmoke can provide the bulk
> > testing framework, that CPAN-Reporter doesn't currently have access to.
> 
> How much bulk is there?

It's mostly to handle exclusions, avoid duplication, prempt NA
submissions (a NA prereq will submit a NA in place of a FAIL for the
current dist), allow retesting previously halted (internal ABORT grade)
dists, keeps a record of test grades (mostly to avoid duplication, but
has other uses), starts from the latest release and stops when a
declared max has been reached for that dist (eg if 5 releases have been
uploaded, can specify to only test the last 3), among several other
configurations.

In most cases it really only just look heavyweight.

> CPAN.pm has smoke() already to poll and test
> the recent list from CPAN.

YACSmoke uses the same, but also has the ability to read from it's own
DB, from a plain text list, the NNTP server and from an Outlook mailbox
(which is how I use it). The plugin framework means you could
potentially extract from any source you wished to.

> I wasn't thinking I need much more than
> some shim code to grab a list of stuff to test (search.cpan's recent
> feed or else the packages list that CPAN downloads) and iterate
> through it with:
> 
>     CPAN::Shell->test("AUTHOR/Dist-Name-0.01.tar.gz")

That's essentially what I was planning for the bridge between YACSmoke
and CPAN/CPAN-Reporter. The only additional bit of code required would
be to feed back the grade to YACSmoke, which I haven't figured out yet.

If you have any suggestions for feeding back the grade, let me know.
Also (perhaps a question for Andreas), how do I get/set configuration
values without commiting, so that the tester can temporary amend
configuration details without affecting their regular configuration?

> CPAN::Reporter does the rest.  I would add a check against
> CPAN::Reporter::History to skip if it already has a test result --
> making that a public API is a long-standing Todo item for
> CPAN::Reporter::History anyway.

Is it possible to grab information from this programmatically while it's
running? I thinking specifically of the grade.

Also with your history file do you update the history if a second run of
a dist passes where it previous failed or didn't complete due to prereq
failures?

>From your perspective I doubt you will need YACsmoke, as if you're only
planning on accessing the RECENT file, then all the extras YACSmoke can
do won't have much worth for you. For someone who wants to recheck old
dists or retry failing dists when a prereq passes, etc, then it's worth
looking into.

Cheers,
Barbie.
-- 
Birmingham Perl Mongers - http://birmingham.pm.org
Memoirs Of A Roadie - http://barbie.missbarbell.co.uk

Reply via email to