Configurations Management

Configuration Management regards two another areas in software developing process. They are Deploying and Release Management. In XOTclIDE Configuration Management are based on so called "Configurations Maps" that are used to specify the certain application (that is commonly deployed as one unit) as collection of components. The versioned configuration maps allow to perform release management. With XOTclIDE it is very easy to detect all changes (and their causers) among two application versions. You need no additional bureaucracy in your project.

Main Features

There are two tools for configuration management available in XOTcl. It is a Configuration Map Browser that can be used without version control system and extended Configuration Browser (Menu System->Version Control->Configuration Browser) that can be used only with version control system. The Configuration Browser save all information in version control system. You can import and export data among the two systems.

Configuration Map - Without Version System


It is strongly recommended to use Configuration Browser if you work with version control system

Configuration Map is the file (Tcl-script) that exactly specify the components to be load and the start scripts. One script (preStartScript) will be invoked before loading components and (startScript) which should start your application. (see file Sample.cfmap)

The components list has the structure

{IDECore 10}
{IDEBase 12}
{IDEGUI newest}
{IDEView package}
The loader will search components IDECore versionId=10 and IDEBase versionId=12 in the database. The component IDEGUI will be loaded in the newest version. The Component IDEView will be loaded per package require IDEView. By component IDEViewDB the loader search first in the database if not found it try to use package require IDEViewDB.

Using Configurations Maps

Lunch the Configuration Browser by selecting menu System->Configuration Browser. Load the configuration map (Sample.cfmap) by selecting menu Edit->Load Configuration Map. Press the toggle button. You can see the aspects of configuration maps

You can use list boxes and buttons to specify the configuration components

Figure 6. Configuration Map Browser

You can edit them. Press Control-S to apply changes. Select Edit->Load Components to load components in the system (interpreter). Select Edit->Run Start Scripts to evaluate preStartScript startScript. You can make new configuration map by using Edit->Init From System you will get all not ide components that are currently loaded in.

Deploying Application

Distribution is the set of files that you can bounded for example as tar or zip file and distribute to other parts. Configuration map is a base to specify the distribution. First load the component with Edit->Load Components than select menu Edit->Make Distribution.

Figure 7. Deploying Wizardy

You must specify first output directory. You can or shoul set new dictionary that will be created if needed. Folowing options are available

After genarating distribution the wizard create a couple of files in target directory. The system generate the set of files (i.e.):
Sample  Sample.cfmap  SampleComponent.xotcl  pkgIndex.tcl
Sample is the executable file to start application. Take a look at it.
# File generated by xotclIDE
# edit if you want
set sname [info script]
if {$sname==""} {
    # Run interactive for develop purposes
    set progdir [pwd]
} else {
    file lstat $sname stats
    # follow sym links
    if {$stats(type)=="link"} {
        set sname [file readlink $sname]
        if {[file pathtype $sname]=="relative"} {
            set sname [file join [file dirname [info script]] $sname]
    set progdir [file dirname $sname]
lappend auto_path [file dirname $progdir]
package require PlatformLogDumper
generateTclPlatformProtocol out.log

Configuration Browser - with Version Control System

Figure 8. Configuration Browser

This tool save the configuration-maps in version control system. So handled configuration-map can have also editions and versions. Therefore you can have many editions of one configuration-map. You can browse changes among different configuration-map editions.


In opposite to another browser all Configuration Browser functions are available only per pop-down menus.

For example you have build a program named sqleditor. In Version 0.1 your program is build from components as bellow

configuration-map - sqleditor (version 0.1)

And the additional configuration-map (sub configuration map) sqlinterfaces - version 1.2

In version 0.2 sqleditor have following configuration

And the additional configuration-map (sub configuration map) sqlinterfaces - version 1.2

The main idea of Configuration Browser and Configuration-Maps is to have a medium for component based programming. It means you have many components that a part of many products. All this components are in one version system.

It is yet not possible to use Component Browser to generate destribution. You should export an versioned configuration map to configuration map file with pop-up menu Conf. Version->export to map. Than you can use this file with Configuration Map Browser