#
# "SystemImager"
#
#  Copyright (C) 1999-2001 Brian Elliott Finley <brian.finley@baldguysoftware.com>
#  Copyright (C) 2002 Bald Guy Software <brian.finley@baldguysoftware.com>
#
#   $Id: DEVELOPER_GUIDELINES,v 1.8 2004/03/03 00:22:13 brianfinley Exp $
#

--------------------------------------------------------------------------------
Developer Guidelines
--------------------------------------------------------------------------------
o Current development branch is tagged "HEAD".  This is the default.  
  Most developers will use this.  To check out the development branch,
  see "CVS Checkout Steps for Developers for the Development Branch"
  below.
o The stable branch is only to be used for fixing bugs.  To check out
  the stable branch see "CVS Checkout Steps for Developers for the 
  Stable Branch (bug fixes only)" below.
o Only Brian Finley will modify CVS tags of any kind, such as for versioning 
  releases or creating development branches.
o Always get approval from Brian Finley prior to adding any new files or 
  directories to CVS.
o Try to mimick the style of the code that you are working in.  This will
  significantly improve your chances of it being accepted.
o Include a usage statement with every function/subroutine, no matter how
  simple and self-explanatory that function is.  Example:

    # Usage:
    # my $partition_tool = which_partition_tool();
    sub which_partition_tool {
        [... code here ...]
    }

o When you close a bug or feature request, add an appropriate line to the 
  CHANGE.LOG that includes the bug or feature number.  Be sure to include 
  your initials. -BEF-
o Documentation:  Developers may make changes to the documentation source, but
  must contact Denise Walters for approval prior to making any structural 
  changes.  Denise may be contacted at: <denise.walters@hp.com>
o Always give people credit in the CREDITS file.
o Have fun!


--------------------------------------------------------------------------------
CVS Reference Material
--------------------------------------------------------------------------------
o http://www.loria.fr/~molli/cvs/doc/cvs_toc.html
 or
o http://cvsbook.red-bean.com/cvsbook.html
 or
o http://www.cvshome.org/


--------------------------------------------------------------------------------
CVS Checkout Steps for Developers
(You should be able to just copy and paste commands 2-5)
--------------------------------------------------------------------------------
1) Set your username:
   MY_CVS_USERNAME=your_cvs_user_name

2) Tell cvs to operate over ssh:
   CVS_RSH=ssh

3) Set BRANCH_OPTS to choose your branch.

   For the development branch (HEAD), cut and paste this:
     BRANCH="HEAD"; BRANCH_OPTS=""

   For the current stable branch, cut and paste this:
     BRANCH="v3_2_0"; BRANCH_OPTS="-r $BRANCH"

4) Checkout the code:
   cvs -z3 -d:ext:$MY_CVS_USERNAME@cvs.systemimager.sourceforge.net:/cvsroot/systemimager co $BRANCH_OPTS systemimager

5) Rename the checked out source tree:
   mv systemimager systemimager.$BRANCH


--------------------------------------------------------------------------------
Versioning
--------------------------------------------------------------------------------
o SystemImager uses kernel style versioning (X.Y.Z):
  o X = major architectural change
  o Y = feature release
    o an odd number indicates a development release (leading up to an even numbered stable release)
    o an even number indicates a stable release
  o Z = bug fix release (no new features)

o Development releases may be made available unofficially.

