XPS Documentation
This document is a work in progress.

Developing For XPS

Getting Set Up

In addition to following the directions for obtaining, preparing and building the XPS software, here's a few things you should know about developing effectively:

  • bashrc. If you're using the bash shell, you can "source" this file to get various XPS environment variables and paths set up for you. Please read the directions at the head of that file for the details.
  • mkThings. There's a set of scripts in the utils/bin directory that can assist you in creating source files from templates. For example mkClass ClassName will create three files named ClassName.h, ClassName.cpp and ClassName.i that are pre-populated with commented sections, correct namespaces, and etc. Make sure you set the XPS_AUTHOR environment variable to get the @author tag set correctly.
  • Header files in XPS are not separated from their implementations. XPS has no include directory containing the header files as with some other projects. All source is in the xps directory, including the headers. When including an XPS header file, please use the form: xps/module/Header.h. The makefiles are set up so that this works correctly for both development environments and users of installed versions of the software. Note that not all headers are public. Public ones are noted in the Makefile of each directory.

Contributing

Submitting Patches

Patches are always welcome. Please use the unified diff format (with "diff -u") for your patches. This will greatly reduce the time it takes to get them committed. Patches should be sent to extprosys-devel@lists.sourceforge.net

SVN Commit Access

If you're interested in more actively assisting with the development of XPS and you would like commit access to the SVN repository, please send a brief summary of your skills and previous open source development experience to Reid Spencer.

Copyright Assignment & Warrants

In order to protect the integrity of the XPS source code, it is necessary for there to be a single copyright holder that has the right to offer the software under the terms of the GNU General Public License Version 2. That copyright holder is eXtensible Systems, Inc. (XSI) who founded and sponsored the project from its inception and is responsible for producing the bulk of the software.

As a result of the foregoing, it is necessary for significant contributors to the project to sign a release and assignment of copyright to XSI and also warrant that their contributions are original works and free from copyright or patent infringement. The utility of

In return, XSI promises that it will always make XPS source code available for download, use and redistribution under the terms of the GNU General Public License Version 2, a later version or a similar license. In this way the contributions of the various developers will always be available to them. Additionally, should XSI decide to not continue support for XPS, the entire source base will be placed in the public domain for others to support. We don't, however, envision that happening.

Next