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

                   Tracking Interchange development in Git

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

If you don't want to wait for an official release, you can use Git 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 Git changes for anything but
fixing relevant bugs, and run the latest stable release.


Browse Git tree online
----------------------

To browse the Interchange Git repository online, visit:

http://git.icdevgroup.org/interchange/


Clone a local copy
------------------

See instructions on cloning and working with a local Git working copy at:

http://www.icdevgroup.org/i/dev/download


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

It's best to build a distribution tar file to install from, rather than
installing straight from your Git working copy. To do so:

	$ cd interchange
	$ perl Makefile.PL nocopy
	Writing Makefile for Interchange
	$ make tardist
    # much output ...
	$ ls interch*.tar.gz
	interchange-5.7.3.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 put your Git working copy at $HOME/interchange
and then install on top of it, since $HOME/interchange is the default
install directory.


Updating
--------

Follow development discussions by joining the interchange-announce and
interchange-users mailing lists.

Keep track of ongoing code changes by joining the interchange-cvs mailing
list, or watching the interchange/interchange repository in GitHub.

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
