Hi! Please consider following me on twitter: @hanekomu.

App::sync_cpantesters

I've released App::sync_cpantesters. Here is the manpage of bin/sync_cpantesters:

NAME

sync_cpantesters - Sync CPAN testers failure reports to local dir

SYNOPSIS

sync_cpantesters -a MARCEL -d results -v

DESCRIPTION

CPAN testers provide a valuable service. The reports are available on the Web -
for example, for CPAN ID MARCEL, the reports are at
http://cpantesters.perl.org/author/MARCEL.html. I don't like to read them in
the browser and click on each individual failure report. I also don't look at
the success reports. I'd rather download the failure reports and read them in
my favourite editor, vim. I want to be able to run this program repeatedly and
only download new failure reports, as well as delete old ones that no longer
appear in the master list - probably because a new version of the distribution
in question was uploaded.

If you are in the same position, then this program might be for you.

You need to pass a base directory using the --dir options. For each
distribution for which there are failure reports, a directory is created. Each
failure report is stored in a file within that subdirectory. The HTML is
converted to plain text. For example, at one point in time, I ran the program
using:

sync_cpantesters -a MARCEL -d reports

and the directory structure created looked like this:

reports/Aspect-0.12/449224
reports/Attribute-Memoize-0.01/39824
reports/Attribute-Memoize-0.01/71010
reports/Attribute-Overload-0.04/700557
reports/Attribute-TieClasses-0.03/700575
reports/Attribute-Util-1.02/455076
reports/Attribute-Util-1.02/475237
reports/Attribute-Util-1.02/477578
reports/Attribute-Util-1.02/485231
reports/Attribute-Util-1.02/489218
...

COMMAND-LINE OPTIONS

--author <cpanid>, -a <cpanid>

    The CPAN ID for which you want to download CPAN testers results. In my
    case, this id is MARCEL.

    You have to use exactly one of --author or --uri.
--uri <uri>, -u <uri>

    The URI from which to download the CPAN testers results. It needs to be in
    the same format as, say, http://cpantesters.perl.org/author/MARCEL.html.
    You might want to use this option if you've already downloadd the relevant
    file; in this case, use a file:// URI.

    You have to use exactly one of --author or --uri.
--dir <dir>, -d <dir>

    The directory you want to download the reports to. This can be a relative
    or absolute path. This argument is mandatory.

--verbose, -v

    Be more verbose.

--help, -h

    Show this documentation.

Write a comment | Bookmark and Share

posted at: 14:38 | path: /dev | permalink | 0 comments | 0 trackbacks

Carp::Source

I've released Carp::Source. It exports a function, source_cluck(), that does pretty much the same as Carp's cluck() except it also displays the source code context of all call frames, with three lines before and after each call being shown, and the call being highlighted. Enjoy.

Write a comment | Bookmark and Share

posted at: 13:59 | path: /dev | permalink | 0 comments | 0 trackbacks

Productive week

The last week has been very productive. I've uploaded about twenty new distributions and made updates to even more existing distributions. The reason is that I've hurt my knee quite badly, had to have an operation and thus spent the last week and a half effectively in bed. Luckily the new MacBook has arrived in time and so every day was spent hacking Perl distributions from morning to night. I've also taken copious amounts of medication (mostly painkillers). Listening to minimalistic music (Rei Harakami, Ryoji Ikeda etc.) made the hacking sessions even more enjoyable.

Ideas beget ideas, however, so the TODO file has actually grown...

Write a comment | Bookmark and Share

posted at: 12:24 | path: /misc | permalink | 0 comments | 0 trackbacks

Module-Changes

There has been some discussion about a machine-readable Changes file.

I'm maintaining a few distributions myself and have phases of making some changes to several distributions. Opening the Changes file, copying a few lines, inserting the current date and time and so on gets tedious.

I wanted to have a command-line tool with which to interact with Changes files. Also the Changes file should be machine-readable. So I wrote Module-Changes. I've chosen YAML for the format, although this is by no means mandatory - it's easy to write a new parser or formatter for your format of choice. Integration of new parsers, formatters etc. is something I still have to work on, though.

Some see YAML as a "failed format", but enough people (me included) find it useful and easy to read for both humans and machines, so that's what I've chosen as the default format. Even so, we need to agree on a YAML schema - that is, the layout of the Changes file.

This is not set in stone, it's more of a proposal. I'm hoping for a discussion of what people like or don't like in the current version, and what they would like to see in future versions.

Write a comment | Bookmark and Share

posted at: 19:01 | path: /dev | permalink | 0 comments | 0 trackbacks