Smoking your own modules: What do you use?

Ash Berlin ash_cpan at
Mon Jul 18 10:48:19 BST 2011

One simple solution might be to use cpanm's --local-lib-contained option:

    -L, --local-lib-contained
    Same with --local-lib but when examining the dependencies, it assumes no non-core modules are installed on the system.

and then something like this:

make dist && cpanm -L $PWD/smoke_deps the_tar_ball-v1.0.tar.gz

(completely untested as with all the best advice on this list.)


On 18 Jul 2011, at 10:21, Mark Fowler wrote:

> So,
> The last two releases to the CPAN I did (prior to hopefully the last
> useful one) released a module with a naff MANIFEST and missing files.
> Ooops, I suck.  Let's not do that again, eh?
> Now, I've been doing this for long enough that the mantra of "Let's
> not do that again" isn't sufficient.  I need to put tools in my way to
> ensure that I am protected from my own stupidity.  I could easily roll
> my own, but I want to steal from the best, or failing that, you guys.
> What I need to do is smoke my own modules before I release them to
> CPAN.  Ideally I'd like to smoke against multiple versions of Perl (in
> particular, I'd like to smoke against the version of Perl I'm claiming
> to support even though my primary Perl is 5.14.)  I'd like to install
> all the dependancies from scratch, so I know I haven't missed
> anything.
> I know several people on this list have that kind of setup.  How did
> you build this?  Is there some sort of App::SmokeEmIfYouveGotEm that
> you use for this or did you hand roll your solution too?
> A little background to answer the inevitable questions.
>  - I'm currently using Module::Install as my primary toolchain.
>  - I'm running on a Mac.  The last module I wrote is actually Mac
> dependant, so I need to stay on this platform.
> Mark.

More information about the mailing list