
$Id: README.Contributing,v 1.4 2005/08/01 17:54:51 we7u Exp $


Hello possible new developer, and welcome to the Xastir project!

In order to get contributed patches accepted more easily by the
Xastir developers:


*) Read "Developer Guidelines and Notes" in the Docs section of
Xastir's SourceForge page.  Make sure to follow the formatting and
indentation rules, and in particular the tab format (spaces, not
tabs).  If you don't like some of the formatting rules, abide by
them anyway for consistency (Hey, I don't like some of them either,
but consistency is more important than ideas I might have of coding
style!  --we7u).

*) Check with the Xastir-Dev list first to see if anyone else is
working on that particular idea or section of code.

*) Verify on the Xastir-Dev list that your idea has some merit and
chance of being accepted before you put your valuable time into the
patch.

*) Make sure you're willing to abide by the GPL license with respect
to your patch.

*) Use as generic C as possible, and comment what you've done, in
English please!

*) Keep in mind that Xastir runs on multiple operating systems, so
code for that.  Some #ifdef's may be required in order to make it
work for the various operating systems.

*) Xastir can be run in multiple languages, so code for that.  If
any user text is added, make sure to add language strings for them
to the language files.  If you don't know a particular language, add
it to all of the language files in English.  It will be translated
by others later.

*) Put your patches into either "context diff" or "unified diff"
format.  Don't submit complete files.  Make sure your diff is
against the latest CVS sources, as that is the version that the
developers work from.  Create the diff file against the directories
recursively if more than one file has been changed:

    diff -ur xastir-1.6.0 xastir-modified-directory > mypatch

Here's a shorthand method if you're doing all this against the CVS
version.  Do this from the top-level Xastir directory:

    cvs diff -u > mypatch

*) By compressing the patch and attaching it to an e-mail you
preserve the lines exactly so that the "patch" program will have no
trouble with it:

    gzip mypatch

This creates mypatch.gz, which you can attach to an e-mail or put up
on an ftp or http site for download.

*) Contribute patches either directly to one of the active
developers or to the Xastir-Dev mailing list.

*) To apply a patch I typically do this:

    gzip -d mypatch.gz

Check the path listed inside the patch:

    head mypatch

Based on the paths listed inside the patch and the directory at
which you're currently sitting, adjust the "p" number below so that
the proper number of directories are stripped from the patch.  This
example strips off the first two directories:

    patch -p2 <mypatch



More?
-----
Anything else?  Let's hear about what's still confusing or needs to
be expanded in this document.  Thanks!


APRS(tm) is a Trademark of Bob Bruninga

Copyright (C) 2005 The Xastir Group

