Build System Design Meeting

Date: 13-14/12/5

Participants

  • MebSter
  • Alberto (first day only)
  • Marian
  • Andrea Manieri (first day only)
  • Paolo Fabriani

Location: CERN

Agenda

  • Public portal (Day 1)
  • Usecases (Day 1 and 2)
  • Web Application design (Day 2)

Day 1

For public website, Engineering would like to use either: Plone or Harmonia (Italian product).

Meb shown a draft version of the portal Alexandre Benac is building for ETICS:

Web-Etics2.jpg

Figure 1: Draft ETICS portal

We agreed that we need to focus on the Web Application for early January 2006, and less on a Content Management System for the first version of the portal, although Engineering will try to suplly a moke-up of the web site for the kick-off . We highlighted the following usecases that we need to define:

  • Clone configurations
  • Add configurations

Note:

  • We need to be able to define configuration global properties (e.g. 'Debug'), but we need to be able override these at the level of a subsys or a component.

Here is the schedule for early 2006:

  • Jan 1 start
  • Jan (3rd week): kick-off
  • Feb (3rd week): integration meeting at CERN with Eng
  • End of Feb: 1st version of ETICS for build

Usecases

(these usecases will be transfered to the UseCases section of the project in the near future)

Before defining the UseCases, we reviewed the architecture. Here's a (poor) copy of Alberto's artistic talents:

UntitledPage004.gif

Figure 2: Overall ETICS architecture

CREATE NEW PROJECT

User: Release manager (user of the ETICS service)

Prerequisit: User has loaded a valid Grid certificate in his/her browser

Main workflow:

  • User selects 'New Project' function
  • Web app returns 'New Project' form
  • User fills the form
    • Name
    • Authors
    • License type
    • Web page
    • etc
  • User submit request
  • *
  • Web app requests the new project to be saved

  • Sub-usecases:
    • (form) Validation
    • data validation
    • web service access
    • database access

CREATE SUBSYSTEM/COMPONENT

Similar to CREATE NEW PROJECT, but with the preselection of a project and optionally a parent subsystem

CREATE CONFIGURATION

User: Release manager (user of the ETICS service)

Prerequisit: User has loaded a valid Grid certificate in his/her browser

Main workflow:

  • User selects existing project
  • (user gets a list of existing configuration) -> selects one and clone it
  • User selects 'New configuration' form
  • User fills the form
    • User attachs subsystem/components to this configuration, specifying
    • 'version' or selecting latest, 'head', etc (User can use a free form field or a list of pre-defined configuration for the selected subsys/comp from the ETICS db)
    • platform(s), incl. (platform creation is a different usecase)
  • User submits form

Notes:

  • it would be nice to have 'bread crums' feature at the top of the page, such that we know where we are in the process.
  • for platform creation, we need to have the concept of: "this is a C++" component, somewhere.

CREATE BUILD SCHEDULE

Prerequisit:

  • User has loaded a valid Grid certificate in his/her browser
  • Selected project
  • Selected configuration

Main workflow:

  • Define schedule (e.g. once a month, a week, not on Sunday)
  • Submit

MONITOR PREVIOUSLY SUMBITTED BUILDS AND TESTS

  • 'My ETICS' page periodically refreshed showing the status of the latest builds and tests

Other usecases:

  • Create new users
  • Security

Day 2

Following Day 1's usecases, we made a first attempt at an implementation. Here's the results:

UntitledPage005.gif

Figure 3: Create configuration usecase draft implementation part 1

UntitledPage006.gif

Figure 4: Create configuration usecase draft implementation part 2

UntitledPage007.gif

Figure 5: Create configuration usecase draft implementation part 3

UntitledPage008.gif

Figure 6: Create configuration usecase draft implementation part 4

In order to implement this functionality on the Web Application, we will need the following Web Service interfaces:* Project operations:

Note:
  • 'Set' method sets the entire substructure, where 'Update' only saves the detail of the provided parameter (i.e. Project, Subsystem, Component)

Configuration operations:

Note:
  • the client (web application in this case) must take care of providing unique GUIDs for all modified configurations in the configuration parameter. The web service will only check that the GUIDs are all unique.

When selecting an item in the 'project tree', available actions should include:

  • Add subsystem (except when a component is selected)
  • Add component (except when a component is selected)
  • Remove (note: remove = depricate)
  • Rename (note: rename = copy with a new name + depricate)

When selecting an item in the 'project tree', available actions should include:

  • Add subsystem configuration (except when a component configuration is selected)
  • Add component configuration (except when a component configuration is selected)
  • Remove
  • Rename
  • Add platform
  • Add buildCommand (only available when platform is selected)
  • Add vcsCommand (only available when platform is selected)
Note:
  • any modifying actions on the configuration tree triggers a hierarchical creation of new configuration up to the project configuration.
  • any modification of a subsystem and component configuration in a project configuration requires the creation of a standalone project configuration, such that the subsystem or component configuration can be build on its own.
  • on creation of a new project, subsystem or component, a corresponding 'HEAD' configuration must be created by the web service
  • how do we address the issue of selecting a default language for a project/subsystem/component, which will influence the default selection of platforms? Or do we not want this feature?

Important decisions

  • Engineeing is responsible for the Web Application and will start working on it now, as this is their priority task,
  • Engineering will try to suplly a moke-up of the web site for the kick-off
  • CERN will send the draft HTML version of the portal to Engineering for reference, although this is not a priority for Engineering
  • CERN is responsible for the Web Service and will define the above defined methods early January 2006
  • CERN is responsible for the ETICS project/configuration database and will be implemented with MySQL
  • CERN is responsible for the Python clients

Issues

  • Timing is thight, therefore, we need to focus on the essential functionality.

-- MebSter - 14 Dec 2005

Topic attachments
I Attachment History Action Size Date Who Comment
GIFgif UntitledPage004.gif r1 manage 22.5 K 2005-12-14 - 15:30 UnknownUser  
GIFgif UntitledPage005.gif r1 manage 17.5 K 2005-12-14 - 15:30 UnknownUser  
GIFgif UntitledPage006.gif r1 manage 15.4 K 2005-12-14 - 15:29 UnknownUser  
GIFgif UntitledPage007.gif r1 manage 23.1 K 2005-12-14 - 15:29 UnknownUser  
GIFgif UntitledPage008.gif r1 manage 17.2 K 2005-12-14 - 15:29 UnknownUser  
JPEGjpg Web-Etics2.jpg r1 manage 158.0 K 2005-12-14 - 15:32 UnknownUser  
Edit | Attach | Watch | Print version | History: r2 < r1 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r2 - 2005-12-15 - unknown
 
    • 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