Etics Quick Start Guide
Etics Overview
Etics Web
Etics Web Interface
Terminology
A component is the a directory that contains the source code for a given functionality. Each component should create a package with the same name of the component. A subsystem is a group of components. As one component should create one package, the granularity of packaging should be considered when creating a component. Module is the generic term for a component or subsystem. A project is a logical group subsystems.
Linux Installation
Download and execute the setup script which will fetch and install the Etics clients and dependencies to the current directory.
wget "http://eticssoft.web.cern.ch/eticssoft/repository/etics-client-setup.py" -O etics-workspace-setup.py
python etics-client-setup
The client will be installed by default in the directory 'etics' in the current directory. Alternatively the client can be installed in a different directory by using
the
--prefix option of the script.
Finally set the following environment variables:
$ export ETICS_HOME=/etics
(i.e. the etics directory from which you have run etics-client-setup)
$ export PATH=$ETICS_HOME/bin:$PATH
Get Project
The
etics-get-project
command sets the project with which to work with. This command contacts the Etics server and downloads all the meta-data e.g. project/subsystem/component relationships, about the project to an xml file in the current direcotry. Running subsiquent Etics commands will look for this xml in the current directory.
Checkout
The
etics-checkout
command will checkout all the components and dependencies of a module. If a specfic tag is to be used, the
-c < tag >
option can be used. If the
-c
option is not specified the HEAD will be used. A list of available tags can be found by using the
etics-list-configuration
command. For more details about the tag, the command
etics-show-configuration-structure
can be used.
Build
The
etics-build
command can be used to build all the components in the correct order.
Build Output
Creating New Projects, Subsystems and Components
Build Targets
Targets
Examples of target implementation for gLite:
- checkStyle
- ant checkstyle
- clean
- ant clean
- compile
- ant compile
- doc
- ant doc
- init
- ant init
- install
- ant install
- packaging
- ant rpm
- publish
- ant dist
- test
- ant unittest
Target Semantic
Semantic of target implementation:
- checkstyle
- verify coding standards and conventions
- clean
- remove intermediate and generated files
- compile
- compile code
- doc
- generate documentation
- init
- perform initialisation
- install
- install software in the workspace, such that dependent modules can use the build products
- packaging
- build rpm (if empty, the ETICS standard packager is invoked)
- publish
- create a local distribution tree (including documentation, test results, collected metrics, etc)
- test
- run unit tests
Here's the order of execution of the targets:
- clean: needs to be explicitly called
- init -> checkstyle -> compile -> test -> packaging -> publish
System Properites
Handeling Dependencies
Tagging