Net::ICQ Contributor Guidelines


CVS
Do not use a release version of Net::ICQ that you downloaded from a website or FTP site as your starting point for editing. Instead, use CVS access to get the most recent code. With CVS, you can get changes from other developers as they make them, which might be as often as several times a day. Read the CVS instructions to find out how to get the Net::ICQ code tree via anonymous CVS. After you perform the CVS checkout, you should run cvs update often to get the latest changes that the main developers commit. This way you will always be working on the most up-to-date version of the code and have access to any new fixes or features.

Here is some great documentation for CVS if you've never used it before or just need a refresher.

Mailing List
Join the mailing list, and ask whether the bug or feature you are going to work on has already been taken care of. It might also be wise to give a brief overview of how you plan to implement your change, so others can comment and hopefully provide useful insights.

Code Submission
When you fix a bug or add a feature, you must submit a unified patch (see below for instructions for creating the patch) to the Patch Manager on SourceForge, and also announce it on the mailing list (do not send the patch to the list, just send a short announcement). You must NOT submit the entire changed file, nor just the changed lines of code. If you submit something other than a patch, you will be asked politely to resubmit your changes as a patch, and your code will not be merged until you do. Here is an easy way to generate a patch, using CVS:

  cvs update filename
  cvs update -p filename | diff -u - filename > description.patch

Here's a specific example. Let's say you added a feature "Foo" to ICQ.pm. This is what you would do to create a patch for that feature:

  cvs update ICQ.pm
  cvs update -p ICQ.pm | diff -u - ICQ.pm > Foo.patch

Then you would submit Foo.patch to the Patch Manager.

Note: If your patch is around twice the size of the file you're patching, something went wrong. DO NOT submit that patch. If you edited the file on a non-unix system, and transferred it to a unix system to run diff on it, you need to make sure the end-of-line characters are the unix kind. Ask on the mailing list if you have this problem.