Oslo QA Hackathon 2008 :Achievements

From Perl QA
Revision as of 17:57, 11 May 2008 by AdrianHoward (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search


Coverage of the hackathon

Pictures will be showing up in Flickr with the tag osloperlqa2008. brian d foy was also wandering around with a video camera. I expect the results of that will appear at some point.

Of course - lots of folk blogged about the event:


Day 1 (Friday):

Day 2 (Saturday):

Day 3 (Sunday)


CPAN Metadata Issues

A wide range of metadata consensus issues were resolved.

See Adam's The Oslo Consensus journal entry for the details.

Test Anything Protocol

A great deal of progress was made on defining some of the features for future versions of tap. This included:

  • Nested TAP
  • Adding arbitrary meta-data to TAP streams and individual test results in TAP output
  • The idea of testing contexts (to separate things like developer testing, release testing, installation testing, smoke testing, etc.)
  • Initial drafts of an official TAP specification

For more information see the TAP wiki including:

Several people worked at developing some prototypes for the new functionality - and some of this can be found in the TAP Subversion Repository at http://svn.hexten.net/tapx

Finally, we produced the initial version of a stand-alone, extendable, data-driven test suite. This will help the development of new TAP parsers by providing a suite of standard tests. The initial version of the test suite can be found at http://svn.hexten.net/tapx/tap-tests. The current suite runs over 600 tests - and has already uncovered some bugs in the TAP::Harness that have been fixed by Andy Armstrong in the repository.

Testing Best Practices

Author tests

Tests that need to be run by the author or whoever is planning to send a patch should be either moved to the xt/ directory or skipped based on the RELEASE_TESTING environment variable. Future versions of the Module::Build, MakeMaker and Module::Install, when the target disttest is is used should both include the test files from the xt/ directory and set the RELEASE_TESTING environment variable to 1.


POD::Coverage testing

In t/:

use Test::More;
plan skip_all => 'Set RELEASE_TESTING=1 to run this test' if not $ENV{RELEASE_TESTING};
eval 'use Test::Pod::Coverage';
plan skip_all => 'Needs Test::Pod::Coverage' if $@;

In xt/:

use Test::More;
eval 'use Test::Pod::Coverage';
plan skip_all => 'Needs Test::Pod::Coverage' if $@;

POD testing

In t/:

use Test::More;
plan skip_all => 'Set RELEASE_TESTING=1 to run this test' if not $ENV{RELEASE_TESTING};
eval "use Test::Pod"
plan skip_all => 'Needs Test::Pod' if $@;

In xt/:

use Test::More;
eval "use Test::Pod";
plan skip_all => 'Needs Test::Pod' if $@;


Added a pluggable "transport" mechanism for sending Test::Reporter reports to CPAN Testers. New transports include:

  • HTTP transport via a Test::Reporter::HTTPGateway
  • SMTP with TLS and authentication via Net::SMTP::TLS
  • Reports saved as files in a directory for offline CPAN Testing and manually submission

Modules released:

Strawberry Perl

The "April 1" build - including all of the most common XML libraries - successfully released. See http://strawberryperl.com/ for more information.


  • added a lot of new metrics:
    • no_generated_files
    • has_tests_in_t_dir
    • no_stdin_for_prompting
    • no_large_files
    • metayml_declares_perl_version
    • has_version_in_each_file
    • fits_fedora_license
    • easily_repackageable
    • easily_repackageable_by_debian
    • easily_repackageable_by_fedora
  • add support for aggegregated and experimental metrics
  • start to integrate Testing Best Practices
  • fixed lots of bugs in prereq_matches_use and build_prereq_matches_use
  • mark core and dual-life distributions
  • added a page with various [stats] to the website
  • added a JSON view of 'Prerequisites' page
  • various small and not so small improvements all over the place
  • collected tons of further ideas and feedback :-)
  • released
    • Module::CPANTS::Analyse 0.79
    • Module::CPANTS::ProcessCPAN 0.75
    • Module::CPANTS::Site 0.75


Smolder 1.21 was released. This release fixed several installation bugs on various platforms and other small bugs. It also adds several new features. The highlights are:

  • Project categories have now been replaced by the more flexible smoke report tags
  • TAP archives can now be downloaded through the UI for a given report
  • Graphs can now be done on test run duration if that info was provided in the archive. This was inspired by Ovid's work on the BBC's test suite's run time.
  • The default DB-Platform is now SQLite instead of MySQL

See the change log for full details. http://sourceforge.net/projects/smolder

Michael has also discussed changing the terms of current TPF grant so that the final part involves creating a Smolder smoke platform for Parrot. Which sounds jolly sensible. Adrian will be taking it up with the grant committee.


  • better support for CPAN module installation
  • detection of duel life modules
  • should be committed after FreeBSD testing cycle


  • Found some problems with CPANPLUS::Dist::Deb produced debian packages not being rebuildable as debian pacakges. Not fixed yet, but the fix is easy.
  • debian's core perl's Scalar::Util::weaken will be fixed


Debian will attempt to CPAN-ify their free UUID perl code, making the unclearly licensed Data::UUID obsolete.

CPAN Testers 2.0

(aka CPAN Metabase)

Parallel CORE testing

  • Plan is made
  • Pseudo code has been written
  • Configuration file defined and created
  • Implementation on its way

Module::Release using multiple perls

  • Module::Release 1.21 can now test will multiple, local perls.
  • Just add a line to the .releaserc
perls /usr/local/bin/perl5.10.0:/usr/local/bin/perl5.6.2:/usr/local/bin/perl5.8.8-threaded
  • H. Merijn Brand used it to test the latest Text::CSV_XS

Pay Jonathan to hack one day a week on Rakudo Perl

Not a real achievement of the Hackathon per se, but it was started there:

Pay Jonathan to hack one day a week on Rakudo Perl

Hackathon Module Releases

  • YAML::Tiny
    • now supports document ends
  • Text::CSV_XS
    • now supports bind_columns (), which - depending on your use - gives you a speed improvement of up to 3 times in getline ().
  • CPAN::Mini::FromList 0.01
    • lets you generate a minicpan containing only the modules you listed
    • minicpan-fromlist --local ~/mytestpan/ Acme::MetaSyntactic DBIx::Class
    • also generates a fake 02packages.txt.gz
  • Module::Extract::VERSION
    • The same thing PAUSE does to get a module version, but without PAUSE
    • Used for BackPAN indexing

As well as:

Just one more thing...

The surprise hit of the hackathon was a wonderful gtk-perl application by Nadim - which can best be described as "Visio for ASCII Art".

A release is on CPAN after much nagging by everybody who saw it. It's really rather nice!

                 (> <)----.      .--------.
                          |------| AsciiO |
                          |      '--------'
Oslo QA Hackathon 2008----.
                        (> <)

Watch AsciiO screencasts:

(size: 30 MB, with presentation) [1]
(size: 14 MB, with music) [2]

Go play with Asciio It rocks.

Personal tools