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.