Title: SCRAM
1SCRAM
- Information on SCRAM
- J.P. Wellisch,
- C. Williams,
- S. Ashby
2A SCRAM Managed Project
SCRAM PROJECT
Configuration Management
Source code Distribution
BuildSystem Configuration
3Part of a component system
- Interfaces towards
- Code management
- Change management
- Binary distribution
- Dependency analysis
- Coding rule and style rule analysis
- Software QA
- Metrics
- Integration
- validation
- Etc..
4Configuration management
- Based around the following concepts
- PBS (Product break-down)
- Product specification
- Product versioning
- Configuration definition and versioning
- Product-wise configuration specification
- ABS (Assembly break-down)
5The key to success
- Configuration swim-lanes
- Scram allows to define a set of internally
compatible swim-lanes of configuration - These are backwards compatible extensions of the
starting configuration of the swim-lane. - These are indispensable for staged mass
production through the full chain of generation,
simulation, reconstruction and analysis, where
part of the code is developed, while other parts
are already in production use.
6SCRAM resource mapping
Application System Map
SCRAM
Information on target system is extracted and
stored by SCRAM
Linux 2.2
Installed Products
7SCRAM project development distribution model
Describes project
Site B
Site C
Site A
Developers Areas
8Requirements Document - Sharing Configurations
between projects
ltinclude urlRepositoryACommon Requirements
Docgt
Inlined by ActiveDoc PreProcessor
- mechanisms to restrict the included configuration
exist
9Project Configuration Requirements
- Requirements Document
- defines products and versions of external
packages (tools) - tool description document (url) required for each
tool - Refers to a configuration file in case of
multi-project environment - Keep Consistent configurations between projects
with a centrally maintained Configuration
Document - mechanisms to restrict the configuration exist
10Tool Configuration Management
- SCRAMtOOLbOX
- Each tool has its own configuration environment
- Know exactly what product/version is being used
- Finding which tools are available in the toolbox
11Tool Description Development
- Development of tool description documents
- Edit the apropriate file in .SCRAM/ToolFiles
directory - e.g. CLHEP version 5.0 would be stored as
clhep_5.0 - Run the tool setup command to initiate the
changes - e.g. scram setup clhep 5.0
- To be useful outside of your area these documents
should be made available on a server (e.g. cvs)
so they can be accessed by the url mechanism
12SCRAM project installation
1.
Client Downloads Document runs through SCRAM
2.
BootStrap Document Published with each Release of
a product
3.
SCRAM assembles components described in BootStrap
document into a designated Central Installation
Area.
13SCRAM project installation model (contd)
4.
If a Requirements Document is specified, SCRAM
tries to find the requested products on the
client system or the site file, and creates a map
in the Installation Area.
5.
The client may, depending on the individual
project, need to build the installation on the
client system with the scram build command.
14SCRAM project installation model (contd)
6.
All OK? Then ...
Freeze The Central Installation Area
7.
Register the Installation in the scram
database (scram install command). It is now
ready for use
15Developer Areas
- Isolated and well defined environment to develop
code
- Based against a central release area from which
it can draw resources
16Creating a Developer Area
- Area Creation - scram project
gtscram project ORCA ORCA_5_4_0
- Created in local directory
- Directory Name has format
- Name_Version
Developer Area ORCA_5_4_0
(N.B. Removal of project name from version)
scram project options
-n alternative_name - Specify a different name
for the area -d directory - Create in directory
specified rather than locally
17Environment Variables
- Setting Up the environment - scram runtime
gtcd developer_area
you should be in an area
gteval scram runtime -csh
use -sh for borne shells
- Your environment is now set for the
developer_area - Undoes the effect of any previous scram runtime
command - (Makes it easy to switch between areas)
- Instead of using eval you could redirect the
output from the - scram runtime to a file which you could source
when appropriate.
18Build System - BuildFiles
- Can be anywhere in source tree
- Used to override defaults, add additional build
information, specify interfaces and dependencies. - Written as XML style documents
gtscram build
- Performs the default build operations
corresponding to - the current directory
19The BuildSystem Configuration Mapping
subsystems
packages
src
src
test
Build Configuration
- BuildFile describes Build functionality
20BuildSystem - Build Classes
Example
BuildFile Requests a Class and sets parameters
such as source code, library name, etc.
Select a subset as a default build
operation. Default can be overridden on the
command line.