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

Helping with CPAN modules

by shemp (Deacon)
on Jun 17, 2005 at 17:39 UTC ( #467817=perlquestion: print w/replies, xml ) Need Help??

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

Hi all. Just yesterday i downloaded a module from CPAN that i want to use. Since downloading i have made considerable changes to the module, mostly things on the to do list and bug list for the module. I have contacted the maintainer of the module with some changes, and with ideas about additional things i'd like to implement.

This is the first time that i've been in this situation and i am looking for some insight on proper etiquette, etc in communicating with the maintainer of the module so that we can both be moving in a positive direction.

So im looking for suggestions on how to best accomplish this.

Thanks as always!

Replies are listed 'Best First'.
Re: Helping with CPAN modules
by davidrw (Prior) on Jun 17, 2005 at 17:56 UTC
    What module? Does it have a website or mailing list or other known support group? Does it have other recent releases/maintenance?

    Emailing the author is good, but be prepared that it could possibly be a long (maybe even weeks) time before getting a response. Who knows if the author is around or has any free time or is still able to maintain the module or not..

    I'm sure you could get good avice/feedback from here as well if you posted your ideas and/or revisions here (maybe in snippets?), especially if it's a module/topic others have used or could use.

    As far as what to write the author, hopefully someone will point to a good set of guidelines if one exists, but I think that working off of the bug list and todo list is good because it's things the author presumably wants done already. Also send the author good diff files as well as your complete file, so make it as easy as possible for him to review what you did and merge it into his codebase.
      Oh sorry, the module is Geo::Distance

      I've kept my work to the closest() method. I have made modifications to get it working properly with DBI. I also added the 'inner radius simplistic calculation' (see the to do list) but there are issues with it. Its not really a radius, but instead its an inscribed square. (The initial test is a circumscribed square). But the inner test cannot be used if you need the actual distances from the centerpoint, which would include sorting the results by distance.

      I also added doing both the outer and inner optimizations for arrayref sources, again with the same distance caveat.

      I am a mathematician by education, but have no formal training in non-euclidian geometry, so im wary about messing with the various distance calculations at this point.

        Geo::Distance has a few recent releases, so looks promising for you. The author is actually a monk, too (bluefeet), but unfortunately inactive for a while.. He also has a section on his website for the module here. Best of Luck!
Re: Helping with CPAN modules
by nothingmuch (Priest) on Jun 17, 2005 at 18:44 UTC
    The next thing to do is to go and download all of my modules and fix them ;-)

    Seriously though, if the module has a mailing list, use that.

    If the bugs are open on it's page, send patches there.

    In all other cases send the patch directly to the author.

    I don't think there is any code for communication, just be polite and good natured, and be sure to explain exactly what problem you're fixing, and how you're fixing it.

    When sending patches try to follow the coding style of the author, like tabs vs. spaces, or my $self = shift vs my ($self, $param) = @_, and so on. This saves the author some time fixing it up, and the code is readable to them without any work.

    Also be sure to use the project's version control system if it has one. svk and darcs have the capability to submit patches via email, and it just works. Other VCSs have their own diff formats, which can be easily applied. When in doubt, send a unified diff, and no other format.

    Keep in mind that your work should be appreciated, because it counts. In fact, I think that by simply submitting you've already done your part.

    If you feel that the author isn't paying attention, post the patch on your website, and remind them a bit. If the patch is not a specific case, but one that applies to everyone, especially a bug fix, then it should be applied, but do keep in mind that sometimes for reasons of bloat or feature creep your patch might be rejected. If you feel it appropriate, a fork of the project (like Catalyst / Maypole, for example) might be in order.

    That's all I've got to say. Thank you for helping out!

    zz zZ Z Z #!perl
Re: Helping with CPAN modules
by runrig (Abbot) on Jun 17, 2005 at 18:47 UTC
    One thing you might consider is to post patches to for the module (as "wishlist" not "bug" if they're not bugs). That way your changes are not lost (by you or the author), are available to anyone, and the author can implement them (or not) at their leisure.
Re: Helping with CPAN modules
by astaines (Curate) on Jun 18, 2005 at 23:31 UTC
    Better formulae for all of these exist - have a look at this part of the comp.infosystems.gis FAQ for example.
    -- Anthony Staines
      Thanks. I checked out that page, and now have a better understanding of the calculations.

      Unless im missing something though, i believe that those are the same calculations used in the Geo::Distance module currently.

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (4)
As of 2020-08-11 01:33 GMT
Find Nodes?
    Voting Booth?
    Which rocket would you take to Mars?

    Results (58 votes). Check out past polls.