Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number
 
PerlMonks  

Re: RFC - Module::Cooker

by Laurent_R (Canon)
on Dec 03, 2013 at 19:02 UTC ( [id://1065478]=note: print w/replies, xml ) Need Help??


in reply to RFC - Module::Cooker - UPDATE

Hi,

I have written quite a number of modules, but none of them has made its way to the CPAN. Mainly because most of these modules were very specific to our environment and would not be useful outside that context. But at least two modules that I wrote recently could be useful to others, if I only knew how to package them for the CPAN. Yes, I was not really convinced by the existing modules to build such skeletons, but quite possibly because I used them wrongly. If your module makes things easier, then I am definitely interested. I'll try yours, but don't expect an answer from me before at best the next weekend.

Replies are listed 'Best First'.
Re^2: RFC - Module::Cooker
by boftx (Deacon) on Dec 03, 2013 at 19:32 UTC

    Thanks!

    When it comes right down to it, there is really only one file that is usually easier to have a tool create for you: Makefile.PL

    Once that is present (containing the proper commands for ExtUtils::MakeMaker) the process boils down to this:

    perl Makefile.PL make manifest make disttest make dist make distclean

    At that point you should have a tarball ready for upload to PAUSE.

    What the various tools do (including Module::Cooker) is create a full skeleton structure that just happens to include Makefile.PL. Based on what you (and others) have said, I should add a means to only add any missing files such as Makefile.PL to an existing directory structure.

    It helps to remember that the primary goal is to drain the swamp even when you are hip-deep in alligators.

      This also assumes that your directory layout is like a typical CPAN dist. Otherwise you may need to make tweaks to Makefile.PL so it can find your stuff. (Or better yet, rearrange your files.)

      Makefile.PL # in the project root directory lib/Foo/Bar.pm # modules named like this script/foobar # scripts like this bin/foobaz # ... or this t/foo-bar.t # tests like this xt/foo-baz.t # extra tests like this
      use Moops; class Cow :rw { has name => (default => 'Ermintrude') }; say Cow->new->name

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1065478]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others perusing the Monastery: (5)
As of 2024-03-19 08:54 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found