| XOTclIDE User Guide | ||
|---|---|---|
| <<< Previous | Extended Features | Next >>> |
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.
organize the groups of components which should be loaded and used together
build application (distribution) as set of XOTclIDE components and start script
build the base file for CompLoader.tcl to load your application directly from database (thin-clients).
specify exact the versions number and order of components which should be loaded.
![]() | 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}
IDEViewDB |
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
preStartScript - tcl code that will be started before loading components
startScript - tcl code to start your application. Evaluated after loading all component.
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.
You must specify first output directory. You can or shoul set new dictionary that will be created if needed. Folowing options are availableno meta data @ - save no additional meta inforamtions as comments and categories
as one file - concat all components to one file
no packages (use source) - the application will be started per source commands rather than package require
Sample Sample.cfmap SampleComponent.xotcl pkgIndex.tcl |
#!/usr/local/bin/xowish
# 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 |
![]() | 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)
guisystem - version 0.1
sqlparser - version 0.2
persistence - version 0.3
In version 0.2 sqleditor have following configuration
guisystem - version 0.2
sqlparser - version 0.2
persistence - version 0.4
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
| <<< Previous | Home | Next >>> |
| Syntax Checking | Up | Debugging |