“The activities of the ONAP community are articulated around projects and releases. The scope of each project is aligned with the ONAP architecture and the scope of each release is defined with the objective to fulfill a particular use case(s).”
“A project is a long-term endeavor setup to deliver features across multiple releases, which have a shorter lifespan.”
The project and release lifecycle are simple and provide sufficient visibility to allow teams to coordinate with one another and flock naturally.”
“The key point of the project and release lifecycle process is to provide adequate visibility to all stakeholders, provide synchronization, and support to all contributors.”
Project Lifecycle States and Reviews
ONAP project lifecycle defines five states that each project goes through. The project lifecycle may extend across multiple releases.
The procedure of moving from one state to the next one is independent from the release and the pace depends on each individual project.
In order to effectively review project progress, four reviews are build-in within the project lifecycle
Project State
Description
Project doesn’t really exist yet, may not have real resources, but is proposed and is expected to be created due to business needs.
Incubation
Project has resources but is recognized to be in the early stages of development. The outcome is a minimum viable product (MVP) that demonstrates the value of the project and is a useful vehicle for collecting feedback but is not expected to be used in production environments.
Mature
Project is fully functioning and stable, has achieved successful releases.
Core
Project provides value to and receives interest from a broad audience.
Archived
Project can reach Archived state for multiple reasons. Either project has successfully been completed and its artifacts provide business values, or project has been cancelled for unforeseen reasons (no value anymore, technical, etc.).
Project in any state can be Archived through a Termination Review.
To move from one state to the next state, the Project Team has to formulate a Kick-Off release review to the TSC, by specifying its goal to move up the Project Lifecycle ladder.
Add a step in the project approval process that would clearly define how to retire the proposed project
Cancel all technical meetings
IT related items
Open a JIRA ticket to track the project retirement
Repository – make source control read-only, turn off automated builds
Update Wiki
Update Docs
Assess dependencies from other components
Close down all related mailing lists
.... any additional steps
Step
Project Incubation Review
Artifacts
Project Retirement Review
Artifacts
Comments
1
Name of the project is appropriate (no trademark issues etc.); Proposed repository name is all lower-case without any special characters
Same
2
Project contact name, company and email are defined and documented
Same
3
Description of the project goal and its purpose are defined
Same
4
Scope and project plan are well defined
Identify impacts on other projects, components, work efforts, release timeline, etc
5
Resources committed and available
Identify and release all the resources
6
Contributors identified
Notify all the contributors
7
Initial list of committer identified (elected/proposed by initial contributors)
8
Meets ONAP TSC Policies
Perform:
Security assessment
Architecture Review
9
Proposal has been socialized with potentially interested or affected projects and/or parties
Required
10
Cross Project Dependencies (XPDs). In the case where a project will require changes in other projects, those projects are listed in the proposal, and a sponsoring developer in the project has been identified
Required – undo all the changes to the impacted projects. This can span multiple releases
11
Tools have been identified and discussed with relevant partners (Linux Foundation, IT). Once the project pass the review,:
the tools chain must be created within one week.
Tools encompass Configuration Management, CI-CD,
Code Review,
Testing,
Team Wiki,
End Users documentation (not exhaustive)
A plan is required to undo all these steps
12
N/A
Develop a test plan to certify the rest of the ONAP components without the deprecated component
13
N/A
Identify any previous release(s) that would need to be maintained that use(s) the retired component and provide ongoing support until an upgrade occurs. (things can get a little bit messy here – this requires further debate/discussion)
14
N/A
IT related items:
Open a JIRA ticket to track the project retirement