Oslo QA Hackathon 2008 :Achievements
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:
- Gabor Szabo Oslo Hackathon day -4
- Ricardo Signes: the oslo qa hackathon cometh
- brian d foy: Hackathon goals
- brian d foy: Oslo QA Hackathon, Wednesday and Thursday
- brian d foy: Oslo QA Hackathon, the plane trip
- Ovid: Oslo Perl QA Hackathon
Day 1 (Friday):
- Ricardo Signes: oslo qa hackathon day 1
- jonasbn: QA Hackathon 2008, day #1
- David Golden: Oslo - Day 1 - HTTP transport for CPAN::Testers
- Cosimo Streppone: My Oslo QA Hackaton - Day 1
Day 2 (Saturday):
- Ricardo Signes: oslo qa hackathon day 2
- brian d foy: Oslo QA Hackathon, Saturday
- jonasbn: Oslo QA Hackathon 2008, day #2 (saturday)
- Ovid: Oslo Perl QA Hackathon, Day 2
- Cosimo Streppone: My Oslo QA Hackaton - Day 2 (in progress...)
- Ovid: Oslo: TAP Diagnostics
Day 3 (Sunday)
- jonasbn: Workflow 0.32_1 released
- jonasbn: Oslo QA Hackathon 2008, day #3
- Ovid TAP YAML Diagnostics
- brian d foy: New cpan script version
- Ovid: Automatically Edit All Failing Tests
- Ovid: Test Your Installation
- Adam Kennedy: The Oslo Consensus
Post-hackathon:
- Thomas Klausner: Oslo QA Hackathon
- Gabor Szabo: Famous last words
- jonasbn: Travelling home from Oslo QA hackathon
- Adam Kennedy: http://use.perl.org/~Alias/journal/36098
- Ricardo Signes: random notes after the qa hackathon
- Jonathan Worthington: Rakudo Gets Type Annotations And Checking
- Michael Peters: Oslo QA Workshop and Smolder
- David Golden: Oslo Hackathon 2008 -- wrap-up writeup
- brian d foy: -- accomplishments & wrap up
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.
Example:
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();
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();
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:
Strawberry Perl
The "April 1" build - including all of the most common XML libraries - successfully released. See http://strawberryperl.com/ for more information.
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
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.
FreeBSD
- better support for CPAN module installation
- detection of duel life modules
- should be committed after FreeBSD testing cycle
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
Data::UUID
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
- Test::Class 0.29
- more flexible test class loading
- bug fixes
- Test::Class 0.30
- all outstanding RT bugs resolved
- 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
- Module::Extract::Namespaces
- Pull out the package statements from a file using PPI
- Used for BackPAN indexing
- Module::Release 1.21
- Test releases with multiple perl binaries
- Software::License 0.002
- guess at license based on POD docs
As well as:
- Module::CPANTS::Analyse 0.79
- Module::CPANTS::ProcessCPAN 0.75
- Module::CPANTS::Site 0.75
- Test::Reporter 1.39_04
- CPAN::Reporter 1.14_02
- Test::Reporter::HTTPGateway 0.001
- Workflow-0.32_1
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.