Oslo QA Hackathon 2008 :Achievements

From Perl QA

Jump to: navigation, search

Contents

[edit] 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:

Pre-hackathon:

Day 1 (Friday):

Day 2 (Saturday):

Day 3 (Sunday)

Post-hackathon:

[edit] CPAN Metadata Issues

A wide range of metadata consensus issues were resolved.

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

[edit] 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.

[edit] Testing Best Practices

[edit] 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.

Example:

[edit] 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 $@;
all_pod_coverage_ok();

In xt/:

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

[edit] 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 $@;
all_pod_files_ok();

In xt/:

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

[edit] Test::Reporter

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:

[edit] Strawberry Perl

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

[edit] CPANTS

  • 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

[edit] Smolder

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.

[edit] FreeBSD

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

[edit] Debian

  • 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

[edit] Data::UUID

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

[edit] CPAN Testers 2.0

(aka CPAN Metabase)

[edit] Parallel CORE testing

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

[edit] 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

[edit] 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

[edit] 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:

[edit] 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 |
                          |      '--------'
                  (\_/)---|
                          |-----(O.o)
                          |
Oslo QA Hackathon 2008----.
                          |
                          v
                        (\_/)
                        (O.o)
                        (> <)

Watch AsciiO screencasts:

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

Go play with Asciio It rocks.

Personal tools
Mongers