Introduction
The purpose of this document is to describe the cadence, processes, milestones, and associated tasks used in the ONAP release cycle. See Project Status and Release Planning for information and schedule for specific releases.
Overview
ONAP releases typically happen twice per year at approximately 6 month intervals. Releases are named after major world cities in alphabetical order. See the Long Term Release Roadmap for a list of previous and future releases.
The current release process was developed by community volunteers and rolled out with the Honolulu release. Releases are administered and tracked by a release manager. Release status is discussed at the weekly PTL meeting.
Requirements
Requirements are submitted to the Requirements Subcommittee for evaluation in the weeks leading up to the M2 milestone. Requirements include specifications, features, use cases, best practices, global requirements, and Proof of Concept (PoC). These are described on the Requirement Types page.
Requirements are documented as epics in the REQ Jira project. These epics will then have release management tasks attached to them for each release milestone, which are the responsibility of the requirement owner to complete. In addition, for features, specifications, and use cases, the requirement owner will also attach one or more integration test tasks. The status of these test tasks is closely tracked from milestone M4 until the end of the release.
Time Based Releases
As of the Honolulu release, ONAP releases are time based. This means that requirements are evaluated at M4 for readiness for integration testing. Those that are ready proceed with the release. Those that are not ready are deferred to the following release.
Release Management Tasks
In order to track release status, release management tasks are assigned to ONAP projects and to requirement owners using Jira. Release management tasks for projects are assigned using the project team's own Jira project. Release management tasks for requirement owners are attached to the requirement epic in the REQ project. Release status at each milestone is determined largely based on the status of the release management tasks.
Exception Process
If a release milestone, best practice, or general requirement cannot be met, then the project team or requirement owner may file an exception request. Exception requests may be prepared using the exception request page contained within the project status area for each release. Exception requests are periodically reviewed by the TSC.
Release Milestones
As mentioned above, release milestones, and their associated tasks, are used to track the status of the release. The milestones and management tasks used in the current release process are described in the table below.
Milestone | Description | Project Tasks | Requirement Owner Tasks | Subcommittee Tasks |
---|
M0 | Start of release cycle |
|
|
|
M1 | General requirements approved |
Review Code Coverage goal vs. actualsUpdate the FOSS (Free and Open Source Software) wiki page (Project FOSS → Project)- Request an architectural subcommittee review
- Document API issues in the requirement description
- DOCS: create documentation tracking page and pre-fill information.
| |
|
M2 | Specification freeze - Freeze the scope
- Review approved Global Requirements
- Verify that specifications and features are approved by affected projects
- PTLs determine impact of features and specs on APIs
| - Complete release planning template
|
Verify information in documentation tracking page. Update as necessary.Update documented risks- Review license scan issues
- Complete Architectural subcommittee review
- Data models shared with Modeling subcommittee
- Verify that there are no merge requests older than 36 hours
- Communicate API changes to other projects
- Color code Impact View Per Component page
| - Finalize documentation of API changes and share with affected PTLs
|
|
M3 | Final Code Submission | - Verify that test coverage goals have been met
|
Resolve all Global Requirement impactsVerify that there are no merge requests older than 36 hours- Review license scan issues
|
Resolve high/highest priority JIRA issues- Verify information in documentation tracking page. Update as necessary.
| None |
|
M4 | Feature freeze | - Start OOM review with updated container image
- Assign Jira issues to the release
- Complete preliminary documentation
- Review and update INFO.yaml
|
Update integration weather boardUpdate Release Platform Maturity and CII badgingUpdate the FOSS wiki pageVerify that there are no merge requests older than 36 hours- DOCS: confirm that PTL repo changes in M2 (new/removed repos) and M4 (preliminary doc) are represented in master and RTD
| - Document integration test tasks in Jira
- Complete preliminary documentation
- Review and update scope status
|
|
RC | Release Candidate 0 Integration and Test | - Create a release branch
- Complete
|
marketing updateVerify that pairwise testing has been completedDeliver updated container to integration team, if necessary Complete project testing- key updates page
- Review license scan issues
- Finalize documentation
|
JIRA Cleanup- DOCS: verify that repo branch exists, verify that RTD branch exists, verify that project release notes have been finalized
|
- Update integration test tasks in Jira
- Complete
|
marketing update - key updates page
- Create preliminary release notes
| DRAFT: Need to discuss with Arch Subcommittee - Arch subcommittee
- Finalize architectural description
- Finalize architectural diagram
|
Sign Off | Approval for release by the TSC |
Verify readiness of release artifactsDOCS: verify that repo branch exists, verify that RTD branch exists, verify that project release notes have been finalized | - Complete project testing
- JIRA Cleanup
- DOCS: prepare composite release notes.
| - Complete E2E testing
- JIRA cleanup
- Finalize Use Case, Specification, and Feature documentation, including release notes
|
|