Re: [perl #60312] [BUG] OpenBSD Smolder test failures

2009-05-12 Thread Michael Peters

James Keenan via RT wrote:


arithmetics.t:
ok 7 - negate -0.0 # TODO -0.0 not implemented, TT #313 : still not passing
(Why is this showing up yellow rather than green on the Smolder report
if it is 'ok'?)


Because it's a TODO test. TODO tests aren't counted in the passing total whether 
they pass or not. That's a pretty standard TAP interpretation.


--
Michael Peters
Plus Three, LP



Re: Smolder graphs for larger timespans useless

2008-09-09 Thread Michael Peters

Moritz Lenz wrote:


the graphs on http://smolder.plusthree.com/app/public_graphs/start/8
become pretty useless as soon as I select a larger time span (say, 5
days): instead of displaying data, it mostly displays a gray area of
fancy 3D shadows.


I agree that the shadows can cause a problem. But I think the main point is that there is a lot of 
data. Just for the months of August there were 1,638 smoke reports submitted. It's hard to usefully 
cram 1,638 into a 600 pixel area.



Maybe the graph generation could be tweaked, or a simple, traditional 2D
lines plot could be used instead?


I could add the option for 2D graphs as well. But I'm not sure that will be enough for more than a 
couple of days worth of data. Maybe I need to find something smarter than GD::Graph for large data 
sets. Any ideas?


--
Michael Peters
Plus Three, LP



Re: unified languages-test

2008-08-18 Thread Michael Peters

Will Coleda wrote:


The eventual goal of this cleanup is to get these tests running via
smolder to give core developers more feedback on their commits. The
aborted test in this file can be TODOd if we can't fix the root cause
before release.


To this end, how would we like this to be done. I've been thinking about 
creating a separate project for Rakudo and then having it's full test 
suite, spec test and spec_test_regression all going as separate tags so 
they can be viewed separately.


I could create a separate project for each built-in language (might be 
too many) or just have a misc-languages project. But it might be helpful 
to have each big language (Rakudo, pipp, cardinal) have their own 
projects so that they have their own RSS feeds.


--
Michael Peters
Plus Three, LP



Re: Inter-HLL Mapping Notes

2008-08-18 Thread Michael Peters

Allison Randal wrote:

It's true that you can't get a Python array and expect it to respond to 
all the same method calls as a Tcl array. But that Python array is just 
another variable type, that accepts keyed access and method calls. You 
treat it as a user-defined data type, and read the documentation to find 
out what method calls it accepts.


This is similar to how Inline::Java works. If you call a Java method you 
get back a Java object. It's up to you to translate that into a Perl 
object and you do that by reading the docs for that Java object and 
calling it's methods.


There is some magic to make Strings in Java be strings in Perl (same for 
numbers, etc). But it's not too deep. I would expect that this kind of 
shallow magic would be implemented in a Perl library. One each for the 
most popular language. And it would probably just consist of some 
methods that do casts.


While I don't expect every foreign data type to be immediately 
translated to a native type as soon as they touch the native code, I do 
expect it will be best practice to have any library in any language only 
return types native to its language. 


Absolutely. Some of the talk of automagic object translation was getting 
me worried. If I'm calling a Java library it should return exactly what 
it's documentation says (a Java object). Then I as the application 
author should take the responsibility to make sure that code that uses 
my library should get exactly what it's expecting.


--
Michael Peters
Plus Three, LP



Re: [perl #57942] [BUG] Smolder failure [linelength, compilers/pirc]

2008-08-15 Thread Michael Peters

chromatic wrote:

On Friday 15 August 2008 09:07:46 Geoffrey Broadwell wrote:



  1. Don't run codingstd as part of smolder.



+1 to either.  #1 seems slightly easier (no changes to Smolder).


Yeah, it would just need a change to the make smolder_test target, which 
currently just uses t/harness and runs all of the tests. It would be 
really easy to just run --core-tests or to create a new option to t/harness.


--
Michael Peters
Plus Three, LP



Re: Branching

2008-08-05 Thread Michael Peters

Geoffrey Broadwell wrote:

Complete and 
utter refusal to support users who expect that they can install Parrot 1.0 
and get free support from the mailing list or IRC for the next eight to ten 
years.


Half agree.  I agree that we should only *directly* support a release
for a limited time, though I think the minimum sane time would be major
release before current one -- 3-6 months at any given moment, given
your above schedule.  In other words, just because we do a new 3 month
release, doesn't mean we immediately de-support the one we did just 3
months ago.

Now, I might argue for a longer direct support schedule than just 'most
recent + 1', but I think any less than that can't work in real life.


We also need to think about deprecation cycles. If you deprecate a 
feature in 1 version and then it disappears in the next then the time 
between when my code works and when it doesn't is only 6 months. Some 
distros provide support for several years.


--
Michael Peters
Plus Three, LP



Re: Beta of web services to fulfill smoke Queryability requirements.

2008-08-04 Thread Michael Peters

Ronald Schmidt wrote:

A while back I across the web page: RFP: Parrot needs better smoke 
reports (at url: 
http://www.perlfoundation.org/parrot/index.cgi?rfp_parrot_needs_better_smoke_reports). 
After reading the requirements for Queryability I decided to try to 
write some web query forms and reports that fit those requirements.


This is exactly the problem space that Smolder is supposed to solve. The 
Smolder install for parrot is located at:


http://smolder.plusthree.com/app/public_projects/smoke_reports/8

You can send reports to it via make smolder_test. I was going to let 
this simmer for a while with the core developers and make some 
improvements as they need them. Then it was my goal to replace the 
current make smoke with this.


I've been meaning to update that wiki page to point to the progress 
we're making toward this. I should also write up how Smolder already 
accomplishes those goals (well, the ones it does accomplish).


The data is collected by scraping the pages at 
http://smoke.parrotcode.org and, while the accuracy of the data scraping 
has been checked and is believed to be quite good, there are still some 
known issues.


Smolder uses TAP, so no need to scrape web pages. And we expose that TAP 
for download if someone wants to analyze it further with some other 
tools. It also uses SQLite, so if we decide to move this install over to 
a TPF owned box (or a box that just has parrot related smoke info on it) 
we can even expose the SQLite file itself for downloading/quering.


--
Michael Peters
Plus Three, LP



Re: [perl #57196] [RFE] RSS feeds for smolder

2008-07-25 Thread Michael Peters

Will Coleda (via RT) wrote:


Can we get the tag information included in the RSS summary articles?


Absolutely. Try to wget 
http://smolder.plusthree.com/app/public_projects/feed/8/failed and you 
can see them there now.


--
Michael Peters
Plus Three, LP



Re: [perl #57198] [openbsd] build failure?

2008-07-23 Thread Michael Peters

Will Coleda wrote:


The user associated with these builds is 'parrot-autobot'. Anyone know
who that is?


That's the Smolder user that make smolder_test uses. Otherwise I'd 
have to give out an account to anyone who wants to run make smolder_test


I think the actual person is Daniel Magnuszewski 
([EMAIL PROTECTED]). He has most of the automated smokers sending 
to Smolder.


For the future, how would we like to identify who is running the smoker 
sending the reports?


--
Michael Peters
Plus Three, LP



Re: [perl #57198] [openbsd] build failure?

2008-07-23 Thread Michael Peters

Will Coleda wrote:

On Wed, Jul 23, 2008 at 4:20 PM, Michael Peters [EMAIL PROTECTED] wrote:

Will Coleda wrote:


The user associated with these builds is 'parrot-autobot'. Anyone know
who that is?

That's the Smolder user that make smolder_test uses. Otherwise I'd have to
give out an account to anyone who wants to run make smolder_test


There's no point in showing us this, then, is there?


No you're right. I can just change it so that all uploads from make 
smolder_test are anonymous.


--
Michael Peters
Plus Three, LP



Re: [perl #57178] [BUG] Broken links on smolder site.

2008-07-21 Thread Michael Peters

Will Coleda wrote:

On Mon, Jul 21, 2008 at 2:29 PM, Michael Peters via RT
[EMAIL PROTECTED] wrote:

On Mon Jul 21 11:15:15 2008, coke wrote:

http://smolder.plusthree.com/app/public_projects/details/8

Clicking on the Data Feeds links

 /app/public_projects/feed/8 (all)
 /app/public_projects/feed/8/failed (failed)

Generates a server error for each link.

Sorry about that. This should be fixed now. Please try it again.


Much better; that gives me an RSS feed that I can subscribe to.
However, the feed contains links, e.g:

http://smolder.plusthree.com/app/developer_projects/smoke_report/2374

that require a login. Is this intentional? 


No this was not. It should be fixed, so please try again.


If so, how do I get one?
(There's no obvious link on that page for creating a new one, just for
lost passwords.)


I can create a user for you if you want. If you plan on using the XML 
feeds then there's no reason. But if you want to use the email interface 
for getting the report notifications (it's more flexible and provides 
more options) then I can create one for you. But for most public 
projects, the XML feeds should be good enough.


--
Michael Peters
Plus Three, LP



Re: [perl #57178] [BUG] Broken links on smolder site.

2008-07-21 Thread Michael Peters

Will Coleda wrote:


that require a login. Is this intentional?

No this was not. It should be fixed, so please try again.


Nope, still asking me for a login.


Sorry, I wasn't completely clear. That URL will always prompt you for a 
login. The XML feed should have given the public URL, so that's where 
the problem was. Can you refresh the XML feed and check the URLs?


--
Michael Peters
Plus Three, LP



Re: [perl #55954] [PATCH]: Add 'make smolder_test' target

2008-07-19 Thread Michael Peters

James Keenan via RT wrote:


Since we've applied and refined the patches that Michael Peters
originally submitted, is there any particular reason to keep this RT open?


Not that I can think of. Close away!

--
Michael Peters
Plus Three, LP



Re: [perl #55954] [PATCH]: Add 'make smolder_test' target

2008-07-19 Thread Michael Peters

Tim Heckman wrote:
One thing I've found is that I cannot install TAP::Harness::Archive on 
windows machines because of test failures.


I submitted a ticket about this to rt.cpan.org for this along with 
possible fixes

http://rt.cpan.org/Public/Bug/Display.html?id=37795


I saw those and will try to get to them today. Right now I have a 
screaming infant to get out of a high chair :)


--
Michael Peters
Plus Three, LP



Re: [perl #57090] [TODO]: make smolder_test should report test report number

2008-07-19 Thread Michael Peters

James Keenan (via RT) wrote:

I'm beginning to enjoy 'make smolder_test'.  Here is a wishlist item  
for its ongoing development.


[snip]

I would prefer make smolder_test instead (or additionally) printed  
out something like this:


http://smolder.plusthree.com/app/public_projects/report_details/2310


Take this patch for spin and see if it's more to your liking.

--
Michael Peters
Plus Three, LP

Index: lib/Parrot/Harness/Smoke.pm
===
--- lib/Parrot/Harness/Smoke.pm (revision 29611)
+++ lib/Parrot/Harness/Smoke.pm (working copy)
@@ -75,10 +75,13 @@
 );
 
 if ($response-code == 302) {
-print Test report successfully sent to Smolder at\n
-  . $SMOLDER_CONFIG{server}
+my ($report_id) = $response-content =~ /Reported #(\d+) added/i;
+my $report_url = 
$SMOLDER_CONFIG{server}/app/public_projects/report_details/$report_id;
+my $project_url = $SMOLDER_CONFIG{server}
   . '/app/public_projects/smoke_reports/'
-  . $SMOLDER_CONFIG{project_id} . \n;
+  . $SMOLDER_CONFIG{project_id};
+print Test report successfully sent to Smolder at\n$report_url
+. \nYou can see other recent reports at\n$project_url.\n\n;
 }
 else {
 die Could not upload report to Smolder at $SMOLDER_CONFIG{server}


Re: [perl #55954] [PATCH]: Add 'make smolder_test' target

2008-07-18 Thread Michael Peters

James Keenan via RT wrote:


I was told on #parrot that you have to replace # TODO comments by
creating RT tickets and referencing the RT instead of the TODO.

Perhaps it would be simpler to just delete these comments.  Please
advise.  Thank you very much.


The first one (line 103) refers to the _get_svn_revision() number and 
expanding it to cover git and svk. But looking at recent discussions on 
this list it seems that the best way is to just pull it from %PConfig.


The 2nd one can just be turned into a comment about what is possible.
Patch attached.

--
Michael Peters
Plus Three, LP

Index: lib/Parrot/Harness/Smoke.pm
===
--- lib/Parrot/Harness/Smoke.pm (revision 29580)
+++ lib/Parrot/Harness/Smoke.pm (working copy)
@@ -95,20 +95,12 @@
 'Optimize' = ($PConfig{optimize} || 'none'),
 'Perl Version' = (sprintf('%vd', $^V) .  $PConfig{archname}),
 'Platform' = $PConfig{osname},
-'SVN Revision' = _get_svn_revision(),
+'SVN Revision' = $PConfig{revision},
 'Version'  = $PConfig{VERSION},
 );
 }
 
-# TODO expand this to handle svk and/or git checkouts too
-sub _get_svn_revision {
-foreach my $line (`svn info`) {
-return $1 if $line =~ /^Revision:\s*(\d+)/;
-}
-return 'unknown';
-}
-
-# TODO expand this to more than just GCC
+# this can be expanded to more than just GCC
 sub _get_compiler_version {
 my $compiler = $PConfig{cc};
 if($compiler eq 'gcc') {


Re: [perl #55954] [PATCH]: Add 'make smolder_test' target

2008-07-15 Thread Michael Peters
Michael Peters wrote:
 Here's some more patches to improve things. It adds the following:
 
   + require TAP::Harness::Archive 0.10 so we can add extra_properties to our 
 TAP
 archives.
   + Collect Architecture, Compiler, DEVEL, Optimize, Perl Version, Platform, 
 SVN
 Revision and Version data into our TAP archives as extra_properties.
   + Add tags to the upload so it's easy to search by architecture, compiler,
 version #, platform and perl version.
   + After the make smolder_test target completes successfully, print a URL
 that the user can visit to see the report

Just checking back in on these patches. It's been a while since I sent them and
I haven't heard any feedback one way or another.

-- 
michael peters

The thing I hate about an argument is that it always interrupts a discussion. -
GK Chesterton


Re: [perl #55954] [PATCH]: Add 'make smolder_test' target

2008-07-05 Thread Michael Peters
Here's some more patches to improve things. It adds the following:

  + require TAP::Harness::Archive 0.10 so we can add extra_properties to our TAP
archives.
  + Collect Architecture, Compiler, DEVEL, Optimize, Perl Version, Platform, SVN
Revision and Version data into our TAP archives as extra_properties.
  + Add tags to the upload so it's easy to search by architecture, compiler,
version #, platform and perl version.
  + After the make smolder_test target completes successfully, print a URL
that the user can visit to see the report

If everyone is happy with the way this is going then in the near future I can
remove the existing make smoke target and replace it with what make
smolder_test does now.

Also, if we want to expand to having smolder tests for other parrot projects
(like rakudo, rakudo spec-tests, pipp, cardinal, etc) we might think about
having just a separate Smolder install at smolder.parrotcode.org (which I can
still host on the same server at my $work).

BTW chromatic: You had asked to be able to see individual TAP streams for test
files in Smolder. I've added that feature and you can see it at:
http://smolder.plusthree.com/app/developer_projects/report_details/1396
Just click on one of the Ok or Failed boxes and there should be a TAP link
that will popup with the raw TAP stream for that file.

-- 
Michael Peters
Plus Three, LP

Index: lib/Parrot/Harness/Smoke.pm
===
--- lib/Parrot/Harness/Smoke.pm	(revision 29090)
+++ lib/Parrot/Harness/Smoke.pm	(working copy)
@@ -31,6 +31,8 @@
 our @EXPORT_OK = qw(
 generate_html_smoke_report
 send_archive_to_smolder
+smolder_url
+collect_test_environment_data
 );
 
 my %SMOLDER_CONFIG = (
@@ -41,41 +43,77 @@
 );
 
 sub send_archive_to_smolder {
+my %test_env_data = @_;
 eval { require LWP::UserAgent };
 if( $@ ) {
 die \n . ('-' x 55) . \nCould not load LWP::UserAgent.
-. \nPlease install it if you want to send TAP archives smolder.\n
+. \nPlease install it if you want to send TAP archives Smolder.\n
 . ('-' x 55) . [EMAIL PROTECTED];
 }
 
-# get the comments from svn
-my @lines = grep { $_ =~ /URL|Revision|LastChanged/ } `svn info`;
-push @lines, `$^X -v | grep -i 'this is perl'`;
-chomp @lines;
-my $comments = join(\n, @lines);
+my $url = $SMOLDER_CONFIG{server}
+  . '/app/developer_projects/process_add_report/'
+  . $SMOLDER_CONFIG{project_id};
+my $ua = LWP::UserAgent-new();
 
-my $url = $SMOLDER_CONFIG{server}/app/developer_projects/process_add_report/$SMOLDER_CONFIG{project_id};
-my $ua = LWP::UserAgent-new();
+# create our tags based off the test environment information
+my $tags = join(',',
+(map { $test_env_data{$_} } qw(Architecture Compiler Platform Version)),
+'Perl ' . $test_env_data{'Perl Version'});
 my $response = $ua-post(
 $url,
 Content_Type = 'form-data',
 Content  = [
-architecture = $PConfig{cpuarch},
-platform = $PConfig{osname},
-comments = $comments,
 username = $SMOLDER_CONFIG{username},
 password = $SMOLDER_CONFIG{password},
+tags = $tags,
 report_file  = ['parrot_test_run.tar.gz'],
 ]
 );
 
-if ($response-code != 302) {
+if ($response-code == 302) {
+print Test report successfully sent to Smolder at\n
+  . $SMOLDER_CONFIG{server}
+  . '/app/public_projects/smoke_reports/'
+  . $SMOLDER_CONFIG{project_id} . \n;
+} 
+else {
 die Could not upload report to Smolder at $SMOLDER_CONFIG{server}
 . \nHTTP CODE:  . $response-code .  (
 .  $response-message . )\n;
 }
 }
 
+sub collect_test_environment_data {
+return (
+'Architecture' = $PConfig{cpuarch},
+'Compiler' = _get_compiler_version(),
+'DEVEL'= $PConfig{DEVEL},
+'Optimize' = ($PConfig{optimize} || 'none'),
+'Perl Version' = (sprintf('%vd', $^V) .  $PConfig{archname}),
+'Platform' = $PConfig{osname},
+'SVN Revision' = _get_svn_revision(),
+'Version'  = $PConfig{VERSION},
+);
+}
+
+# TODO expand this to handle svk and/or git checkouts too
+sub _get_svn_revision {
+foreach my $line (`svn info`) {
+return $1 if $line =~ /^Revision:\s*(\d+)/;
+}
+return 'unknown';
+}
+
+# TODO expand this to more than just GCC
+sub _get_compiler_version {
+my $compiler = $PConfig{cc};
+if($compiler eq 'gcc') {
+$compiler .=  $PConfig{gccversion};
+}
+return $compiler;
+}
+
 sub generate_html_smoke_report {
 my $argsref = shift;
 my $html_fn = $argsref-{file};
Index: t/harness
===
--- t/harness	(revision 29090)
+++ t/harness	(working copy

Re: [perl #56382] [RFC] Making Test::Harness 3 available without including it in core parrot.

2008-07-01 Thread Michael Peters
Will Coleda via RT wrote:

 Based on recent emails to the list, apparently 'make test' in trunk
 seems to now require T::H 3. (not just for 'make smolder').
 
 If we can do without T::H 3 for simple 'make test', that would be nice.

I don't think we need it for a simple make test.

 If we need it, then we need to have a graceful exit message on make test
 and not the error we get now.
 
 We also need to add a config probe to test for the version of T:H
 available, and if it is NOT the minimum version, warn the user that
 'make test' will fail to work for them.

We need such an error message only if they are trying to do make smolder_test.
I'm at $work currently, but I'm planning on working on these things tonight. So
patches will be forth coming.

-- 
Michael Peters
Plus Three, LP



Re: [perl #55954] [PATCH]: Add 'make smolder_test' target

2008-07-01 Thread Michael Peters
James Keenan via RT wrote:

 What is this parrot_test_run.tar.gz?

The make smolder_test target is supposed to create it. It's the TAP archive.
Does it exist anywhere on your system?

-- 
Michael Peters
Plus Three, LP



Re: [perl #56382] [RFC] Making Test::Harness 3 available without including it in core parrot.

2008-06-26 Thread Michael Peters
chromatic wrote:

 T::H 3 is only a requirement for people who want to type 'make smolder' (and 
 eventually I hope 'make smoke'), so probing for it without bundling it seems 
 eminently sensible to me.

Agreed. That's what we do with TAP::Harness::Archive.

-- 
Michael Peters
Plus Three, LP



Re: Parrot and Smolder

2008-06-17 Thread Michael Peters
I've got this working pretty well on my checkout (except that the current
revision, #28476, doesn't build). You can do a make smolder_test and have the
results sent to the Smolder server. I talked with chromatic and some others
about removing some of the old existing smoke stuff, but I'll do that later.

So now the question is how do I send this as a patch. It touches several files
and adds new ones. Is a simple svn diff good enough? If so, it's attached.

-- 
Michael Peters
Plus Three, LP

Index: lib/Parrot/Harness/Options.pm
===
--- lib/Parrot/Harness/Options.pm	(revision 28476)
+++ lib/Parrot/Harness/Options.pm	(working copy)
@@ -50,6 +50,14 @@
 $longopts{help} = grep { $_ eq '--help' } @argv;
 @argv = grep { $_ ne '--help' } @argv;
 
+$longopts{archive} = grep { $_ eq '--archive' } @argv;
+@argv = grep { $_ ne '--archive' } @argv;
+
+if( $longopts{archive} ) {
+$longopts{send_to_smolder} = grep { $_ eq '--send-to-smolder' } @argv;
+@argv = grep { $_ ne '--send-to-smolder' } @argv;
+}
+
 return (\%longopts, @argv);
 }
 
@@ -91,6 +99,8 @@
 --runcore-tests
 --html
 --code-tests
+--archive  ... create a TAP archive of the test run
+--send-to-smolder ... send the TAP archive to the Parrot Smolder server
 EOF
 
 return;
Index: lib/Parrot/Harness/Smoke.pm
===
--- lib/Parrot/Harness/Smoke.pm	(revision 28476)
+++ lib/Parrot/Harness/Smoke.pm	(working copy)
@@ -27,11 +27,55 @@
 
 use lib qw( . lib ../lib ../../lib );
 use Parrot::Config qw/%PConfig/;
+use Config;
 use base qw( Exporter );
 our @EXPORT_OK = qw(
 generate_html_smoke_report
+send_archive_to_smolder
 );
 
+my %SMOLDER_CONFIG = (
+server = 'http://smolder.plusthree.com',
+username   = 'parrot-autobot',
+password   = '[EMAIL PROTECTED]',
+project_id = 8,
+);
+
+sub send_archive_to_smolder {
+eval { require LWP::UserAgent };
+if( $@ ) {
+die \n . ('-' x 55) . \nCould not load LWP::UserAgent.
+. \nPlease install it if you want to send TAP archives smolder.\n
+. ('-' x 55) . [EMAIL PROTECTED];
+}
+
+# get the comments from svn
+my @lines = `svn info`;
+@lines = grep { $_ =~ /URL|Revision|LastChanged/ } @lines;
+push(@lines, `perl -v | grep -i 'this is perl'`);
+chomp foreach @lines;
+my $comments = join(\n, @lines);
+
+my $url = $SMOLDER_CONFIG{server}/app/developer_projects/process_add_report/$SMOLDER_CONFIG{project_id};
+my $ua = LWP::UserAgent-new();
+my $response = $ua-post(
+$url,
+Content_Type = 'form-data',
+Content  = [
+architecture = $Config{myarchname},
+platform = $^O,
+comments = $comments,
+username = $SMOLDER_CONFIG{username},
+password = $SMOLDER_CONFIG{password},
+report_file  = ['parrot_test_run.tar.gz'],
+]
+);
+if($response-code != 302) {
+die Could not upload report to Smolder at $SMOLDER_CONFIG{server}
+. \nHTTP CODE:  . $response-code .  ( . $response-message . )\n;
+}
+}
+
 sub generate_html_smoke_report {
 my $argsref = shift;
 my $html_fn = $argsref-{file};
Index: t/harness
===
--- t/harness	(revision 28476)
+++ t/harness	(working copy)
@@ -19,6 +19,7 @@
 );
 use Parrot::Harness::Smoke qw(
 generate_html_smoke_report
+send_archive_to_smolder
 );
 
 local @ARGV = @ARGV;
@@ -51,21 +52,46 @@
 $longopts-{runcore_tests_only}
 );
 
-my @tests = map { glob( $_ ) } (@ARGV ? @ARGV : @default_tests);
+my @tests;
+if ($longopts-{code}) {
+@tests = @developing_tests;
+} else {
+@tests = map { glob($_) } (@ARGV ? @ARGV : @default_tests);
+}
 
-if ( $longopts-{code} ) {
-Test::Harness::runtests(@developing_tests);
+if ($longopts-{html}) {
+generate_html_smoke_report(
+{
+tests = [EMAIL PROTECTED],
+args  = $args,
+file  = 'smoke.html',
+}
+);
+} else {
+my $harness;
+if ($longopts-{archive}) {
+eval { require TAP::Harness::Archive };
+if( $@ ) {
+die \n . ('-' x 55) . \nCould not load TAP::Harness::Archive.
+. \nPlease install it if you want to create TAP archives.\n
+. ('-' x 55) . [EMAIL PROTECTED];
+}
+$harness = TAP::Harness::Archive-new(
+{
+verbosity = $ENV{HARNESS_VERBOSE},
+archive   = 'parrot_test_run.tar.gz',
+merge = 1,
+}
+);
+} else {
+$harness = TAP::Harness-new({verbosity = $ENV{HARNESS_VERBOSE}, merge = 0});
+}
+$harness-runtests(@tests);
+
+if($longopts-{send_to_smolder}) {
+send_archive_to_smolder();
+}
 }
-elsif

Parrot and Smolder

2008-06-15 Thread Michael Peters
I had mentioned this to some people at the Oslo QA Hackthon, but I've been
really busy since then. Now that I'm at YAPC, I should have some good hacking
time, so here goes...

My place of business (Plus Three, LP) has allowed me to host the smolder install
on our smolder server and I've setup Parrot as a project there:
http://smolder.plusthree.com/app/public_projects/details/8

I've done a checkout from svn and ran the tests and produced a TAP archive (more
on that later) and uploaded it as the first report:
http://smolder.plusthree.com/app/public_projects/smoke_reports/8
http://smolder.plusthree.com/app/public_projects/report_details/1192

And an Atom feeds here:
http://smolder.plusthree.com/app/public_projects/feed/8 (all)
http://smolder.plusthree.com/app/public_projects/feed/8/failed (failed)

So I need to do a couple of things to get these kinds of reports in an automated
way.

1) Update the test harness to use Test::Harness 3.
  I'm assuming that right now parrot just uses what ever is installed with the
Perl that's on that machine right? Would it be ok to bundle the new T::H with
Parrot?

2) Change t/harness to allow an --archive flag which tells it to create a TAP
Archive (which is basically just a tar file with a bunch of TAP files in it).
  There is TAP::Harness::Archive which does this (and it's what prove -a uses
behind the scenes), but I don't know if it's appropriate to bundle this with
Parrot since it has a dependency on YAML::Tiny and Archive::Tar (which has *a
lot* of other dependencies -
http://cpandeps.cantrell.org.uk/?module=Archive%3A%3ATarperl=any+versionos=any+OS).

  The act of creating a TAP archive is pretty simple with T::H3 if we have a tar
utility (and also preferrably gzip). So should I just do that directly in
t/harness (or Parrot::Test::Harness)

3) Change the buildbot setup you already have to run the tests and then submit
the TAP archives to the Smolder server. This should be pretty simple once I've
gotten the changes to t/harness.

Questions? Comments? Verbal abuse?


-- 
Michael Peters
Plus Three, LP



Re: Parrot and Smolder

2008-06-15 Thread Michael Peters
Will Coleda wrote:

 In general, we're trying to avoid including more non-core modules with
 parrot. However I personally wouldn't have a problem with this bundle
 until we resolve the issues with Bundle::Parrot. (issues == we don't
 actually require it. =-)

That sounds good. T::H3 was built to have no dependencies and to run on lots of
platforms for Perl5 core, so it should be ok.

 If we only need this for smolder (and not vanilla make test), then I
 would say don't bundle this, but die nice if it's not installed. And
 we'll get them added to Bundle::Parrot.

That sounds like a winner for me. It's just for smoke testers, not anyone
running normal tests or doing normal dev work.

-- 
Michael Peters
Plus Three, LP