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

Edit | Attach | Watch | Print version | History: r1 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r1 - 2009-04-28 - AlbertoDiMeglio
 
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    ETICS All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright & 2008-2020 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback