Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW

Upload a new application

by GUIfriend (Sexton)
on Dec 11, 2013 at 16:23 UTC ( #1066647=perlquestion: print w/ replies, xml ) Need Help??
GUIfriend has asked for the wisdom of the Perl Monks concerning the following question:

I wrote a new application and want to upload it to CPAN. Before doing so, I have some questions about the correct proceeding. On the web page About PAUSE I was advised to contact you, so here I am.

PAUSE account: I got an account when I was adopted some years ago by Slaven Rezic as co-maintainer for his Tk::PathEntry project. I assume that I may reuse this account for my application, but want to be sure. The PW does still work.

Name space: I coded my application for the interim path Sudoku::Trainer. So all my modules, POD files and examples reside in a directory Trainer and subdirectories of it. In addition there are 2 scripts (*.pl) that end up in a bin directory. But I don't need a new top level name, so maybe Games::Sudoku::Trainer would be a better place. There exists a distribution Games::Sudoku::General on CPAN. I don't know whether Games::Sudoku is owned by its author, so I might have to ask permission from him. On the other hand, my application is no game, and it's no teacher, it's a trainer. Of course I would gladly accept any other place that you prefer for my application.

Versions: At present I haven't added version no.s to my use pragmas. I could insert the respective current version, but this might unnecessarily exclude potential users that have an older version installed. Please advice.

Doku: Since my project is a complete application, there is little chance for any module in it to be reused anywhere. I wrote a detailed doku for the end user (I fear its full of spelling mistakes and germanisms, sorry). For programmers I included a fair amount of comments in the source. So all modules come without POD. I hope that's acceptable.

Many thanks in advance for your kind help.


Comment on Upload a new application
Replies are listed 'Best First'.
Re: Upload a new application
by davido (Archbishop) on Dec 11, 2013 at 16:39 UTC

    • PAUSE account: Yes, you will use the same account.
    • Name space:I agree (though it's a matter of opinion) that Games::Sudoku::Trainer is better. Nobody owns the Games::Sudoku::* hierarchy, so you don't need to worry about author permission or namespace clashing, from what I can tell. If you want more advice on naming, join and send an email to the mailing list. (On second thought, as I see later on in your post, perhaps App::Games::Sudoku::Trainer.
    • Versions: If you're talking about dependency version numbers, you may want to install a clean perlbrew Perl version 5.8.9 (for example), and then try installing your app. Also check the Changes file for each of your dependencies to see if you're using some feature, or relying on some bugfix that didn't show up until later in the module's life.
    • Doku: It doesn't hurt to put some boilerplate POD in each module referring the user to the primary documentation, as well as mentioning the license and author.

    One more piece of advice. First, upload it with a "developer's version number" (see perlmodstyle for details). Then watch the CPAN testers reports for a week, and see if it fails under any older versions of Perl that you wish to support. Resolve those issues, and then upload with a full-release version number.


      To follow up on your perlbrew suggestion to try installing the module for all perls installed:

      perlbrew exec perl -MCPAN -e 'install Your::Module::Name'

      Here the cpan mirror is local, created by Mini::CPAN, our modules added by mcpani.

      Do testers test development releases? I have lived under the impression they don't (IIRC my last development versions).
      لսႽ ᥲᥒ⚪⟊Ⴙᘓᖇ Ꮅᘓᖇ⎱ Ⴙᥲ𝇋ƙᘓᖇ
      Thank you for your detailed reply. It helped a lot.
      One more piece of advice. First, upload it with a "developer's version number" ...

      That's what I plan. My tarball is named SudokuTrainer-0.000.001-TRIAL.tar.gz. I will modify the path names in the source, finish the README and then dare my 1st upload.

        That's not a dev version number. See perlmodstyle - Version Numbering for the relevant details. Your existing version numbering scheme doesn't really even fit into any of the formats listed in that document. There are good reasons related to CPAN indexing for using proper "developer" version strings; the indexers will skip indexing the module, but the testers will still test it. What you have doesn't quite fit what the automated tools expect.


Re: Upload a new application
by toolic (Bishop) on Dec 11, 2013 at 16:31 UTC
    So all modules come without POD. I hope that's acceptable.
    I think the CPAN search sites (,, etc.) work better with POD, and people who end up using your code expect to be able to use perldoc. To avoid the inevitable "Where's the POD?" bug reports, I suggest creating POD for your top module and your bin scripts (whatever you intend users to use): perlpodstyle

    I assume that I may reuse this account for my application, but want to be sure.
    Yes, use your existing PAUSE account.
      To avoid the inevitable "Where's the POD?" bug reports, I suggest creating POD for your top module and your bin scripts (whatever you intend users to use)

      The start script of my application contains a few lines of code and the general part of the doku, among this a brief description of the 3 main uses of the program together with the location of the regarding POD file. The other .pl file contains its own POD section. All 5 POD files are placed by Module::Build into a common subdir Trainer/pod, so it should be possible for the user to find all of them.

        Generally speaking, you should try to avoid naming scripts intended for installation Just call it foo.

        use Moops; class Cow :rw { has name => (default => 'Ermintrude') }; say Cow->new->name
Re: Upload a new application
by Jenda (Abbot) on Dec 11, 2013 at 23:36 UTC

    Sudoku trainer? What? Sudoku is at best a task for a golf or obfu competition. I could never understand why would anyone waste time on a task so apparently meant for a computer.

    Enoch was right!
    Enjoy the last years of Rome.

      It's never positive behavior to spit on someone else's hobby. I'm sure there are a lot of things I love doing that other people would find really boring.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://1066647]
Approved by Corion
Front-paged by marto
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others pondering the Monastery: (8)
As of 2016-02-13 20:44 GMT
Find Nodes?
    Voting Booth?

    How many photographs, souvenirs, artworks, trophies or other decorative objects are displayed in your home?

    Results (444 votes), past polls