Difference between revisions of "Major/Minor Release Cycle procedure"

From Gcube Wiki
Jump to: navigation, search
(Components Delivery)
(Components Delivery)
Line 40: Line 40:
 
= Components Delivery =
 
= Components Delivery =
 
When a component must be released in a gCube release, it is required to trace all the release phase with a component release ticket ('''CRT''') that contains the status and the history of the release of the component.
 
When a component must be released in a gCube release, it is required to trace all the release phase with a component release ticket ('''CRT''') that contains the status and the history of the release of the component.
 +
 +
 +
'''When the new version of the component is ready to be released''':
 +
# [[Role_Developer|Dev]] creates a '''CRT''' to advertise the release on the [[Redmine|Tracking System]]. This is useful for other Developers that depends on the component to know that their components might need an update in the release. <code>{name: <EPC-Name>, status: New, sprint: <Release-Sprint>, Assignee: <Dev>, Parent Task: <SRT>}</code>. The status of the CRT is ''New'' at this time and the ECC is not yet available.
 +
# If SRT does not exists when CRT is created (i.e. first component released in the Subsystem), [Role_Developer|Dev]] also creates the SRT: <code>{name: <ESC-Name>, status: New, sprint: <Release-Sprint>, Assignee: <SMan>, Parent Task: <PRT>}</code>
 +
 +
 +
'''When the [[Role_Developer|Dev]] has created the ECC and is sure it's complete and build successfully''':
 +
# [[Role_Developer|Dev]] updates the CRT: <code>{status: New -> Available, Watcher: <SMan>}</code>. Please note that [[Role_Developer|Dev]] adds the [[Role Subsystem Manager|SMan]] as a watcher of the CRT; in this way [[Role Subsystem Manager|SMan]] is notified that the ECC is ready to be attached to the ESC.
 +
# [[Role Subsystem Manager|SMan]] creates, if it does not yet exists, the ESC and attaches the ECC to the ESC.
 +
# [[Role Subsystem Manager|SMan]] updates the CRT: <code>{status: Available -> Under Integration}</code>
 +
# [[Role Subsystem Manager|SMan]] updates the SRT: <code>{status: New -> Available, Watchers: <RMan>}</code>. Please note that [[Role Subsystem Manager|SMan]] adds the [[Role Release Manager|RMan]] as a watcher of the SRT; in this way [[Role Release Manager|RMan]] is notified that the ESC is ready to be attached to the EPC.
 +
# [[Role Release Manager|RMan]] attaches the ESC to the EPC.
 +
# [[Role Release Manager|RMan]] updates the SRT:  <code>{status: Available -> Under Integration}</code>
  
 
= Components Integration =
 
= Components Integration =

Revision as of 12:42, 5 October 2015

Introduction

This section describes the Release Cycle procedure focusing on activities to be executed and roles involved. The release cycle is supported and partially automated by several tools described in datails in section Tools.

Release cycle.png


Acronyms List

CRT Component Release Ticket
EPC ETICS Project Configuration (e.g. org.gcube.1-6-0)
ESC ETICS Subsystem Configuration (e.g. org.gcube.annotation-management.1-1-0)
ECC ETICS Component Configuration (e.g. org.gcube.annotation-management.abe.1-1-0)
Dev Developer role
PRT Project Release Ticket
SMan Subsystem Manager role
SRT Subsystem Release Ticket
RMan Release Manager role
TTeam the set of Testers


Release Preparation

When a new release of gCube system is decided, several preparatory activities are request to configure the different tools to host the integration of the new release:

  1. RMan creates a sprint on the Tracking System for the release (e.g. "Release gCube 3.9.0")
  2. RMan creates the PRT {name: <EPC-Name>, status: New, sprint: <Release-Sprint>}
  3. RMan creates the EPC cloning it from org.gcube.HEAD
  4. RMan updates the PRT {status: New -> Available}

Components Delivery

When a component must be released in a gCube release, it is required to trace all the release phase with a component release ticket (CRT) that contains the status and the history of the release of the component.


When the new version of the component is ready to be released:

  1. Dev creates a CRT to advertise the release on the Tracking System. This is useful for other Developers that depends on the component to know that their components might need an update in the release. {name: <EPC-Name>, status: New, sprint: <Release-Sprint>, Assignee: <Dev>, Parent Task: <SRT>}. The status of the CRT is New at this time and the ECC is not yet available.
  2. If SRT does not exists when CRT is created (i.e. first component released in the Subsystem), [Role_Developer|Dev]] also creates the SRT: {name: <ESC-Name>, status: New, sprint: <Release-Sprint>, Assignee: <SMan>, Parent Task: <PRT>}


When the Dev has created the ECC and is sure it's complete and build successfully:

  1. Dev updates the CRT: {status: New -> Available, Watcher: <SMan>}. Please note that Dev adds the SMan as a watcher of the CRT; in this way SMan is notified that the ECC is ready to be attached to the ESC.
  2. SMan creates, if it does not yet exists, the ESC and attaches the ECC to the ESC.
  3. SMan updates the CRT: {status: Available -> Under Integration}
  4. SMan updates the SRT: {status: New -> Available, Watchers: <RMan>}. Please note that SMan adds the RMan as a watcher of the SRT; in this way RMan is notified that the ESC is ready to be attached to the EPC.
  5. RMan attaches the ESC to the EPC.
  6. RMan updates the SRT: {status: Available -> Under Integration}

Components Integration

Components Release

Release Closure