This is the final report for the Smolder grant, by Michael Peters:
Here are the original deliverables from my grant proposal:
- Remove custom XML format in favor of using plain TAP and TAPx::Parser.
- Extend Smolder to handle small CPAN style modules more easily and automatically.
- Setup a Smolder server for the CGI::Application community to serve as a testing ground and public display for their 110+ CPAN modules.
- Add per-project and per-developer RSS feeds as an alternative to email notification.
_Obtained results: (1) is fulfilled with TAP::Parser::Archive that smolder now uses to get the details of the test run in TAP (and some YAML meta information). TAP::Parser::Archive is not specific to smolder but provides a nice way to bundle up the test run of any TAP producing suite. (2) is done. This was mostly just making it easier in the UI to have lots of smaller projects. (3) was changed. After discussing it with Adrian Howard (my grant manager), getting approval from the Grant Committee I decided that the effort would be better spent helping out the Parrot project. So the deliverable was changed to setup a Smolder server for Parrot. Which was easy after #1 and #2. So I went a bit further and added a "make smolder_test" target to Parrot itself. Working with the parrot team I've submitted several patches that have been accepted. You can see Parrot's smoke tests at http://smolder.plusthree.com/app/public_projects/smoke_reports/8 It seems to be really useful to them and their feedback has already prodded me to add more features to Smolder (like being able to directly download the TAP stream for individual test files). I plan on sticking around with parrot and adding the following:_
- _"make smolder_test" will replace "make smoke"_
- Adding smolder setups and targets for languages being built with Parrot (probably starting with Rakudo, Pipp and Cardinal)
- Improving smolder's search interface so that you can not only look up things by a single tag, but multiple tags (to answer something like "when was the last time tests passed on Linux with GCC 4.1?").
(4) is done. I decided to use Atom feeds instead of RSS feeds, but they are basically the same to most people since it's the readers that handle the differences. And I was able to use the excellent XML::Atom::SimpleFeed module.