------------------------------------------------------------------------------

                   Tracking Interchange development in CVS

------------------------------------------------------------------------------

If you don't want to wait for an official release, you can use anonymous
CVS to follow the latest Interchange development.

WARNING: There may be bugs introduced at any time! Thoroughly test any
changes before incorporating. Better yet, don't use CVS changes for
anything but fixing present bugs, and run the latest release.


Check out a local copy
----------------------

You need to have CVS installed on your system, to begin with. It
comes pre-installed on most free Unix-like systems if you selected
the development tools at install time. See http://www.cvshome.org/
for download locations if you don't have it.

If you are already an experienced CVS user, the information is:

	CVSROOT   :pserver:cvs@cvs.icdevgroup.org:/var/cvs
	password  (none)
	module    interchange

If you are not experienced with CVS, it is still easy to get going by
following these steps. First, choose a place to put the local copy you're
going to check out. A good choice is somewhere in your home directory,
probably a src/ subdirectory:

	$ cd
	$ mkdir src
	$ cd src
	$ cvs -z3 -d :pserver:cvs@cvs.icdevgroup.org:/var/cvs checkout -P interchange

It will take a while, as there are several megabytes of files to download.


Make a distribution tar file
----------------------------

If it is your first time installing Interchange from the CVS, you will want
to make a distribution tar file:

	$ cd interchange
	$ perl Makefile.PL nocopy
	Writing Makefile for Interchange
	$ make tardist
	/usr/local/bin/perl -I/YOUR/PERL/LIB -MExtUtils::Manifest=manicopy,maniread \
	-e "manicopy(maniread(),'interchange-4.9.x', 'best');"
	mkdir interchange-5.0.0
	mkdir interchange-5.0.0/dist
	....
	$ ls interch*.tar.gz
	interchange-5.0.0.tar.gz


Unpack and install
------------------

Unpack the tar file and install as normal. See the README file and other
documentation for help. You should already be familiar with the Interchange
developer website at:

	http://www.icdevgroup.org/

Make sure you don't check out your CVS copy into $HOME/interchange
and then install on top of it, since $HOME/interchange is the default
install directory.


Checking for differences
------------------------

If you want to see how your current working files compare to the versions
you checked out from the repository, cd into your checked out CVS copy and
do:

	cvs diff | more


Updating
--------

To update the distribution, change to your checked out CVS directory
(e.g. src/interchange), then run:

	$ cvs update -Pd
	U MANIFEST
	U WHATSNEW
	....

In many cases, the major differences in the distribution will be easily
updateable. You can copy any changed files directly to these library
directories:

	lib/Vend    (and all subdirectories)
	lib/UI      (and all subdirectories)

You should check the files:

	catalog_after.cfg     (infrequently updated)
	catalog_before.cfg    (frequently updated)
	interchange.cfg.dist  (infrequently updated)
	usertag/*             (infrequently updated)

Finally, you should check differences in the bin/* files. While they
are not as frequently updated as the lib/* files, they do change. Run
diffs against the source files in scripts/*.PL, or do another install
to a blank directory and do a diff to that.


Keeping the catalog in sync
---------------------------

If you are patterning your order methods after one of the template
catalogs, you will want to check the products/*.txt and products/*.asc
files for changes. In particular, mv_metadata.asc is used to format
and present quite a few things in the user interface. You may have
to merge the databases, but there is an automated admin UI facility
that can help you do this.


Troubleshooting
---------------

If you get a complaint that a "file is not found" when trying to do a
'make tardist' or 'make dist', that means your MANIFEST file is out of
sync with the current codebase. Just do:

	rm MANIFEST
	make manifest


More on CVS
-----------

It is highly recommended that you create a .cvsrc file in your home
directory to automatically use common options such as these:

	cvs -z3 -q
	diff -u
	update -Pd
	checkout -P

This directs CVS to (1) automatically compress all data communicated
between you and our server (saving bandwidth) and be quiet (printing
out fewer diagnostic messages); (2) show context-sensitive diffs;
(3) prune empty directories and create any new directories added to
the repository since your checkout; and (4) prune empty directories
during your checkouts.

Please see the CVS website for complete documentation:

	http://www.cvshome.org/
