Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot

Maintaining a CPAN Module.

by tmharish (Friar)
on Jan 23, 2013 at 10:08 UTC ( #1014870=perlquestion: print w/replies, xml ) Need Help??

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

Hi Monks - Hoping for help on two questions regarding the Maintaining of a CPAN Module.

The first one is very basic - but I want to be sure:

As a co-maintainer, if I want to update a module do I have to do anything other than simply upload a version of that module with a higher version number? - Wikipedia indirectly seems to say so but I just wanted to be sure.

My second question is regarding ongoing maintenance:

Recently I was pointed to git and told that its a good option for holding code. I just want to make sure that I dont end up with two places to check on bug reports from although I would appreciate any kind of fixes that people would want to submit. Also, code versioning will not be what I use git for - I use SVN for that. So the main advantage will be collaboration.

So my question is: Does it make sense to also host on git? or is that just redundant? Has anyone found that hosting on git encourages people to submit fixes?

Replies are listed 'Best First'.
Re: Maintaining a CPAN Module.
by MidLifeXis (Monsignor) on Jan 23, 2013 at 10:53 UTC

    If you (and the co-maintainer) already have a source repo that meets your needs (especially if it is publicly available), I would just stick with that. Just gathering bug reports, IMO, is not reason enough to push an unmaintained copy (assumption) of your source to github. IMO, it is better to have one canonical source, and use the rest as automatically updating child repositories. Changes can flow up from the child to the parent, but without the automatically updating (or just a lack of communicating that XYZ is the master repo) part, there will be a question as to which is the authoritative source.

    However, if you are planning on setting up synchronization between the two repos, or if RT does not meet your needs, or if GitHub provides some whiz-bang feature that you just need to have, then it may make sense to look at GitHub for hosting your source.

    GitHub also supports a subset of svn operations.

    There is more value to GitHub than just that it uses git. There are pulls, issue tracking and management, project wiki, and a few other tools that I am not familiar with. It comes down (at least to me) to if the tool does the job you need. It seems to me that if the provider of your source repo is doing everything you need, change for the sake of change is not a good thing.


      Thanks MidLifeXis!

      I should have probably made this clear in my OP but I am talking about XML::Smart. Sadly the Original author seems to be M.I.A and I have taken over as a (and currently only) co-maintainer.

      So I guess it boils down to - "Is XML::Smart big enough to warrant GitHub"?

        If it is source, and should be controlled, I would say it is large enough for GitHub. Just my $0.02 (don't spend it all in one place).


Re: Maintaining a CPAN Module.
by toolic (Bishop) on Jan 23, 2013 at 13:24 UTC
    As a co-maintainer, if I want to update a module do I have to do anything other than simply upload a version of that module with a higher version number?
    No, you need not do anything further.

    When I became co-maintainer, I also made it clear in the Changes file that I was now a co-maintainer. In fact, I have my CPAN author ID next to the version number so that I get the blame credit for a given version.

Re: Maintaining a CPAN Module.
by Arunbear (Prior) on Jan 23, 2013 at 11:33 UTC
    Re Re^3: RFC: Net::XMPP::Client::GTalk, Github was one of three suggestions - I also mentioned Bitbucket (which supports Mercurial and Git) and Google Code (which supports Subversion / Mercurial / Git). Each of these has roughly similar features.

      True Arunbear - And then there are all these! I cant seem to make up my mind ...

      Your thoughts/preferences?

        Bitbucket is my preference also. Mercurial has a very Subversion-like command-line interface (just need to remember to type "hg" instead of "svn"). The only main difference is that with Subversion, "commit" will send your changes to the remote server; in Mercurial (and other distributed version control systems like git), "commit" only commits changes to your local copy; you use "push" to send committed changes to a remote server.

        Once you get used to that, you'll come to love it. With Subversion, if you're coding on a train, plane or some other place with no Internet access, you can't do commits. You just need to do one big commit once you have network. With Mercurial (or git, etc) you can do lots of little commits for each change you make, and then push them once you have network.

        There is a fantastic Mercurial plugin too called "hggit". This allows you to pull from and push to git repositories. I use it to create github mirrors of my repositories. That way I get to use the tools I want (Mercurial, Bitbucket), but still take advantage of collaboration with github's enormous user base.

        package Cow { use Moo; has name => (is => 'lazy', default => sub { 'Mooington' }) } say Cow->new->name
        Once you get used to that, you
        For CPAN modules, I use Github (to make it easy for others to contribute if they so wish).
Re: Maintaining a CPAN Module.
by tmharish (Friar) on Jan 25, 2013 at 08:27 UTC

    Thanks for the inputs.

    Just as a conclusion to this conversation - After reading a bunch of stuff I have decided to go with GitHub.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://1014870]
Approved by Arunbear
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (5)
As of 2019-10-20 13:55 GMT
Find Nodes?
    Voting Booth?