/
Release Lifecycle

Release Lifecycle

Note:  This page is out of date.  See the current release process description here:  https://lf-onap.atlassian.net/wiki/x/7zX7


The activities of the ONAP community are articulated around Projects and Releases.

The Release Lifecycle should be considered as a sub process of the overarching Project Lifecycle (as defined in ONAP Charter).

The Project Lifecycle should be seen as a long term endeavor (1-2 years) whereas the Release Lifecycle has a short term goal (next 5-6 months).

ONAP is adopting a simultaneous delivery model, meaning that all contributing projects have to follow the cadence and intermediate milestones.

The ONAP current release plan is available here.

Definitions

A project is:

  • Long term endeavor setup to deliver features across multiple releases
  • Single entity solely responsible for one or multiple repositories
  • Has a defined scope
  • Led by PTL and committers with expertise in the relevant areas

A project is not:

  • Release plan
  • Collection of unrelated items
  • Broadly scoped without clear rationale
  • Existing without repo(s)
  • Single-release vehicle
  • Scoped so broadly to require committers with different expertise

A Release is:

  • Short term endeavor setup to deliver a specific Release Use case
  • An agreed common framework (template, criteria, best practice) for all projects
  • An unique release planning calendar with pre-defined milestones for each project to sync up with
  • A vehicle to coordinate multiple projects and multiple type of projects (development, integration, packaging, deployment, documentation, training)
  • Led by a Release Manager

Table of Contents

Release Lifecycle Overview

ONAP releases are organized through review milestones. For each milestone, every project has to fill out predefined template.

Release Kick-Off

ReviewMilestoneDescriptionActivities

Kick-Off

(Open Intent to Participate)

M0
  • The goal of the Release Kick-Off is to open for a potential Project its intention to participate in an ONAP Release.
  • The proposed Project aligns with the architecture, team is in place, draft project plan is well-formed in wiki.
  • Once approved by TSC, the planning process opens.
  • Once approved, the team can start refining architecture, coding, testing, and documenting.
  • Release Kick-Off review takes place for each next releases.
  • TSC formally provides its formal disposition.


  • The Release Kick-Off template includes:

      • Project Description
      • Scope
      • Architecture alignment
      • Define impacts on other projects
      • Include estimated time and resource plans
To declare its intent to participate within a Release, the team must:
  1. Establish Release Kick-Off Intent in wiki by filling out Release Kick-Off Template.
  2. Post Proposal in "Proposing a Project" wiki page.
  3. Inform ONAP TSC and Release Manager of their intention through the ONAP TSC mailing list.

Once the Release Kick-Off passed, the following activities are performed:

  • Release Use Case are iteratively worked on, submitted to TSC and proposed to GB.
  • Development of feature code.
  • Development of feature test cases (Functional Test Cases).
  • Continuous Integration Continuous Delivery process is created (All repositories are created).
  • The Integration Team defines an End to End Release Test Cases.

Release Planning

ReviewMilestoneDescriptionActivities
PlanningM1
  • The goal of the Release Planning review is to ensure the plan is complete, sufficient, and aligned with release milestones.
  • The team has a high level of confidence they will make the Release Sign-Off date.
  • Issues brought to TSC.
  • At Release Planning, the following activities have been achieved:
    • Release Use Case(s) is (are) approved by GB.
    • Release scope is defined and agreed on (Epics defined in Jira, Stories for next 2 Iterations groomed).
    • All people resources are identified, documented and committed.
    • All Release Components Name and structure is defined and documented.
    • Project Plan supporting the Release is carefully documented. 
    • The functional Architecture for the project is defined and carefully documented (block diagram, sequence diagram,...)
    • Dependencies between projects are identified.
    • End 2 End Release Test Cases are defined (Integration Team).
    • The vendors equipment list is defined. All OSs, VMs, VIMs, VNFs and hardware are defined. (Integration Team).
    • The CI/CD Tool Chain is in place (Defined by Project Team and setup by LF).
    • Documentation plan is available (Release Notes, Installation Guide, Configuration Guide, User and Admin Guide,...).
    • Training Materials plan is available.
    • The Installation strategy is defined.

To pass Release Planning review, each PTL must:

  1. Fill out Release Planning Template and post it in project wiki
  2. Fill out Deliverables for Planning Milestones Template and post it in project wiki
  3. Inform ONAP TSC and Release Manager (through the ONAP TSC mailing list) prior to the milestone on the availability of the deliverable
  4. Have a concrete project time plan in place that accommodates dependencies and resource availability

