Oslo QA Hackathon 2008 :Achievements
From Perl QA
[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:
- 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
[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
- 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
[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.
