gnucash/README.cvs
Derek Atkins 33d989eb1e * README.cvs: mention gettextize breakage and "cvs up -C"
workaround.


git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7661 57a11ea4-9604-0410-9ed3-97b8803252fd
2002-12-08 18:01:25 +00:00

97 lines
4.1 KiB
Plaintext

This file contains guidelines for using Gnucash from CVS.
They have been adapted from the guidelines for gnome-libs by
Miguel de Icaza who adapted them from guidelines written by
Owen Taylor.
+ In order to build GnuCash from CVS, you need to run the autogen.sh
command to generate and execute a configure script. When building
from CVS you should ALWAYS pass your configure options directly to
autogen.sh. For example:
./autogen.sh --enable-ofx --enable-opt-style-install --prefix=/opt/gnucash
Autogen will automatically generate the configure script and then
run it WITH SPECIAL ARGUMENTS to make sure certain files get built.
If you run "configure" without these special arguments, it is very likely
that GnuCash will fail to build.
If in doubt, you can run autogen.sh, run ./configure --help,
then re-run autogen.sh with your options.
+ Some versions of gettextize don't deal well with re-running themselves.
You will see this as an error like:
configure.in:1141: error: `intl/Makefile' is already registered with
AC_CONFIG_FILES. autoconf/status.m4:844: AC_CONFIG_FILES is expanded
from... configure.in:1141: the top level
autom4te: /usr/bin/m4 failed with exit status: 1
autoheader: /usr/bin/autom4te failed with exit status: 1
**Error**: autoheader failed.
If you see this error, you may need to run "cvs update -C" to pull down
the repository versions of configure.in and/or Makefile.am in various places.
NOTE WELL: using "-C" will over-write any local changes you may have.
When making changes to GnuCash and trying to commit to the repository:
+ Ask first. If your changes are major, or could possibly break existing
code, you should always ask. If your change is minor and you have
been working on gnucash for a while it is probably not necessary
to ask. But when in doubt, ask. Even if your change is correct,
somebody may know a better way to do things.
If you want other people to review your code before it goes in,
you can submit your changes as a patch to gnucash-patches@gnucash.org.
See README.patches for details.
If you are making changes to gnucash CVS, you should be subscribed
to gnucash-devel@gnucash.org and to gnucash-patches@gnucash.org.
(Subscription address: http://www.gnucash.org/en/lists.phtml)
gnucash-devel@gnucash.org is a good place to ask about intended
changes.
+ There must be a ChangeLog entry for every commit. If you discover that
you only committed half the files you meant to and need to fix that
up you do not need a new ChangeLog entry. But in general, ChangeLog
entries are mandatory. Changes with out ChangeLog entries will be
reverted.
+ When you commit, use your ChangeLog entry as the log message.
+ You must not break the build! Never check in changes that do not
compile, install or run. Just because your local tree compiles
doesn't mean you are done. The most common way to break the build
is to forget to add new files or directories to CVS. But it is easy
to fix this problem:
+ Keep two directories, one where you make changes and another
'pristine' tree that you keep up to date. As soon as you check
in changes to your working tree, update the pristine tree then
recompile, install and run the pristine version. If you forgot
to add some new files, it will quickly show up.
+ Try not to break 'make dist' tarballs. These are generally broken
by not updating Makefile.am files when files are added or removed
to the repository.
+ If you are going to be changing many files in an experimental fashion,
it is probably a good idea to create a separate branch for your
changes. Please see the CVS info documentation to see how to create
a branch. Also, please inform the gnucash-devel-list about what you
are going to do.
+ The ChangeLog entries should preferably match in date format with
the existing entries. You can set how emacs does this by using
customize mode:
- M-x customize
+ When code is added from new developers, add them to AUTHORS and
to doc/sgml/C/xacc-about.sgml.
Dave Peticolas
June 21, 2002
Derek Atkins
November 21, 2002