March 2013 Archives

App::Midgen, Take two

First I would like to say a big Thank You for all the critiques I received, here and in the channels.

App::Midgen

Food for thought, if we update our Modules, don't we want our users to use the current version, so should we not by default do the same with others Modules. Thus we always show the current version number, regardless.

Now able to show dual-life modules current version number.

Lets start with the changes and inspiration.

  • Switched to using MetaCPAN-API due to a write issue with CPAN, neilb++

  • Switched to using Perl-PrereqScanner to do most of the grunt work as pointed out by Mithaldu++ daxim++

  • spelling, re-factor option names, inspired by mauke++

    • --format change output format
  • changed default output, no extra processing, only distribution version for modules without a version number mst++

if I missed anybody, sorry

And some new features.

Add command line option to show dual-line module versions as well.

midgen --dual_life

Add ability to read/write options from ~/.midgenrc

Command line options always overwrite options from ~/.midgenrc if you have one.

The output format uses colour to add visualization of module version number types, be that mcpan, dual-life or added distribution.

We now use colour to help differentiate between the different module version number types, we also honour $ENV{ANSICOLORSDISABLED}

for sample output see wiki

App::Midgen what is it?

This is an aid to present a packages module requirements by scanning the package, then displaying in a familiar format with the current version number from CPAN.

This started out as a way of generating the core for a Module::Install::DSL Makefile.PL, why DSL because it's nice and clean, so now you can generate the contents and check when you want, yes it's another PPI powered app.

All output goes to STDOUT, so you can use it as you see fit.

CPAN Version Number Displayed

  • NN.nnnnnn we got the current version number from CPAN (numify)
  • 'undef' no version number returned by CPAN
  • 'core' indicates the module is a perl core module
  • '!cpan' must be local, one of yours. Not in CPAN, Not in core.

Food for thought, if we update our Modules, don't we want our users to use the current version, so should we not by default do the same with others Modules. Thus we always show the current version number, regardless.

We also display some other info to complement the modules we have found.

For more info and sample output see wiki

Change to the root of the package you want to scan and run

midgen [options]

--help --output --core --verbose --parent --mojo --noisy_children --twins --zero --debug

About bowtie

user-pic I am primarily a dyslexic technologist, with a history in e-mail and biometrics among other things, who just likes to ferret around until I find what I am looking for, then latch on like a Jack Russell, until it works or I understand why not.