http://www.perlmonks.org?node_id=770042

saintmike has asked for the wisdom of the Perl Monks concerning the following question:

Github is catching up fast as the preferred destination for CPAN module development. But I wonder: Have we agreed yet on how to name our projects? Shouldn't there be a de-facto standard?

Obviously there's no such thing yet, as there is

http://github.com/gisle/libwww-perl

which is the true name of the CPAN module (indeed, the distro name is called "libwww-perl", which is very unusual for CPAN), then there is

http://github.com/mschilli/log4perl

which uses a short (but unambiguous) name and

http://github.com/boumenot/p5-Net-Amazon

which adheres to the RHEL/FBSD school of thought. Another possibility would be the Debian way, something like "libnet-amazon-perl".

Clearly, there should be a "-perl" (or -cpan) suffix (or prefix) to distinguish CPAN modules from the same projects, written in a different language.

Thoughts on a naming standard?

  • Comment on CPAN Modules on Github -- Naming conventions?

Replies are listed 'Best First'.
Re: CPAN Modules on Github -- Naming conventions?
by Fletch (Bishop) on Jun 09, 2009 at 21:23 UTC

    IMHO, I like the port-ish p5-Foo using whatever the CPAN distribution name would be. It's an "obvious" mapping ("Hrmm, Foo::Bar should be p5-Foo-Bar on github"), and the prefix distinguishes it as perl (and leaves room for the inevitable p6-Foo reimplementation).

    (Which reminds me I should put my at-this-point abandonware modules up on github if I could ever remember what disk had my old CVSROOT on it . . . %)

    The cake is a lie.
    The cake is a lie.
    The cake is a lie.

Re: CPAN Modules on Github -- Naming conventions?
by JavaFan (Canon) on Jun 09, 2009 at 21:44 UTC
    Well, if I had it my way, I'd call my github projects the same as the (main) namespace of the project I'd write. But github doesn't let me. I can't name a project Foo::Bar. So I use foo-bar.

    As for -perl or -cpan suffixes, feel free to do so. Just don't expect me to do so. The added benefit is certainly not "Clear" to me.

    Thoughts on a naming standard?

    My only thought is a question, why is a standard needed, and what is its benefit? And furthermore, who's going to control it if you were to start one?

      The added benefit comes when you want to port a project you wrote in one language to another language.

      The possibility of interested people porting from Perl 5 to Rakudo (aka Perl 6) suggests that saying p5 is better than saying perl or cpan somewhere in the name. (Plus p5 is short. Short is good.) The fact that p5-... looks similar to existing naming conventions suggests to me that this is a good way to name things.

      Whether we should get all official and call it a "standard" is another thing entirely. But I'm definitely OK with calling it a "suggestion".

      Update: I left out a "p5".

      As for -perl or -cpan suffixes, feel free to do so. Just don't expect me to do so. The added benefit is certainly not "Clear" to me.

      The benefit is that "libnet" (a C++ project, maybe the original project) won't clash with "libnet-perl" (the CPAN module). Also, if you're searching for a CPAN module on github, it helps if you can apply simple logic to get to the name of the github project instead of trying three different possibilities.

      My only thought is a question, why is a standard needed, and what is its benefit? And furthermore, who's going to control it if you were to start one?

      I'm not proposing a compulsory standard (which would be impossible to control anyway), but a naming convention like on CPAN: Sure, a couple of extroverted personalities are squatting in the top level namespace (Mr Ingerson comes to mind), but the majority are good citizens who get along just fine.

      One could argue that github should take control of this, but I'm afraid the genie is out of the bottle already.