Source Code Management
The source code for xTuple applications is managed using Subversion (SVN). The latest versions for each of the open source applications can be obtained directly from the source code repositories at Source Forge.
SVN can be used from the command line or through GUI tools. Most Linux versions come with a command line version of SVN installed. On the Macintosh SVN command line tools are installed as part of the Xcode software development environment as well. RapidSVN is a free graphical SVN tool that works on Windows, Linux and Macintosh platforms.
OpenRPT
The code base for OpenRPT, the Open Report Writer and Open Report Renderer (RPTRender) and other support tools, is also under subversion control at SourceForge.net where you can find binary and source downloads, project management tools, and information on how to access the subversion repository.
xTuple ERP relies on OpenRPT, so a compiled copy of OpenRPT located in a folder in the same directory as xTuple is a prerequisit to compiliing xTuple ERP
There are two modules in the OpenRPT repository: openrpt and docs. The openrpt module is the core code for the OpenRPT application. The docs module has the documentation that we have created. To compile OpenRPT, only the openrpt module is required.
Once you have downloaded the source code for OpenRPT, you may compile it using Qt and an appropriate C++ compiler.
Qt is required to compile OpenRPT. To successfully compile OpenRPT, you must download either a Qt binary package or download and build a Qt source package.
PostBooks
The code for the core PostBooks application is stored in a Subversion repository managed by SourceForge. The two key modules are xtuple and xtupleserver. The xtupleserver module contains all the database-related scripts used during development and for the upgrades from each database version of the application. The xtuple module contains all the C++ code and supporting files required to actually build the GUI application.
The xtupleserver module has three significant sub-folders:
- dbscripts: This directory holds the stored procedure, metaSQL, view, and trigger definitions used by the PostBooks application. These can be changed and loaded directly into a database. This is where the majority of the PostBooks business logic is contained.
-
updateScripts: This directory has one subdirectory for each past release and one for the next upcoming release. Each of these subdirectories holds a collection of SQL scripts that define changes to the database required for the following release. Some scripts might change the database structure while others might add or delete data or be copied from the dbscripts directory.
-
packages: This directory holds the upgrade packages for migrating a database from one release of the application to the next. Each package is built either from a corresponding updateScripts directory or a collection of previous update packages, plus some additional support files needed to perform operations in the correct sequence and load modified reports.
The xtuple module contains all the GUI client code for xTuple ERP application. The most significant of subdirectory is named guiclient. This is where the majority of the source code is located for the application. In addition, there is the widgets directory, which holds the source code for custom widgets used in the application and as plugins for the Qt Designer application. See DevelopmentEnvSetup for details on how to compile the xtuple module.
Both Qt and the OpenRPT code are required to compile the xtuple module. To successfully compile PostBooks or OpenMFG, you must first download and install Qt and download and compile OpenRPT.
In addition to the application source code, the xtuple module contains report definitions, translation files, and other support files. These files are not compiled but are an important part of the xTuple applications.
Updater
The Updater tool is used for loading packages which update a databases schema and data. The command and loader directories contain all the code for the Updater tool. In order to compile the updater you will need to have the xTuple client code.
CSVimp
The CSVimp tool is used for importing data into a database from a CSV file. Currently three modes exist: Insert, Append, and Update; however only Insert is functional at this time.