Once the Release Planning passed, the team continues the architecture, coding, testing, documenting in an Agile 2 weeks iteration scrum framework.

Release Functionality Freeze

ReviewMilestoneDescriptionActivities
Functionality FreezeM2
  • The goal of the Functionality Freeze is to mark the end of adding functionality in the Release.
  • After Functionality Freeze, no new visible functionality is to be added to the current ONAP release.
  • The API definition development activities are over and a stable document describing the API is documented and available to the community.
  • At Functionality Freeze, the following activities have been achieved:
    • All committed functionalities have been coded.
    • All Functional Test Cases covering the scope of the release are defined (Project Team).
    • All Functional Test Cases acceptance criteria are defined (Project Team).
    • All source code has automated unit test (Project Team).
    • The team is using the complete Linux Foundation environment (build, Jenkins, Gerrit, FOSS, Automated Unit Test, Nexus).
    • A defined and documented final list of externally consumable APIs is available.
    • All vendors equipments have been delivered (Integration team)

To Pass Functionality Freeze, the PTL must:

  1. Fill out in project space the Deliverables for Functionality Freeze Milestone Checklist Template
  2. Inform ONAP TSC and Release Manager (through the ONAP TSC mailing list) prior to the milestone on the availability of the deliverable

After Functionality Freeze is passed, the team focus on:

  • Test Cases:
    • Automate and execute the Functional Test Cases.
    • Prioritize defects and address at least all critical and blocking defects.

Release API Freeze

ReviewMilestoneDescriptionActivities
API FreezeM3
  • The goal of the API Freeze is to ensure API and Data Model are Frozen.
  • At API Freeze, API stubs must be in implemented.
  • All provisional APIs are at least functional if not yet fully tested.
  • At API Freeze, the following activities have been achieved:
    • All externally accessible APIs & data models may not be modified. An API exception process will allow for critical changes to APIs after API Freeze.
    • Any Changes to the API must be brought to the knowledge of the TSC for review and approval. APIs include, but are not limited to, all Java classes/interfaces declared public, all YANG models, all TOSCA profiles, all config file YANG schemas, and all REST/RESTCONF calls including the full URL with options.
    • 50% of Functional Test Cases are automated (Project Team).
    • Issues brought to TSC or Architecture Coordinator.

Prior to API review, Project teams must also review APIs Architecture Sub-committee.


To pass API Freeze, the PTL must:

  1. Fill out in project space the Deliverables for API Freeze Milestone Checklist Template template
  2. Inform ONAP TSC and Release Manager (through the ONAP TSC mailing list) prior to the milestone on the availability of the deliverable

Release Code Freeze

ReviewMilestoneDescriptionActivities
Code FreezeM4
  • The goal of the Code Freeze is to mark the end of the Features coding and testing and the resolution of all impacting defects (at least all Critical and Blocking defects)
  • After Code Freeze, no new features/functionality are to be allowed into the current release. Only defects identified in the Jira system are allowed. The exceptions to this include new tests, and documentation.
  • Defects found after Code Freeze are still defects and they may be created and worked on. This includes packaging and installation defects found as well.
  • At Code Freeze, the following activities have been achieved:
      • End 2 End Release Test Cases are automated (Integration Team).
      • 100% of Functional Test Cases are automated (Project Team).
      • The Labs are ready for ONAP testing. All OSs, VMs, VIMs, VNFs and hardware are installed and tested (Integration Team).
      • Installation guide for each deliverables are available for review.

To pass Code Freeze, the PTL must:

  1. Fill out in their Project Space the Deliverables for Code Freeze Milestone Template.
  2. Inform the TSC Chair and the Release Manager prior to the milestone on the availability of the deliverable.

After Code Freeze is passed, the team focus on:

  • Integration Testing
    • Coordinate with central Integration Team to ensure all Functional Test Cases are stitched.

Release Candidate

ReviewMilestonesDescriptionActivities
Release CandidateRC0, RC1, RC2
  • The goal of the Integration review is to ensure proper alignment and execution on:
    1. End 2 End Functional Test Cases (stitched test cases) integration testing for all projects participating in an ONAP release.
    2. End 2 End Release Test Cases.
  • At that point, a fully-built, complete version of the current ONAP release is available. This includes all code, packaging and deployment that make up the final user-deliverable set of artifacts.
  • Integration plan is further reviewed to ensure it covers correct API calls and data models between projects