Direct SA1 Links
Etics Portal
- Etics Web
- EticsAgendas
- ETICS 2 SA1 Savannah
- SA1Actions (in Savannah)
, SA1 Internal
ETICS Multi-Packaging
Short description of the feature
Functionality extension of the ETICS Packager to produce multiple packages from a common codebase with no or minimal duplication of information
Requirements
R1: Generate multiple packages (subpackages) in all supported formats from the same codebase
R2: Avoid duplication of information in the subpackages by using the inheritance and override mechanisms
R3: Allow setting dependencies on individual subpackages
R4: Allow the possibilty of importing and exporting packages from/to other systems
Proposed design
1. Subcomponent
The definition of the subpackages requires a parallel definition of subcomponents. A subcomponent is a specialization of the existing component object containing just enough information to define uniquely the subcomponent and allow setting dynamic dependencies on individual subcomponents. Subcomponents are attached to components. Components can therefore be:
- Simple components: the current component objects
- Multipackaging components: they store the common information to all subcomponents, but cannot be used to set dynamic dependencies [NOTE: is this reasonable? If not what is the effect of setting a dependency on a multipackaging component]. They are also called parent components
Example:
myproject
mycomponent
mycomponent
mycomponent-devel
Any information that is not defined explicitly in the subcomponent is inherited from the parent component
2. Subconfigurations
A subconfiguration is a specialization of the existing configuration object and defines the configuration information of a subcomponent. It is attached to a parent configuration and contains just enough information to define uniquely the subconfiguration and allow building and/or packaging the subpackage and setting static dependencies on individual subpackages. Configurations can therefore be:
- Simple configurations: the current configuration objects
- Multipackaging configurations: they store the common information to all subconfigurations, but cannot be used to set static dependencies [NOTE: is this reasonable? If not what is the effect of setting a dependency on a multipackaging configuration]. They are also called parent configurations
Example:
myproject_R_1_0_0
mycomponent_R_1_0_0
mycomponent
mycomponent-devel
Any information that is not defined explicitly in the subconfiguration is inherited from the parent configuration
Behaviours, restrictions, conventions
1. Checkout
1.1 It's not possible to checkout individual subconfigurations
1.2 The checkout of a parent configuration automatically triggers the checkout of all subconfigurations
1.3 If a subconfiguration has to be checked out as the result of a dependency link, the parent configuration is checked out
2. Cloning
2.1 It's not possible to clone individual subconfigurations
2.2 The clone of a parent configuration automatically triggers a clone of all subconfigurations, which are automatically attached to the cloned parent
3. Packaging
3.1 The subconfigurations must contain at least enough information to produce the subpackages
3.2 At ths point of the design it is understood that the minimal set of information required is the
name and the
install target . Other fields like the description are optional
3.3 The following conventions are defined:
3.3.1 If a subconfiguration build commands only define the install target, all other targets are inherited from the parent configuration and the child install target is executed after the parent install target if defined
3.3.2 If a subconfiguration build commands define more than just the install target, no targets are inherited from the parent configuration and only the subconfiguration targets are executed
3.3.3 A single multipackage spec file or control file is generated by ETICS containing instructions to generate all packages [
NOTE : is the possibility of generating individual spec files for each subpackage required?]
3.3.4 If the parent configuration defines a packaging target the ETICS Packager is not used and no packages are created
Useful Links
Links to document, attach material needed, external resources, example, etc.
--
AlbertoDiMeglio - 28 Apr 2009